272. The Five S's, and How to Start Writing Efficient Software!

According to Wikipedia, the Five S’s are a workplace organization method that uses a list of five Japanese words, Seiri, Seiton, Seiso, Seiketsu, and Shitsuke, to describe how to organize a workspace for efficiency and effectiveness. It does this by helping people to identify and store items used, maintain the area and items, and sustain the new order. In this episode, we are going to delve into what specifically the five S’s are and how you would use them in the workplace. Then we are going to apply these concepts to software developers and agile teams to see how they could be used for writing software more efficiently. Don’t miss it!

Key Points From This Episode:

  • An introduction to the methodology of the Five S’s and how it can be applied to an Agile team or a software developer. 
  • Seiri, which stands for sort, and how this relates to the concept of Just-In-Time (JIT) manufacturing.  
  • Seiton and Seiso: what they mean and how they can be useful for writing efficient software. 
  • Seiketsu, which means standardize, and how it relates to the first three of the Five S’s.
  • And the importance of Shitsuke, which means “sustain.”
  • Where you can find assistance in implementing and maintaining the Five S’s.
  • And much more!


Transcript for Episode 272. The Five S's, and How to Start Writing Efficient Software!

[INTRODUCTION]

[0:00:01.9] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast, living large in New York. I’m your host, Michael Nunez, and today, we’ll be talking about The Five S’s and How to Start Writing Efficient Software.

First, I’m going to define what are the five S’s, how you would use them in the workplace? I’ll try and give the origination of the particular word, how would we use it in an Agile team and how would a software developer use it? Now, I hope anyone and everyone listening finds it useful, and we could just dive right in to answer that question.

What is Five S? Note: before I begin, just know that I’m going to say the words in Japanese because this particular methodology derives from Japan. So I apologize if I’m butchering these words, I’m doing my best. 

What is Five S? According to Wikipedia, five S is the name of a workplace organization method that uses a list of five Japanese words, Seiri, Seiton, Seiso, Seiketsu, and Shitsuke. They all start with the letter S. The list describes how to organize a workspace for efficiency and effectiveness by identifying and storing the items used, maintaining the area and items, and sustaining the new order. The decision-making process usually comes from a dialog about standardization, which builds understanding amongst employees of how they should do the work.

[0:01:31.9] First I want to say, I really hope that all my Japanese anime watching paid off because I really enjoy watching anime and the language is pretty amazing but I was never good at it, so I really tried here and I might have to repeat those words again. 

So I’m going to start with the first word and I’ll give you the English translation, what it means, you know, what it was meant to use and how we use it in the Agile field. The first one is Seiri, which stands for sort. Sort out and separate, that which is needed and not needed in the area. 

So this is ensuring, understand that these concepts come from what is called JIT, Just In Time Manufacturing in which I believe, Henry Ford had started and when they were creating the Ford car. Toyota adopted this particular production model and kind of refined it by reducing the seven wastes that could appear when using Just In Time Manufacturing. You could definitely check out that episode at episode number 82. 

So imagine if you will, you want to make sure that you have, you’re easily accessible to the tools that you need and the tools that you don’t need, you can put them away. In your Agile team, I see this as someone sorting out the MVP and the features that are required and that needs to be delivered for this particular sprint and only delivering what is absolutely necessary for, to bring value to our users. 

In software, I believe this is kind of like YAGNI. If you ain’t going to need it then you can get rid of it. If you are going to need it, then you can build that function or that feature. So for me, it’s kind of like YAGNI but also like refactoring in a sense and throwing out unnecessary code and ensuring that the things that you have nearby are nearby, maybe it’s the books that you have or the Internet, that’s very important for me at least and the tools required for you to do the job. 

[0:03:25.8] So the second one Seiton, which I believe translates to straighten and set in order. Arrange items that are needed so that they are ready and easy to use. Clearly identify locations for all items so that anyone can find them and return them once the task is completed. 

I believe this is in your Agile team, you know, ensuring that the stories exist in a particular place that is accessible to everyone. At this day and age, we’re using probably Jira but I hope you're using something to track the work that needs to get done and better than post-it notes off of Bobby’s desk, that would be kind of crazy right now. 

I started using Pivotal Tracker, that one’s pretty cool, definitely check that out if you are starting a new project. It’s also the idea of like, setting the stories in order, right? So you can deliver that value to the user. You’re straining out the backlog and making sure that it’s maintained well. 

