Lean Thinking in Modern Software Delivery
How to eliminate waste, unevenness and overburden to build sustainable high-performance technology organisations.
How to eliminate waste, unevenness and overburden to build sustainable high-performance technology organisations.
Part 1 of this series was about recognising waste (Muda) and Part 2 was about how uneven flow (Mura) creates that waste. This final part is about the force that gives rise to both. The Japanese term Muri (無理) roughly translates to "overburden" or "unreasonable load". In the original Toyota Production System, Muri was physical: asking a worker to lift a box that was too heavy. In modern software delivery, it is the invisible pressure we put on the two load-bearing parts of any technology organisation: the people who change the system and the system they are forced to change.
It's not dramatic, it's not loud and it doesn't announce itself with outages. Muri accumulates slowly and becomes the norm. And because of that, it's the most dangerous of the three.
In part 1, we explored the eight wastes (Muda) as the visible symptoms of inefficiency in software delivery. We saw how waste shows up in unfinished work, handoffs, long waits, rework, and lost talent. Those are the effects we can observe and feel.
Those wastes are almost always the result of Mura (斑), a Japanese term from the Toyota Production System meaning "unevenness" or "inconsistency" in how work flows. It is the "hurry up and wait" cycle: periods of low activity followed by periods of frantic catch-up, that make delivery unpredictable and unsustainable.
In manufacturing, Lean thinking revolutionised how products were built by relentlessly eliminating waste. Whilst the "software factory" analogy isn't perfect, the core Lean principle of eliminating waste underpins modern software delivery, from Agile and DevOps to Continuous Delivery and Platform Engineering.
In Japanese, Muda (無駄) means "waste" or "futility" - any activity that consumes resources but creates no value. During the development of the Toyota Production System in the late 1940s through to the 1970s, Taiichi Ohno identified seven types of waste that hinder efficiency and productivity. Over the years, Lean practitioners have adapted these for software and added a widely recognised eighth form of waste - often considered the most critical of all.
A guide to building a highly customisable, lightweight, secure, and performant static site using MkDocs, NGINX and Docker.
I'm rolling two releases together into this blog, since I wanted to get these features out sooner. I still think blogging is important way to commutate, but it was starting to become a blocking task, with some features done and ready to release but waiting for an associated blog post to be written. In future I'm taking the approach of releasing features more regularly and blogging about them when it reaches a significant amount of change.
2020 was a difficult year for many people in previously unimaginable ways. 2021 doesn't immediately appear to be an improvement for most people, although there is hope on the horizon, and maybe by this time next year we might be experiencing at least a moderate improvement.
One of my favourite stickers on my laptop is Simon Wilson's "Always be in beta" design. It serves as a reminder that, generally speaking, services are never finished and that continual gradual improvement is the best approach to take. I'm sure this service will be no different.
It's been a long time since the previous release of Mash Time Tracker in August 2019; life, work and free time have been the enemies of side project progress! I've had a number of features "parked" for a while, stuck behind other parts I had started working on and not finished. I've decided to unblock them to get incremental improvements out sooner rather than wait for the bigger features to be ready. I'll try and focus on smaller and more frequent releases in future.
Since introducing Mash Time Tracker last month there have been two releases to production. The first was a large scale refactoring of the app, to improve the structure of the code and make it easier to add new features in future. The second release is what I want to share today; a new feature!