While learning about lean, I came across the five S’s, which is a tool to organize a workspace with visual controls and order.
The S’s stand for five Japanese words that start with an S: seiri, seiton, seiso, seiketsu, and shitsuke. Translated in English this becomes Sort, Straighten, Shine, Standardize, and Sustain.
(image courtesy of b2b.blogsome.com)
Sort your material and get rid of all the unnecessary pieces.
Give every item a fixed place and make it visual.
Clear up and inspect for shortcomings.
Create standards to monitor and guard the previous 3 S’s.
The discipline that is needed to maintain this in a process of continuous improvement.
Working in a clean, organized workplace is not the only goal of the 5 S’s. The biggest benefit is the prevention of errors and defects that are caused by waste. This is a reality for manufacturing, but can also be applied to software development, as you can read in the Poppendieck’s book Implementing lean software development.
Reduce the size of your codebase
Organize the projects and packages
Clean up. Resolve failing unit tests, warnings, TODO’s, … Problems are more visible when everything is clean and tidy.
Keep clean and refactor mercilessly to reduce complexity and improve maintainability.
Build in regular checkpoints to control the current state (ex. Retrospectives), so actions can be taken.
I think it goes further than code. By keeping the team room clean, we
- avoid being influenced by old information which may no longer be accurate
- assure that every information we look at is still relevant
- stimulate the use of visual aids, such as whiteboards and flipcharts
- keep our stress level down
- make it easier for stakeholders to get the data they need from the information radiators
I don’t like to clean up, and probably neither do you. Fact is that I do want to have these benefits and cleaning can go fast as long as you don’t let the clutter pile up.