The 5S methodology(Programming Style)

What is the 5S methodology?

5S is the name of a workplace organization methodology that uses a list of five Japanese words which, transliterated and translated into English, start with the letter S. This list is a mnemonic for a methodology that is often incorrectly characterized as “standardized cleanup”, however it is much more than cleanup. 5S is a philosophy and a way of organizing and managing the workspace and work flow with the intent to improve efficiency by eliminating waste, improving flow and reducing process unevenness.

http://en.wikipedia.org/wiki/5S_(methodology)

Shall we dive a little deeper?

So what are the 5S’s

  • Sorting
  • Straighten or Set in Order
  • Sweeping, shining or cleanliness
  • Standardizing
  • Sustaining the discipline

Now, how does this apply to people in the IT field?

Sorting

As a programmer, there are many things that need to be sorted on a project and sorting them will increase your productivity and decrease insanity.  Sorting can take place at many levels in a project and for a programmer.  A physical level could be cleaning your work areas and discarding things that may cause distraction. It’s always harder to focus when your workspace is cluttered and in disarray.

Simply, make sure that you know where to get all your tools and information that you will need and remove the rest as it will cause distraction.

Straighten

This S is more a focus on efficiency, so once you have your area clear you need to optimize. This is kind of like when you’re trying to figure something out in code and you just blast variables like “int k” or “string asdf” to kind of “just get it to work”, you now need to go back and “Straighten” all those things out.

Sweeping

This is similar to “Straighten” but here there could be some optimization I think.  Like oh I don’t need these fields in this query or I don’t need this extra variable.  Prune out the dead leaves and sweep off the dust in your code.

Standardizing

Ok, so now you’ve done all that and your code(provided you’ve worked in an environment with standards before) should be pretty much standardized, but you should double check things. Make sure that your spacing and documentation is setup correctly and you’ve met all the requirements.

Sustaining

Keep it up!  Basically just keep following the process and you should produce some good clean code.

Conclusion

I know that I didn’t really cover testing or quality assurance but those things are usually worked into a grander picture of development. The 5S methodology could be applied to programming on a programmer basis to help the output of the code you’re writing.  I pretty much made this all up so PLEASE comment on things you would add or things you don’t agree with me on!  I welcome criticism!