Imagine you could have fun, engaging, and efficient planning sessions with your team and that everyone would see all the time exactly what was planned.
Currently I'm working in a team for my old employer, a consultancy firm called Softhouse, and we work on a test framework.
The company has a very long history of doing agile work, and so it was very natural for us to choose Scrum as our way of working.
Some of the very first things we did when inheriting this old project was investing a lot of time cleaning up the code base, getting continous integration into place, nightly builds, automatic releases etc.
One effect of this, combined with our users, and the way we released a new "snapshot" every night (the latest build from the master code branch) was that more and more we noticed that as we developed new features, changed features, fixed bugs etc, they just went into production with few to no hickups.
Users have the option of using our product either by pointing to the symbolic link "production", which is the latest stable released version, or using "snapshot" which is the nightly build.
Doing releases became more a way for us to mark out in time when a certain group of features were done and "officially" released.
But most of our users however would just be using the "snapshot" since it was of good enough quality and offered the latest features and bug fixes.
We typically get a bug fix out within 24 hours and all bugs have prio 1, in other words most of the times we fix the bugs immediately when they are reported.
So our users don't mind running "snapshot" and possible encountering a bug or two and reporting the bugs... in fact we reward them for reporting bugs, but that is a topic in itself which I will be writing about soon.
Given all off this, the releases just feels like bookmarks in time and introduces little overhead. After a release (which takes ~2 hours) its just back to implementing the next feature, bug fix, etc.
It's just like a factory line.
So one morning last autumn, me and another colleague pointed out that Scrum didn't feel like a 100% match for us (for a lot of reasons) and wondered if we shouldn't try moving over to kanban instead.
Working for Softhouse is great since our managers tells us what they expect delivered, but never how to do it. Thats is a decision for the team to make.
Thus over the course of a day we switched over to kanban, created the flow, drew up the WIP-limits, the board, and so on.
Now I'm a fanatic mindmap user (see: "Coggle - My next Mind Map victim") and around the same time I wanted to try something new out.
You know the planning sessions when everyone in the team is gathered in a room ready and excited to do a planning session for the coming sprint... how everyone wants to do the best job possible... and at the very longest to be done before lunch...
And then... it's after lunch... the table is full of post-its... everyone is tired...we're not sure exactly what has been planned for the sprint... and we're all feeling "lets just get done with this so we can do some real work"...
There is no overview of which user stories that have been planned, or which post-its you assigned to them.
You have to wait for the scrum master to write out the new post-its... planning.. done... implementation... done... code review... done... testing... done ... and so on and so on.
But you might also have been stuck with someone doing the planning in some sort of atrocious "agile planning tool" where it takes forever to change digital tasks, again no overview, and people are bored bored bored.
What I did instead around this time was to bring my laptop with my (nowadays) favorite mindmap tool "iMindMap", hooked it up to a projector so everyone could see what we did on the wall.
We would start from a clean slate and then our product owner would bring in the next most prioritized user story, and simultaneously I would enter it in our tool.
iMindMap is fast. In fact wicked fast with it's keyboard shortcuts, and people could then discuss simultaneously around the user story.
What needs to be done, how are we supposed to do that, lets break the implement task into actionable tasks and more. No one is waiting for me to input the text, thereby not pausing the discussions.
Since we don't write on post-its and its no overhead involved, people have no resistance to adding more notes and more granularity, or rewriting existing ones. With post-its it takes time and effort (and we are booored now), whereas it takes no time with my mind map tool.
With post-its we tend to not write them down at all, but for me its just a matter of "shift+tab" or "shift+enter" to get a new node and then type in the text. It only takes a few seconds.
Also given this, people have the whole picture the whole time.
So while we're discussing "user story C", someone might say:
"Let's not forget designing the database tables"
At which point someone else in the team notices (because it is so visible) that we need to add the same task to "user story A".
If it were traditional post-it land.. urrrgghhh.. lets rumage through the post-its and notes for user stories and write a new post-it there... or...
For me its just a matter of navigating with the keyboard (arrow keys) up to "user story A", pressing "shift+tab" and writing in the text, or...
If we have lots uf sub-items under "design database tables" I simple copy that node, then navigate to "user story A" and paste it in.
It. Is. Wicked. Fast!
So the energy of the room is entrierly different. Everyone is engaged, lots of energy, and our plan for the coming work is almost organically growing with everyone being engaged.
No problem, our planning session also serves as a time to do prioritization of course, our product owner has a constant overview of the mind map and what should be done first.
User stories at 1 o'clock are the one we start with and then we work "around the clock".
If the product owner changes his mind during our session and deems one user story more important than another I just grab the whole node for that user story and drag it up or down, or rather clockwise (lower priority) or counterclockwise (higher priority).
Very fast and easy and we still maintain a visual overview of everything.
And the next time our product owner changes his mind about what is more important, which most likely is in the next five minutes, I just take hold of the node and drag it into the desired prioritization level.
Nowadays we have the file called "Kanban planning" which already has the work for the current release and the coming release in place and we simple add into that plan. Or remove stuff if its no longer needed. Or move it into the next release if circumstances have changed for one reason or another.
Just for the sake of it the file is version controlled in GIT if we were ever to want to look back at previous plans... but really how often does that happen?
Afterwards I print the mind map as an A3 poster and put it up on our whiteboard so we all see what's in the pipe, and a colleague of mine writes post-its for our kanban board.
My main point here is this:
My team feels engaged, its fun to do planning, its extremelly easy to add/remove/change content in the coming plan and everyone has a great overview of what is planned.