In software development, it’s going to be an arraignment of files. You know, identifying places to tidy up the code base, you know, if they’re definitely repetitions, you have some helper functions, you can move them into a helper and not have to duplicate that code. Another example I think is like, when you have constants and you want to keep them in a particular place that everyone can know and understand, this is where the constants exist for this particular reducer or what have you. For me, I feel like that is one area in software development that we can always keep in mind, when we’re building software. 

[0:04:51.2] We have Seiso, which is shine. Clean the workplace and equipment on a regular basis in order to maintain standards and identify defects. This is possibly going over the board, ensuring the stories are well-kept and can be worked on when the time comes. 

This is probably with the iteration planning meeting, you have that refinement meeting, ensuring that everything stays fresh and we have the up-to-date information on the particular use of stories that we’re going to build for the next couple of sprints.

In terms of software development, I’m so glad that this does not mean my physical workstation. It’s kind of a mess, I got a bowl full of grapevines that I just finished eating. I have a flashlight, I have my wallet, glasses, I don’t even use, all sorts of stuff on my desk. I just have real easy access to my keyboard and my mouse, that’s all I need. 

So I’m glad that you know, I need to do something about this but this also ensures us as software developer, your code style is in place, you know, you and your team has come up with particular rules that exist in the code and everyone and everyone follows them. You have your formatters and your linters. You have, you know, a particular pre-commit hook that exist all these things. Making sure that everything is maintained well so that when defects do come up, you can identify them and address them very quickly. 

[0:06:08.1] Seiketsu, which is standardize, revisit the first three of the five S’s on a frequent basis and confirm the conditions of the gamba using standard procedure. Now, I did a quick Google on gamba and I think that translates to the real place, like your workspace and not just like, theorizing those first three S’s and then ensuring that those things are happening, right?

You want to make sure that the things that you’re sorting, setting in order and shining, are things that you actually have to do in order to get the work done. In your agile team, I think the delivery plan for the work coming down the pipe is probably one way you want to make sure that that’s standardized. Yeah, and making sure that everything is good for the software team to come and pick up and for a software engineering team, I think this is like, ensuring that the standards are in place and everyone agrees to them. 

I think that this, you know, we – I’ve worked on teams that have like, architecture discussions where we talk about a particular part of the code base that we want to refactor or pull out and insert a new design pattern for future features that may come down the line. All these different conversations ensuring that the first three S’s are paying off and doing the work that we need to do, standardize just gives the avenue for those conversations. 

[0:07:28.4] And lastly, we have Shitsuke, which is sustain. Keep the rules to maintain the standard and continue to improve every day. For your Agile team, I imagine this is keeping ceremonies intact that consist of communication and mutual respect for all team members. You have your daily standup, your refinements IPM and retros and what have you and you know, trying to figure out the kinks in your particular team and addressing them and ironing them out, so that you all can continue to move forward and continue delivering value to your team. 

And for a software development team, I would imagine sustaining is, you know, having that continued integration, delivery, your team is continuously thinking about improvements and all those processes are in place. You have, you know, ensuring that all the test are running before you deploy, to give confidence to the team and you have a pre-commit hook that checks for you know, any loose ends that needs to be tied up, those kinds of things. That’s very, very important to ensure that you sustain this particular process, so that it just becomes easy for you to develop these features and get them out to the user as early as possible. 

[0:08:39.9] If you want to work within individuals who are excited to keep these five S’s online, definitely check out stridenyc.com/contact, hit that up. You know you can work with me one day and we can definitely chat it up with the five S’s and we can ensure that we’re delivering good software for the customer.

I’d like to know if the examples that I use within the five S’s resonated with you and feel free to let me know if I said those Japanese words correctly or incorrectly. I really want to learn how to speak Japanese was something that I always thought was really cool. I enjoy watching anime. If you have recommendations, feel free to hit me up as well. I’d love to catch up whenever I can. And I hope that this Five S podcast episode was useful for you.

[END OF DISCUSSION]

[0:09:27.3] MN: Follow us now on Twitter @radiofreerabbit so we can keep the conversation going. Like what you hear? Give us a five-star review and help developers just like you find their way into The Rabbit Hole and never miss an episode, subscribe now however you listen to your favorite podcast. On behalf of our producer extraordinaire, William Jeffries, and my amazing co-host, Dave Anderson, and me, your host, Michael Nunez, thanks for listening to The Rabbit Hole.

[END]

Links and Resources:

The Rabbit Hole on Twitter

5S on Wikipedia

Jira 

PivotalTracker