Are you a “wipe the slate clean” person? How many times have you said you’ll start fresh on Monday, or the first of the month, or in the New Year? Here’s a secret: it never works.
You can’t really ever wipe the slate clean, nor should you want to. You’ve come this far thanks to the work you’ve done in the past. Yes, there’s probably a more efficient way out there, but you won’t discover it by undoing all the progress you’ve made.
This is why I love the kanban system. I started using it at the beginning of 2019 to overhaul my workflow, and I’m hooked. It’s perfect for the type of team that needs to stay organized and on top of work, but that also knows things will change – a lot.
In this article, I’m going to focus on kanban for WordPress development teams, but a couple of the samples I use are from my own kanban boards, which are created around my writing workflows.
What is Kanban?
To understand kanban development, you should first understand lean thinking.
Lean thinking is not a methodology. Instead, it’s a mindset that’s based on values that frame a project’s context. The seven lean values are:
- Eliminate waste by getting rid of anything that doesn’t add value to the project.
- Amplify learning by regularly gathering feedback to improve processes
- Decide as late as possible, i.e., after gathering all information to inform decisions.
- Deliver as fast as possible without sacrificing team morale or product quality; this is about efficiency and sustainability, not speed alone.
- Empower teams, ensure the health and energy of developers, and promote based on expertise and leadership.
- Create intuitive, valuable experiences.
- See the whole picture by assessing the entire project, not just its individual features.
Teams that employ lean thinking often use the kanban method for workflow management. You can set up a kanban board with hard copy index cards or you can create a digital kanban board with a tool like Asana or Trello. Create a workflow by setting up different columns, then move the card through the workflow from left to right as tasks are completed.
The most basic kanban board has three columns:
With advanced kanban boards, you can have additional columns, and each card may have its own set of sub-tasks to complete. Here’s an example of just some of the sub-tasks on a card in my Asana:
Since kanban tends to track larger work items instead of small tasks, it’s common to need several sub-tasks and directions on one card, along with start and end dates, assignees and support documents.
Kanban development is a way to setup evolving processes; it doesn’t demand immediate changes by doing specific tasks in-the-moment. It also doesn’t start with a blank slate. Instead, it builds on and adapts your current processes and team structure.
There are four basic kanban principles:
- Start with your current processes. Include the steps, policies and rules you currently follow. This may change moving forward, but that’s the point of kanban development – to evolve.
- The team must commit to incremental and evolutionary changes.
- Respect and maintain job titles, roles and responsibilities, at least for now. The team structure may change as you tweak your processes.
- Encourage team members at every level to lead when appropriate.
There are six core kanban practices:
- Visualize your projects by creating columns that match each step of your current process.
- Set a cap to limit how many active work items there are in each column. This helps create a realistic pace and allows team members to focus on the most important work items without feeling distracted or overwhelmed.
- Measure how quickly cards are moving across the board and assess if there are any bottlenecks or waste.
- Define the steps, policies and rules of the process so all team members are informed.
- Implement feedback loops and make necessary process tweaks.
- Improve collaboratively and evolve rapidly. This practice combines the four principles so that the team can make decisions as a whole.
Kanban for WordPress Development
Creating a Board
To use kanban for WordPress development, you’ll need to break down your process into specific development steps. The easiest way to do this is by looking at a feature you’ve already delivered and listing each broad step of development. Here’s an example from software engineer Harrison Ferrone:
Each step is then used to create a column in your kanban board. Here’s an example kanban board from Asana that’s used for bug tracking:
Here are more column ideas for your WordPress development kanban board:
- Backlog: Ideas that may or may not be implemented
- Required: Ideas to develop
- Ready for Design: Ideas that are clarified and that have the go-ahead for the next step
- In Progress: You can have separate “In Progress” columns for the design, coding and production stages
- Ready for Review: You can have separate “Ready for Review” columns for each stage
- In Review: You can have separate “In Review” columns for each stage
- Changes Needed: Returned items that need more work
You can also classify cards based on priority. Tools like Asana and Trello have color coding for this purpose. You can prioritize categories like Bugs, Customer Features and Customer Issues however works best for your team.
Setting Work in Progress Limits
Setting up the kanban board is just the beginning of organizing workflow. The entire development team has to understand how to use the kanban board and what’s expected of them at each stage. This is especially important if you notice bottlenecks, or columns that are building up with work at a faster rate than other columns. It’s likely that you’ll need to set a work in progress (WIP) limit to stop this from happening, assuming you trust that your team members are working efficiently enough.
For example, the “Test and Validate” step may be a bottleneck if this part of the process takes longer than the other parts. The solution is to set a WIP limit for that column, the column before it or the entire kanban board. You could limit the “Build Feature” and “Test and Validate” column to five each. That way, there are never more than five features being built at a time and no more than five features that require testing and validation at a time. Once testing and validation finish for a feature, another work item can be moved from the “Build” column. This keeps the workflow moving along without getting caught up in any one place.
According to Kanbanize, a good rule of thumb for setting WIP limits is to multiple your developers by two. If you have ten developers, you’ll set a max of 20 projects for any given time. Lower limits are better for efficiency but don’t set them so low that your team ends up having nothing to do as they wait for other developers to complete work items.
Kanban Development Best Practices
Include the specifics and rationale behind WIP limits. You can write this directly on the board so that team members can reference it when needed. For example, one of my clients has directions in a card at the top of a column to explain how many articles can be claimed per day and the days and times when articles are added to the board throughout the week.
Clarify when a card should move from one board to the next. I have this built right into the sub-tasks on some of my cards, and I know to only move the card once the previous sub-tasks are complete:
You can also set more specific parameters. For example, I can only move a card to the “Completed” column if I’ve added the article’s published link to my portfolio and if the article is paid for.
Expand the workflow to account for work items that bump back and forth between columns. Let’s say you have an item in your “Code Review” column. If it fails code review, it’ll have to go back to the previous column, which is probably something like “Build Feature.” If this happens a lot, you have a new kind of bottleneck, but if you set a low WIP limit, then you won’t get enough work done.
The solution is to create new columns, such as “Failed Code Review” and “Second Code Review.” You’d then tell your team that if a feature passes the initial code review, it can go directly to the next natural step and skip the two additional columns you’ve just added. Or, you could put a new column at the beginning of the workflow to gather the failed reviews and push them through the process again, or you could add a “Fix” column within the process to tackle those problems. The best solution is the one that works with your customized process.
There isn’t one type of kanban board, not even for two development teams who do exactly the same thing. That’s what’s great about it – you can completely tailor it to your needs, and then adapt it as your needs grow and change. Overall, kanban development is excellent for teams that need to create what users want; deliver those features on time; and create a workflow pace that’s sustainable.
Now that your development workflow is smooth, learn how to set up your digital workspace for greater productivity.