Good Housekeeping*

Alias: Daily Clean Code

Someone borrowed a tool from the work environment and didn’t return it. As a consequence the Team needs to search for it when they need the tool. Even worse, the Team might send an email to all the employees, which will distract them from current work and waste their time. As a last resort the Team might purchase a new tool.

...the Development Team wants to make progress toward the Sprint Goal.

✥       ✥       ✥ 

Where there’s a mess you lose time and energy finding where and what to start on.

If a team member has to ask where to start working, it’s a waste of that team member’s time. If the team member needs to clean up a mess before starting work, it’s a waste of time. If the team member builds on a mess and needs to rework what a previous team member has done, it’s a waste of time. If the team member is unaware of the work state, the team member ends up repeating the work that another team member has already done; it’s a waste of time and energy. If the team member needs to ask what to do next, it’s a waste of time.

Too much information on an Information Radiator makes it hard for team members to separate signal from noise. This wastes the team’s time.

Cleanup work accumulates to stagnate progress if the team defers cleanup until the end of the Sprint. The team may not clean up the work space at all, as there may be too much “real work” near the end of the Sprint. The mess will sharply decrease the velocity (see Notes on Velocity) or product quality in the upcoming Sprint.

Waste stems from working in the context of an unknown state.

Therefore:

Maintain a completely clean product and work environment continuously, or clean at the end of each day.

✥       ✥       ✥ 

It will be more obvious to team members what to work on when the work environment is clean. Tasks flow more smoothly in a clean work environment.

The Development Team needs to continuously focus on maintaining the product in a state where anyone in the team can safely start working. It will also need to continuously ensure the information in its environment is useful for the team. Continuously keeping the product in shape raises confidence about the quality of the Product Increment produced at the end of the Sprint.

The product must be in a Done (see Definition of Done) state every day (or more often). The team will not necessarily create a Product Increment as the product is in a transitional state toward attaining the Sprint Goal, but what the team creates must adhere to standards.

A work environment that is messy hinders team members from seeing the actual situation. Equally, a work environment that is sterile obscures the actual situation via invisibility (e.g., a clean desk policy). The Development Team needs to throw away only the excess and useless information, and no more. The team should maintain a continuous focus on the balance between too little and too much information.

Good Housekeeping is in line with 5S methodology of Toyota Production System. (5S has its origins in the disciplines of keeping a good Japanese house.) The 5S in Japanese stands for seiri, seiton, seiso, seiketsu, and shitsuke (sort, set in order, shine, standardize, and sustain). This methodology is about developing disciplined work habits which among other things results in a clean work area ([1]).

Good Housekeeping is not only cleaning up your own mess but also that of others. Robert Stephenson Smyth Baden-Powell, the father of the Boy Scouts, stated: “Try and leave this world a little better than you found it.” Today, Scouts say, “Leave the campground cleaner than when you found it.” [2] The same applies to leaving the product and shop floor cleaner than they were when you started. This approach is a significant part of the continuous attention to technical excellence that is a principle for agile teams. [3]

Good Housekeeping fosters commitment and discipline from the team. When starting with Good Housekeeping, the Development Team might feel that the effort is too great and eats into the Production Episode. This may be a sign that some processes/tools are too slow, and the team should address them as impediments. If a Development Team cannot leave the product in a clean state every day, then that may indicate a serious problem with the product, design, or work environment. Use Sprint Retrospectives for further inspection of what is holding you back. Create an Impediment List when there are more obstacles than you can handle. The rules for maintaining Good Housekeeping need to be part of Norms of Conduct.

Whack the Mole helps with Good Housekeeping. Whereas Whack the Mole is responsive, Good Housekeeping requires intention.


[1] Jeffrey Liker and David Meier. The Toyota Way Fieldbook: A practical guide for implementing Toyota’s 4P’s. New York: McGraw-Hill Education, 2006, pg. 64.

[2] Lord Baden Powell. Biographyonline.net, http://www.biographyonline.net/humanitarian/baden-powell.html (accessed 2 November 2017).

[3] —. Manifesto for Agile Software Development: Principles. Agilemanifesto.org, http://agilemanifesto.org/principles.html, 2001, accessed 23 January 2017.


Picture credits: https://pixabay.com/en/labour-day-tools-work-1393864/ (under CC0 license).