How Lean Is Your Development Platform?
Businesses are now realizing the value of a lean approach to development. Eliminating any and all wasteful activity leads to higher profit margins and immediate return on investment. The principles of lean from the Lean Enterprise Institute state that eliminating waste should be a continuous effort in guiding the implementation of lean techniques.
The seven muda, described by the Toyota Production System (TPS), provides the guiding principles for determining whether a development platform is eliminating or contributing to waste in your process.
1. Are there unnecessary configuration files and packaging requirements imposed by technologies within the development platform?
Muda: Transport, Motion, Over-processing
Technologies that use a convention-over-configuration approach often eliminate this type of wasteful activity by making certain assumptions that avoid the need for unnecessary filler (often called boiler-plate code), which is really just a form of over-processing.
2. Are you able to fully automate the release process?
Muda: Motion, Waiting, Defects
All development teams should strive for a release that triggers through a push of a button or the execution of a command. The DevOps community is a great resource for additional information on this area.
3. How regularly does the platform release? Are you consistently waiting extended periods of time for a stable release for bug fixes?
Muda: Waiting, Inventory, Over-processing
Ensure that your team is consistently waiting for the next release of a technology on your development platform. If the team is waiting for a new feature or bug fix, this will only increase your own inventory and inhibit progress. Over-processing can occur when the team simply can't wait any longer for a feature or a bug fix.
4. How well documented is the technology? Does a simple Google search usually result in a solution to a problem?
Muda: Motion, Over-processing
Having minimal or a complete lack of documentation creates unnecessary motion. The development team will spend too much time seeking out solutions to simple problems. In addition, the Google search factor is an often overlooked metric. Successful companies tend to have a wealth of knowledge for solving common problems on sites like stackoverflow.
5. Does the technology include APIs that are rarely, if ever, used?
Muda: Defects, Motion, Over-production
A platform should use plugins to allow a small core with extensions. Unnecessary APIs in a software product can lead to defects like unexpected security holes and additional effort when performing upgrades. The development platform should allow the team to pick and choose the technologies that are needed for a specific application.
6. How many things can be done in one line in another platform? Are the APIs so difficult that you spend too much time trying to make them work?
Muda: Motion, Over-processing
The recent language revolution has spurred debate on which programming language provides the most productivity while maintaining respectable performance numbers. In addition, frameworks surrounding each programming language attempt to make a developer more productive by implementing common solutions that can be extended for additional uses.
Using a programming language or framework that requires excessive lines of code to perform common tasks only creates additional work for the team with no extra value.
7. Do you spend time tracking down defects, only to find out they are embedded in the technology stack?
Muda: Defects, Motion, Transportation
This should rarely, if ever, occur unless a team is consistently using alpha or beta releases of a technology. If your team is consistently working on the bleeding edge of a development platform, this is simply a chosen way of life.
What are you thoughts on the seven muda? Should anything be added to the list?