Skip to main content

Monday.com Development Workflow

Overview

This document describes how our development workflow integrates with Monday.com for task tracking, from ideation to production deployment.

Branch Strategy

The Release Train Model

We follow a release train model where code flows through branches in a predictable sequence. Once code is merged to development, it will automatically be included in the next release to staging, and from there to production.

Key Principles

1. All PRs target development (default)

  • Every feature branch creates a PR against development
  • This is the default branch for the repository
  • No exceptions for normal feature work

2. No cherry-picking into staging

  • We do NOT cherry-pick individual commits from development to main
  • When development is merged to main (staging), ALL changes go together
  • This keeps branches in sync and prevents merge conflicts

3. Release train cadence (usually weekly)

  • Development is merged to main (staging) on a regular cadence
  • Once merged, QA tests the full release on staging
  • After QA approval, staging goes to production

4. Once you're on the train, you're going to production

  • If your PR is merged to development before the release, it will be included
  • There's no way to "skip" a release once merged to development
  • Plan accordingly - if something isn't ready, don't merge it

How the Train Works

Branch Responsibilities

BranchPurposeOwnerTesting
developmentActive development, default for all PRsDevelopersDeveloper testing
mainStaging environmentQA (Stephanie)Full QA testing
productionLive applicationDevOpsProduction monitoring

Developer Workflow

  1. All new PRs target the development branch (default)
  2. Developers are responsible for ensuring code quality before merging to main
  3. Stephanie tests on staging (main) - only requests help on development when needed
  4. Code must be in good state by the time it reaches main

Hotfix Process

Sometimes bugs need to be fixed faster than the normal weekly train. Think of it like this: the train runs on a schedule, but sometimes you need to take a taxi instead.

When to Use a Hotfix

SituationUse Hotfix?Example
Bug affects revenueYesPayment processing broken
Bug blocks all usersYesApp won't load
Bug affects one customerMaybeDepends on severity
Bug is annoying but not blockingNoUI glitch, wait for train
Feature requestNeverAlways use the train

Hotfix Levels

We have three levels, depending on urgency:

Standard Hotfix (Can Wait for Staging Test)

When: Bug is important but you have time to test on staging first.

Monday.com Flow:

  1. Create task in Monday (or use existing bug report)
  2. Mark as High Priority
  3. Developer fixes on development branch
  4. Cherry-pick to staging → Ready for Testing
  5. QA tests on staging
  6. Cherry-pick to production → Done

Timeline: Same day or next day


Urgent Hotfix (Skip Development, Go to Staging)

When: Bug is critical. You need to skip development but still want QA to test.

Monday.com Flow:

  1. Create task marked Urgent with 🔥 emoji in title
  2. Developer creates PR directly to main (staging)
  3. Notify QA immediately (Slack/call)
  4. QA tests on staging → fast approval
  5. Deploy to production → Done
  6. Developer back-merges to development

Timeline: Within hours


Emergency Hotfix (Production is Down)

When: Production is broken. Every minute costs money or users.

Monday.com Flow:

  1. Create task marked EMERGENCY 🚨
  2. Notify team lead immediately
  3. Developer creates PR directly to production
  4. Deploy immediately (no staging test)
  5. Verify fix in production
  6. Back-merge to staging and development
  7. QA does post-deployment verification

Timeline: Within minutes

warning

Emergency hotfixes skip QA testing. Only use when production is critically broken and users are affected RIGHT NOW.

Hotfix Communication

LevelWho to NotifyHow
StandardTeam in standupMonday.com comment
UrgentQA + Team LeadSlack message
EmergencyEveryoneSlack + Phone call

After Any Hotfix

  1. Update Monday task with what was fixed and when
  2. Add post-mortem notes if it was an emergency
  3. Verify branches are synced (developer responsibility)
  4. Consider: Could this have been caught earlier?

For technical git commands, see Git Workflow - Hotfix Process.

Monday.com Groups

These groups manage the product ideation and planning lifecycle:

  • Inbox - New items to be triaged
  • Brainstorming - Ideas being explored
  • Missing Info - Items needing clarification
  • On Hold - Paused items

Development Groups

Tasks move through these groups as they progress through development:

Development States

1. Ready to be Tackled

Description: Task has been verified, groomed, and is ready for development.

Entry Criteria:

  • Requirements are clear
  • Acceptance criteria defined
  • No blockers identified

Exit: Developer picks up the task


2. Assigned (Optional)

Description: Task is assigned to a specific developer to help organize the process.

Notes:

  • Assignments are suggestions, not mandatory
  • Developers can reassign if someone else is better equipped
  • Developers can pick up unassigned tasks

3. In Progress

Description: Developer is actively working on the task.

Entry: Developer picks up the task and starts work

Automation: Task automatically moves to the "In Progress" group

Exit: Pull Request is created


4. Code Review

Description: A Pull Request has been created and is awaiting review.

Entry: PR created with Monday task link in description

Automation:

  • Task automatically moves to "Code Review" group
  • Monday task receives notification with PR details

Exit: PR is approved and merged to development


5. Merged to Development (Dev Testing)

Description: PR has been merged to the development branch. Developer performs final testing before promoting to staging.

Entry: PR merged to development branch

What happens:

  • Code is deployed to development environment
  • Developer verifies the feature works as expected
  • Developer ensures no regressions

Exit: Developer pushes/merges changes to main branch


6. Ready for Testing (Staging)

Description: Code has been pushed to main branch and deployed to staging.

Entry: Changes merged/pushed to main

Automation:

  • Task automatically moves from "Dev" to "Stage"
  • Status set to "Ready for Testing"

Owner: QA (Stephanie)

Exit: QA approves or requests changes


7. Ready for Production

Description: QA has approved the feature and it's ready for production deployment.

Entry: Stephanie marks task as approved

Exit: Deployed to production


8. Done

Description: Feature is live in production.

Entry: Deployed to production branch


Changes Required

Description: QA found issues during testing that need to be addressed.

Entry: Stephanie identifies issues during staging testing

Automation: Task moves to "Changes Required" group

Exit: Developer fixes issues and creates new PR

Complete Workflow Diagram

Automations

Monday.com automations handle the following transitions automatically:

GitHub-Triggered Automations

TriggerActionDetails
PR CreatedSet status to "Code Review"Task/subtask linked in PR gets status updated
PR Merged to developmentSet status to "Deployed to Dev"Task/subtask ready for dev testing
Commits pushedPost notificationCommit details posted to linked Monday task

Status-Triggered Automations

Status ChangeAction
In ProgressMove task to "In Progress" group
Code ReviewMove task to "Code Review" group
Changes RequiredMove task to "Changes Required" group

For Developers

Daily Workflow

  1. Pick a task from "Ready to be Tackled" (follow priority order)
  2. Move to In Progress when you start working
  3. Create PR with Monday task link in description (targets development branch)
  4. Code Review happens automatically when PR is created
  5. PR Merged to development - test your changes on dev environment
  6. Push to main once verified - task moves to "Ready for Testing" on staging
  7. If changes requested by QA - fix and create new PR

PR Requirements

Every PR must include the Monday task URL in the description:

https://pivotapp.monday.com/boards/[board_id]/pulses/[task_id]

This enables automatic tracking and status updates.

For QA (Stephanie)

Testing Workflow

  1. Monitor "Ready for Testing" group for new items
  2. Test on staging (main branch deployment)
  3. Approve → Mark as "Ready for Production"
  4. Request Changes → Move to "Changes Required" with notes

When to Test on Development

Only request developer help on development branch when:

  • Complex feature needs early feedback
  • Unable to reproduce issue on staging
  • Urgent pre-staging validation needed