Improving software through Lean means

Software development is a complex task, with some technology giants running operations that involve thousands of employees. Long gone are the days when a handful of engineers could churn out a piece of software. Solutions nowadays take dozens of different teams to ensure everything is working effectively.

As such, many technology giants have wrestled with streamlining development and aligning these many departments. Getting everyone on the same page can greatly expedite production and lead to better results. For this reason, a number of software companies are beginning to leverage Kaizen to bolster continuous improvement initiatives.

Translating Lean to software development

As noted by John Vajada, a project manager at software company Oracle, Lean implementation is all about translating traditional Kaizen philosophies into development. An example of this includes the definition of wastes.

In Kaizen, wastes include inventory, extra processing, over production, transportation, waiting, motion and defects. In software development, these can be defined, respectively, as work left partially done, paperwork or excess documentation, extra features, building the wrong thing, waiting for information, task-switching and bugs.

Reducing waste and taking action

Once software companies have identified wastes at their own companies, they can begin to reduce them.

“Reduce management activities such as unnecessary tracking systems. Minimize tracking by creating a smooth flowing work system,” Vajada urges. “Rethink authorization systems. Make approvals unnecessary. Retrain your brain to see waste. Ask yourself, 'Why am I really doing this?'”

When it comes to eliminating waste, mapping your value streams can be extremely beneficial. This will help to identify wasteful procedures and mitigate production inefficiencies.

The most important component of Lean implementation is taking action. First, make a list of the dozen most important activities that occur within your software company and rate them on a scale of one through five, based on customer perception. This will help you discover which activities are providing value to your end product and which aren't.

After you've rated tasks based on value, look at the two lowest-scoring functions and try to reduce time spent on these. They are likely producing a lot of waste and may be taking away from other activities. Finally, develop a value stream map and note where processes are being held up and delayed. Address the biggest causes in a meaningful way.

Taking this approach should help software developers as they look to streamline activities, reduce waste and provide more value to their customers.