DevOps Zone is brought to you in partnership with:

Software Developer, Mentor, Architect and UX/UI craftsman. Also, a psychology nut that loves curling. Zac is a DZone MVB and is not an employee of DZone and has posted 66 posts at DZone. You can read more from them at their website. View Full User Profile

Eliminating Software Waste with Kaizen

08.16.2013
| 6878 views |
  • submit to reddit

For the uninitiated, Kaizen is a Japanese word meaning "change for the better" or "improvement." The two parts of the word, which are displayed in the picture, translate into "change" and "good." Kaizen has a similar focus to Agile. It's a philosophy that continuously focuses on daily process improvement. It falls under the Lean methodology and was spawned from the necessity to increase manufacturing efficiencies. The goal of Kaizen is to humanize the workplace, eliminate difficult work, eliminate waste in process, identify areas of improvement, and experiment with solutions to problems. Eliminating waste and increasing efficiency seems like a no-brainer to even the most uninitiated, but this is not as easy as it sounds. It opens many questions, regarding such things as where to start and what to look for.

Foundation
Before starting down the road of Kaizen, it's important to understand the guidelines or ground rules: Do not accept there is only one way to solve a problem. Make sure all improvements can or will be measured. Reject the notion that "there is no more room for improvement." Gracefully accept the current situation while working toward a goal. Focus on the problems and not the people. Do not judge, criticize, or blame others. Work as a team to find solutions, not as islands.

Getting Started
An easy way to start Kaizen is to look for excesses. Ask any software developer and he/she can undoubtedly rattle off a few items at will. This can be anything from too much code to deployment difficulties to cumbersome inter-department processes. Digging into excess will naturally lead into the review of unproductive areas as well. This should include a review of the meetings held at a company. It's common for companies to accidentally become addicted to meetings. Lengthy compile times, unnecessary deployment procedures, difficult products to support, complicated bug/defect processes, and analysis paralysis are just a small sample of areas where individuals struggle to achieve high levels of productivity.

A successful implementation of Kaizen includes continuous review and repetition of the evaluation process. Most development teams already have a variety of reviews in place. Root cause analysis reports, holding retrospective or post-mortem meetings, and completing code reviews are all areas of continuous evaluation and improvement. Here are a few other areas to place under consideration: periodic review of development efforts, continuous tracking of technical debt, and introducing 20% time to encourage innovation (which can lead to process improvements).

The goal of Kaizen is to eliminate waste, but this may not translate into eliminating a problem all together. Each area should be evaluated based on the value it creates. If unproductive areas are found they should be reduced and/or removed. In business, distractions are a daily occurrence. For Kaizen to take hold and flourish everyone must internalize the concepts and learn to avoid the compromising strain brought on by deadlines and other pressures.

Published at DZone with permission of Zac Gery, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)