Trello vs Jira vs Kanban

Jan.12.2018 | 9m Read | ^DevOps

In the following we shall cover various methodologies, mixed approaches, and tools to increase or focus productivity.

This is the second article covering DevOps tools and methodology integration. See PART 1: Agile vs Scrum vs Lean for a background on methodologies.

Kanban (Lean):

▼ What is it?

    • ☑⁡⁡ A task board (Kanban Board) scheduling system for Lean, often mixing with Agile and Scrum features. NOTE: the particular Kanaban board and methodology in this article are based off of X-box teams at Microsoft and various other sources.
        Agile has an Agile Board, which is similar, but with fewer columns (no Run or Clog states).
      ☑⁡⁡ Instead of Sprints for scheduling (timeboxing), the team is limited by cards they must push across the phased columns of the Kanban Board.
        ◆ Mixing concepts, these cards can represent Sprints and a Backlog in other methodologies.
        ◆ Rightward momentum or pacing is key (see below).
      ☑⁡ Literally means 'sign' or 'billboard' in Japanese.
  • ▼ 4 Columns (7 with sub-columns):

    • ☑⁡⁡ List (backlog): prioritized tasks as digital cards (or physical sticky notes on a whiteboard).
        Big Teams: typically done by upper management.
      ☑⁡⁡ Sort (Spec): breakdown the task and assign it by asking the 5 Ws + H (Who, What, Where, When, Why, and How).
        Big Teams: typically done by management (product).
      ☑⁡⁡ Fix: is the questioner of the sorted task satisfied (with the fix)?
        Big Teams: typically done by the dev team.
      ☑⁡⁡ Test: passes tests and review.
        ◆ Trivial Bugs are just fixed.
        ◆ Complex Bugs become new tasks and are added to the List.
        Big Teams: typically done by the test team or DevOps.
      ☑⁡⁡ Run and Clog: each of the above three columns (excluding List) has two sub-columns to set the task state.
        Run: the task is ready and actively being worked on.
        Clog: the task is clogged and waiting for another task to move out of the way.
      ☑⁡⁡ End: the final end state of a task (the last column).
  • ▼ Pacing:

    • ☑⁡⁡ Stand-ups (daily): focuses on IDing issues and unclogging tasks since the updated board has both complete and assigned history.
      ☑⁡⁡ Assigning: tasks are generally assigned to whoever is available, but are paired with senior or specialized members to review at a later date.
      ☑⁡⁡ Rate: estimated Time (buffered) / Issues = tasks per day, week, or month (or estimated time divided by issues equals tasks per day, week, or month depending on the total time).
      ☑⁡⁡ Max: the Max (number of tasks) in the Run and Clog columns for each section (WIP Limit).
        Fix limit is 100-50% of the all team members (or in big groups, 100-50% of all groups).
        Sort and Test are roughly 50% of Fix's limit.
      ☑⁡⁡ Deadlines: estimate tasks number, estimate rate, compare calendar dates.
        Evidence Boarding: use the board as a visual and technical story for arbitrating task priority and insertion (especially to ignorant third parties).
      ☑⁡⁡ Need (dependency requirement): tasks that depend on another (that is often lagging).
        ◆ Assign to a person or team in a new bonus Fix column called Need (ignoring the Max).
        ◆ Make it a priority to remove the Need and the column (like swarming).
      ☑⁡⁡ Swarming: when tasks lag and get stuck, other team members (especially further down the pipeline) become idle and can be reallocated to attack the Clog or Need task.
  • ▼ Evolving Methodologies:

    • ☑⁡⁡ Waterfall: you're now tracking work on a board and batching into tasks.
    • ☑⁡⁡ Scrum: add Max limits and make sure to reference the Kanban Board, but prune Scrum excesses over time.
    • ☑⁡⁡ XP: like Waterfall add a Kanban Board, but XP is now picked from like a salad bar as needed.

    Tools:

    ▼ Trello vs Jira:

    • ☑⁡⁡ Web methodology management.
    • ☑⁡⁡ Both have an online task board.
    • ☑⁡⁡ Both integrate with GitHub or Bitbucket for team version control.
    • ☑⁡ Jira has support for insight reports.
    • ☑⁡ Trello has Sprint Retrospectives, meetings, and brainstorming.

    MD Kanban Example:

    _^_LIST__ _______?__SORT_________ _______=__FIX__________ _______%__TEST_________ _______@__DEPLOY_______
    __MAX:___ 2 4 2 2 / ∞
    _STATE:__ _+_Run___ _!_Clog__ _+_Run___ _!_Clog__ _+_Run___ _!_Clog__ _+_Run___ _#_End___
    Task023 Task022 Task021 Task018 Task013 Task019 Task005
    Task024 Task014 Task016 Task017
    Task025 Task020
    Task026 Task006
    Task027 Task011
    Task028 Task007
    Task029 Task015
    Task030 Task009
    Task031
    Task032
    Task033
    Task034
    Task035

    MD Kanban Template:

    _^_LIST__ _______?__SORT_________ _______=__FIX__________ _______%__TEST_________ _______@__DEPLOY_______
    __MAX:___ 2 4 2 2 / ∞
    _STATE:__ _+_Run___ _!_Clog__ _+_Run___ _!_Clog__ _+_Run___ _!_Clog__ _+_Run___ _#_End___
    Task000
    Task001
    Task002
    Task003
    Task004
    Task005
    Task006
    Task007
    Task008
    Task009
    Task010
    Task011
    Task012

    ▼ MD Kanban Code:

    | `_^_LIST__` | `_______?__SORT_________` | `_______=__FIX__________` | `_______%__TEST_________` | `_______@__DEPLOY_______` |
    | :---------: | :-----------------------: | :-----------------------: | :-----------------------: | :-----------------------: |
    |             |                           |                           |                           |                           |
    | `__MAX:___` |             2             |             4             |             2             |           2 / ∞           |
    |             |                           |                           |                           |                           |
    
    | `_STATE:__` | `_+_Run___` | `_!_Clog__` | `_+_Run___` | `_!_Clog__` | `_+_Run___` | `_!_Clog__` | `_+_Run___` | `_#_End___` |
    | :---------: | :---------: | :---------: | :---------: | :---------: | :---------: | :---------: | :---------: | :---------: |
    |             |             |             |             |             |             |             |             |             |
    |   Task000   |             |             |             |             |             |             |             |             |
    |   Task001   |             |             |             |             |             |             |             |             |
    |   Task002   |             |             |             |             |             |             |             |             |
    |   Task003   |             |             |             |             |             |             |             |             |
    |   Task004   |             |             |             |             |             |             |             |             |
    |   Task005   |             |             |             |             |             |             |             |             |
    |   Task006   |             |             |             |             |             |             |             |             |
    |   Task007   |             |             |             |             |             |             |             |             |
    |   Task008   |             |             |             |             |             |             |             |             |
    |   Task009   |             |             |             |             |             |             |             |             |
    |   Task010   |             |             |             |             |             |             |             |             |
    |   Task011   |             |             |             |             |             |             |             |             |
    |   Task012   |             |             |             |             |             |             |             |             |
    |             |             |             |             |             |             |             |             |             |

    When & What to Use?

    • ☑⁡⁡ Fallback on Waterfall or better, a simple list (3 columns: list, run, and end). This may prove acceptable if the team is tiny (1-3 people) and there is no remote members or intelligence gaps.
    • ☑⁡⁡ Local teams should use a physical Kanban Board.
    • ☑⁡⁡ Remote members need a remote board (like Jira or Trello)
    • ☑⁡ Jira by Atlassian.com ↗ provides git and code management features.
    • ☑⁡⁡ Evaluate the limitations and overall UX of the software and physical materials.
    • ☑⁡⁡ List what XP Rules and techniques you will follow before starting.
    • ☑⁡⁡ During a progress evaluation phase (like a Sprint Retrospect) consider looking into and applying Lean principles and tinkering with XP rules.
    • ☑⁡⁡ Add Scrum if you have enough people to fill the roles and need more team structure and unity.

           : NEWS