Develop only the features clients need – and only when they need them
Liran, co-founder and CTO of Rookout, is an award-winning cybersecurity practitioner and writer who advocates advanced software methodology.
Across the borderIndustry needs to use modern workflows to keep up with the speed of startups. And of all the different methods, I find the “lean method” the most fascinating of all. It's a unique combination of pragmatism and a higher purpose.
The Lean methodology is derived directly from the Toyota Production Systems (TPS), which are based on the philosophy of waste disposal in order to achieve efficiency in the processes. It depends heavily on the “just-in-time” mindset and only does “what is needed when needed and in the required quantity”. In software development this means that only the functions that your customers need are developed and only when they need them.
To emphasize the point and stir some creative juices in, let's look at the Japanese concepts of Muda, Mura, and Muri and how this applies to Lean when we create and ship software.
Muda, Mura and Muri
Muda is the "waste" we work on to directly affect efficiency. Waste is any activity that does not 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 "non-uniformity" and refers to any variation in the process itself or in the output produced. In software development, “mura” causes unpredictability that makes it impossible to adopt a “just-in-time” mentality. When the quality of a new function is uncertain, additional time and resources must be reserved for quality assurance and troubleshooting. It is better to know in advance what you are going to get, how long it will take, and what the cost will be.
Muri is "overloaded" what happens when we ask the inappropriate from our team, our tools and processes. If we want to deliver a certain function just-in-time, we need to allocate the appropriate time and resources. If you give our development teams too many tasks at once, or fail to provide them with the tools they need to be successful, it will only result in disappointment in terms of time, quantity, quality or cost.
Forms of waste
Delving deeper into muda – which I consider the main sin of the Lean methodology – here are the forms of waste that we should always be on the lookout for:
- Overproduction – Produce more than you need or before you need it. In addition to unneeded functions, we often over-allocate computer resources, especially in non-cloud environments.