Ask HN: How does your team run the kanban backlog/board?
I'm looking for clear examples of how backlogs and boards are run with a mixed "full-stack" developers.
We're trying a new process where the backlog contains every ticket from every project we're working on plus bugs from all other services we ownr and the dev just pulls the top ticket regardless. In practice this could mean in a single day I could pull a frontend task in project 1, backend task in project 2 and a bug in a completely different service. To me, this constant context switching gives me nightmares but everyone else says this is normally how kanban is run but I can't find any real world examples of such a process. How does your team handle kanban and do you mix unrelated projects in a single backlog/board?
15 comments
[ 0.24 ms ] story [ 48.0 ms ] threadThe backlog is supposed to be a product backlog, i.e. in general a project backlog.
The board helps you see at a glance the project's status.
So to me it seems that merging everything into a single boards is confusing at best.
I would have a board per project. This does not prevent devs from switching between projects on a per ticket basis but keeps things well organised and managed.
Relative priorities of projects may change. If I tell my devs "project X has priority at the moment" they just need to focus on project X's board.
In any case, if you colour-code you can see at a glance what task looks most critical by looking across a few separate boards.
Yes you could have multiple boards, each with its own backlog ordered by priority, then use colours to see which tasks from which board are a higher priority. But surely the point of having an ordered list of tasks is to see which is the highest priority?
My point is that there is no need to lose the benefits of separate boards in order to solve the (non-)issue of quickly finding out what to do next.
And if you have a single board then try easily seeing how product x is going...
(btw, by colour-coding I meant features, bugs, etc. so you can immediately see what's what)
Also depends on your definition of “project”. Maybe a better phrase would be one board per -product-?
Splitting things to different boards can also be expensive, because you have to prioritize resources at a higher level across boards. And if you break up dependencies, suddenly you have to flip between boards to answer questions.
It sounds like somebody was sick of the drawbacks in the second paragraph. But maybe the issue isn't that you need a monolithic board, it's that you need to make sure the boards are split in the right way.
But to answer the question, it really depends on how you want to do it. If you have a single team doing everything and everyone can grab any ticket, then having a single backlog means that the priorities are obvious. I can't tell you how much that improves the planning process and it could very well override the problems with having a mixed board. If you are doing kanban, then having the priority correct is pretty important.
If you have multiple different teams or multiple different roles, then it can help to split out the overall board into streams. However, in my experience it helps to have an overall priority list for as long as possible. If you are using software to display the board, then it might be possible to automatically split it into streams. Once you get too big, though, it becomes impossible to do central planning for everything, so it becomes a moot point afterwards.
Different people react to context switching differently as well. Personally, I have literally 0 problems with it. Some people end up going something like twice as slow if they have to context switch. The normal solution I've found is to allow people who have a problem to cherry pick. If people start to game it, then you might need a manager to intervene, but I've rarely had problems with it.
When in doubt, talk to your teammates and come up with a compromise ;-)
Otherwise, would it make sense to batch them when prioritising? Same effect, but across the team.
Fundamentally, just try things and keep what works. It doesn't really matter if that's not how other people do it (though knowing general approaches is useful to see what to try).
- "Projects" are set as epics / clusters of tickets
- Ordering of the backlog/board follows as such:
-- Critical bugs
-- Critical "One off" Tasks
-- Sets of Project tickets by priority.
-- Uncritical issues if time allows (moves up in urgency as it sits)
Ideally the following happens for us:
- A group of 2-4 devs work on each project batch of tickets
- If a bug/task can be done by the person who "owns" that system they should do it, but this should never delay critical work.
We have a 30 min weekly meeting to review the status of completed/in-progress work as well as discuss newly added bugs and one-off tasks. Some times this is as fast as 10-15min. This is where we poll to feel if we will hit the deadlines of the product/engineering roadmap and compensate if needed.
Major projects/epics follow a project kick off meeting and then a technical spec/review phase before tickets are then put into an epic to be executed.
The main downside is tooling. Unless you are using a physical board, you'll probably want/need a SaaS.
[0] https://www.jpattonassociates.com/user-story-mapping/
[1] https://agilevelocity.com/agile-tools/story-mapping-101/
[2] https://www.thoughtworks.com/insights/blog/story-mapping-vis...