Most software systems (such as banking frameworks, telecom platforms, and government systems) are very complex and are even open-source projects. Also, systems like CRM applications are complicated enough to run functionally, debug, and add new features. Most of the time, it is important to set an environment up very similar to production in order to detect problems during the development phase. A CRM system is integrated with many systems as it needs to provision via property files, DB configuration, and service registry.
As a result, when a new person joins the team, he or she needs to spend at least a week to set up a development workplace, which is true even for experienced developers. Moreover, if a problem is encountered during this setup, the entire process becomes a headache. The workplace of an experienced team member sometimes could also become unusable; it takes in general three to four days to get it up and running again. New features are frequently added, which may cause developers to be reluctant to update the system because they think their environment might become inconsistent. It is really a nightmare.
In today’s world, software teams need to work as agile because of the competitive marketplace. Therefore, workplaces should be very clean and lean to be more productive. Lean management that uses production lines for improvement in the industry is a very trendy approach for software companies, as well.
Wikipedia gives the following definition of the 5S Lean Methodology:
5S 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 work space 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 dialogue about standardization, which builds understanding among employees of how they should do the work.
5S was developed in Japan and was identified as one of the techniques that enabled Just in Time manufacturing. Two major frameworks for understanding and applying 5S to business environments have arisen, one proposed by Osada, the other by Hirano. Hirano provided a structure to improve programs with a series of identifiable steps, each building on its predecessor.
The five steps, according to Kaizen.com, are as follows:
Sort (seiri). Sort out and separate that which is needed & not needed in the area.
Set in order (Straighten, seiton). 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.
Shine (seiso). Clean the workplace and equipment on a regular basis in order to maintain standards and identify defects.
Standardize (seiketsu). Revisit the first three of the 5S on a frequent basis and confirm the condition of the Gemba using standard procedures.
Sustain (shitsuke). Keep to the rules to maintain the standard and continue to improve every day.
Figure 1. 5S steps (source).
Let's apply the 5S methodology to a lean CRM development workplace.
There are many modules in CRM software, many different tools in the workplace, and many service calls in CRM systems. When developing, mark which tools are needed (such as Eclipse, WebLogic, Ant, JDK, etc.), which modules can be used pre-compiled without a recompilation, and which configuration files and provisioning steps are needed to get the system up and running. Eliminate unneeded tools and modules.
Set in Order (Seiton)
Make an installer or workplace image (for example, using a Docker container) to run basic functionalities in order to run a CRM system like logging in and navigating on menus. Define input parameters that can be different for each team member and prepare configuration files and provisioning on DB systems to set up a CRM system quickly, easily, and without errors. Define startup scripts to start systems without error.
Make it easy to update files from the source system to get new changes. As a result, systems will be up-to-date and clean.
Define a standard methodology to add a new module and update an existing module in a CRM system.
It is important to make the system sustainable so that team members can use it easily and do not have any problems. Get feedback and find bugs to make the workplace lean and owned by all team members to improve productivity. As a result, team members will be happy to use the system and concentrate on business instead of solving environmental problems.
5S methodology can also be applied to many cases in software development such as testing and deployment.