5 S for Software Development
Sort, Straighten, Shine, Standardize and Sustain Your Cluttered Software Code
By Jay Arthur
Translating Lean Six Sigma into a software environment takes some flexibility. Recently, I was working with a software company in Canada, describing Lean. I mentioned that the Agile software development methodology is just Lean for software. Teams create small batches of functioning, tested code every couple of weeks.
5S for Software Development
Then I turned my discussion to 5S--Sort, Straighten, Shine, Standardize and Sustain. I have a pretty good example of how one of my clients used 5S in a hospital lab, but it still wasn't software specific. I suggested that our PCs get cluttered with older versions of documents that could be deleted. But that still didn't quite get at it.
During the break, one of the programmers said that he didn't have a name for it, but he uses 5S on the code. As the developer of the QI Macros, I realized that it was a perfect description for what we do. You see, over time, software code gets cluttered with out-of-date comments, unused code fragments, duplicate code and so on. Whenever I get into the QI Macros code, I "5S" the code by:
- Removing out-of-date comments
- Moving duplicate code into a single module that can be called and maintained in one place which makes it faster and more reliable.
- Removing unused code like a module that used to be called but has been replaced.
- Removing unused data definitions that are no longer needed.
- Rewriting decision logic to make it clearer and simpler.
- Revising anything and everything to make it faster and easier to maintain.
The mere act of cleaning the code makes it easier to decide how best to implement an enhancement. Using 5S makes the code easier to maintain and more reliable.
When I worked in the phone company, one of the billing programmers wanted to prove me wrong about this. So he took one error-prone, 25,000 line (HUGE) COBOL program and split it up into a main module and two subroutines. The two subroutines replaced a lot of duplicate code in the original program. The program stopped being a maintenance nightmare and became a showpiece for what could be accomplished. The programmer sheepishly told me I was right.
Here's My Point
Want better, faster, more maintainable code? Consider using 5S every time a programmer gets into a program to remove the code debris that accumulates over time.
About the Author
Jay Arthur, the KnowWare Man, is author of "Double Your Profits: Plug theLeaks in Your Cash Flow." He has spent the last 20 years helping companies maximize revenue through the "Lean Six Sigma Simplified System," a collection of audio, video, books and software. Jay is also the author of "Lean Six Sigma Demystified" and created the "QI Macros SPC Software" for Excel.