Managing flow is not easy and sometimes counter-intuitive. Limiting work in progress will decrease lead time while not affecting throughput – really? You should reduce variability in the input to increase predictability of your system – always? You can hear about such principles here and there. There are mathematical models available to deduce if that advice is right or wrong, but they are very complex, as the system we’re dealing with is very complex. Lots of things are happening at the same time – variable tasks size, variable entry times, variable team size, skills, limits, priorities, value…
When I decided that I wanted to learn more about those principles (after reading a book by Donald G. Reinertsen: The Principles of Product Development Flow) I realised that solving the related mathematical puzzle was probably too hard for me. The other thing I was concerned about was that I wasn’t sure if, when successful, I would be able to explain and convince others quickly about my findings. So an idea came to my mind – a flow simulator. A simulator, where anyone could easily be able to play with all the variables and observe the outcomes. Where anyone could instantly see the outcomes of limiting WIP, decreasing variability, pair programming, multitasking, different prioritisation methods and so on.
After a month of evenings working, the first version of the Kanban Flow Simulator is available here.
It doesn’t have all the things I wanted, yet, but I will be adding them incrementally. The more detailed description of what can be done and what is available in the simulator is available here.
The simulator is open sourced. You can take look and maybe laugh at my coding skills by navigating to the GitHub project. If you feel that you’d like to help me with anything, like adding more features to the simulator, making it more usable, beautiful or mobile friendly, feel free to contact me (take a look at the upper right corner or leave a comment). And feel free to use it during workshops or other educational activities. Just let me know that you’re using it – this will make me a happier person 🙂
While I was developing this app I’ve learned a few things:
- Little’s Law is true…
- …and it’s true that you shouldn’t use it for short time windows (depending on variability of course).
- UX is hard.
- Refactoring, as a separate activity, is necessary.
- It’s hard to release unfinished product.
I’d appreciate all feedback about the idea, the application, missing features or bugs. Drop me a line, preferably via Twitter. I will do my best to improve the simulator to make it even better!
I’ve asked a number of people for feedback or help while developing the simulator, and I’d like to thank them here: Łukasz Gawlik, Piotr Leszczyński, Darek Paciorek, Doug Talbot, Guy Marshall, Emily Page, Michał Płachta and… Magdalena Gajdzik! Thanks all for your support and help!