Develop only the features clients need — and only when they need them
Across the board, industries need to embrace modern workflows to keep up with the speed of startups. And out of all the various methodologies, I find the “lean methodology” to be the most intriguing of them all. It’s a unique combination of pragmatism and a higher purpose.
Lean methodology descends directly from the Toyota Production Systems (TPS), which is based on a philosophy of eliminating waste to achieve efficiency in processes. It relies heavily on the mindset of “just-in-time,” making only “what is needed when needed, and in the amount needed.” In software development, this means only developing the features your clients need, and only when they need them.
To emphasize the point and stir some creative juices, let’s look at the Japanese concepts of muda, mura and muri, and how this applies to being lean when we are building and shipping software.
Muda, mura and muri
Muda is the “waste” we are working to remove that is directly hurting efficiency. Waste is any activity that doesn’t create value, in the form of the products and services we offer. As every engineer knows, spending half the day in meetings is a painful waste of time.
Mura is “unevenness,” referring to any variance in the process itself or the output generated. In software development, “mura” causes unpredictability that makes it impossible to embrace a “just-in-time” mindset. If the quality of a new upcoming feature is uncertain, then additional time and resources will have to be reserved for quality assurance and bug-fixing efforts. It’s better to know upfront what you are going to get, how long it will take and what the cost will be.
Muri is “overburden,” which happens when we demand the unreasonable from our team, tools and processes. If we want to deliver a specific feature just-in-time, then we must allocate the appropriate time and resources. Giving our engineering teams too many simultaneous tasks, or failing to give them the tools necessary to succeed, will only lead to disappointment in time, quantity, quality or cost.
Forms of waste
Diving deeper into muda — what I consider the cardinal sin of lean methodology — here are the forms of waste we should always be on the lookout for:
- Overproduction – Producing more than is needed, or before it is required. Besides unneeded features, we often over-allocate computing resources, especially in non-cloud environments.