Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Kaizen 5S Applied to Software Development (And a Bit More)

DZone's Guide to

Kaizen 5S Applied to Software Development (And a Bit More)

Go back to the roots of the kaizen methodology as created in the Toyota Production System and apply them to your workplace.

· Agile Zone ·
Free Resource

Download the whitepaper on Product Centric Agile Delivery. Brought to you in partnership with Jile.

We're still getting used to Agile methodologies, improvements, CI/CD, DevOps and all the newest and fanciest terms.

But, once in a while, let's try to get back to the origin of all these words in order to understand the why and how of these basic mechanisms.

When Toyota (mainly with 大野耐 (Ôno Taiichi), and the ideas of W. Edwards Deming) started creating its Toyota Production System, some concepts and ideas came out and 改善 (kaizen, or "continuous improvement") was the pillar of such a system.

But, even a kaizen mindset (note that kaizen is a mindset and cultural behavior, not a process!) has its own pillars. One is standard work (see my article on Implementing (Two) Kanban Practices with Kaizen in Mind) and the other is the 5S organization method, the five "S"s being five words coming from the Japanese language:

  1. 整理 (整理せいり, seiri), meaning "sort" in English, in kaizen context means "to throw away unused things" (いらないものを捨てる);

  2. 整頓 (せいとん, seiton), meaning "set in order" in English, in kaizen context means "to put the things in their right places and leave them there, ready for use";

  3. 清掃 (せいそう, seisô), meaning "shine/sweeping" in English, in kaizen context means "clean often" (常に掃除をする);

  4. 清潔 (せいけつ, seiketsu), meaning "standardize" in English, in kaizen context means "maintain the 3S behaviors (above) and keep the workplace properly" (3S(上の整理・整頓・清掃)を維持し職場の衛生を保つ);

  5. 躾 (しつけ, shitsuke), meaning "sustain" in English, in kaizen context means "keep and maintain the selected procedures and apply them as habits" (決められたルール・手順を正しく守る習慣をつける).

All these will be applied to the 現場 (げんば, genba), workplace. So, what about thinking 5S in software development?

Let's consider, for the moment, that our genba, our workplace, is the source code.

  • Applying seiri, let's remove legacy code, unused methods and variables, commented and duplicated code, etc.

  • With seiton, put code in its right place, refactor, rename, reduce to single responsibility, apply design patterns whether needed, and so on.

  • Using seisô, repeat the activities above frequently and constantly, running tests (possibly) every time you commit, and not only on new parts of the code. Every time you open a source code file, close it shinier than before.

  • Seiketsu represents standard work, a mandatory part of any kaizen initiative. Define and maintain (and enforce!) a coding standard for the team, for your group and possibly even for the whole company. Define and maintain (and enforce!) a set of code quality checks and hints for your IDEs and version control environments. Keep them up-to-date and aligned with technologies improvements.

  • Shitsuke, is the concept of repeating the activities above, documenting them as standard procedures and habits, and continuously transforming and improving them.

Let's try to widen the workplace definition to your IDE: remove unused plugins and configurations, properly use the code quality hints in the correct way, share configurations and settings, update and align source code by forcing optimization and formatting on commit.

Let's expand our workplace further: keep your desktop clean. Remove or store unused documents, links and icons, clean up your disk, and define standards to organize development common files across teams (properties configurations, VMs, internal servers ports, etc.).

And keep expanding: "In a desk with only two drawers, office supplies and personal items each should occupy one drawer." (see Gemba Kaizen by Masaaki Imai.

In order to improve something, anything through kaizen, doing more with less, you need to have and define your standard work and to keep maintaining it with the 5S method. Consider every environment you use as a workplace to interact with in order to produce value for your customer.

Download the whitepaper on Five dimensions of Scaling Agile in Large Enterprises. Brought to you in partnership with Jile.

Topics:
kaizen ,software development ,agile methodologies ,lean development ,agile ,kaizen values ,5s methodology

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}