Relevance of 5S and Agile in Software Engineering
Improving software development practices every day.
Disclaimer: Views and opinions expressed in this article are those of the authors and do not necessarily reflect the official policy or position of my current or previous employers.
5S is a framework that emphasizes the use of a specific mindset and tools to create efficiency and value. It involves observing, analyzing, collaborating, and searching for waste and the practice of removing waste.
Disclaimer: Observations and opinions stated in this article are my own, and do not reflect those of my employer or others. The practices described in this article are applied in everyday life and may undergo revisions as the situation demands.
Here is a quick recap on what each ‘S’ in “5S” means
- Sort: Keep only essential items to complete the tasks.
- Set in order: Ensure that all items are organized in a logical way to ease the completion of tasks.
- Shine: Proactive efforts to provide value.
- Standardize: Process and practices.
- Sustain: Monitor, audit, and optimize everything.
The 5S methodology can be adapted to provide higher value along with Scaled Agile Framework with the ability to innovate in any phase of “S”. Below diagram illustrates a few examples
Let’s say that a team’s focus is centered around adding business value, as time progresses, the feature team gets involved in every aspect of the “5S” framework.
General Practice
Customers, program managers, product owners, project managers, architects & engineers, and various other actors are included in the runway toward product success or failure.
Program managers play a crucial role in scouting out where the organization wants to be, what needs to be done to get there, and who is required in the journey. Program managers juggle various organization priorities, processes, and products to sort and set in order the next steps.
On the parallel track, product owners work with customers (internal and external) and scout for important features to uplift the business and thus increase productivity.
Once a product vision is obtained, and the team priorities are laid out; product owners, project managers, and program managers work together to sort and set in order the backlog of items that teams should focus on and deliver.
The stakeholders such as customers, program managers, product managers, and project managers must actively “Sort” and “Set things in order”.
The software development teams elevate themselves to deliver on the set business goals where, a few of the teams/members must be scouting for challenges, prototyping solutions, and creating a direction for the rest of the team to embrace. These scouts are actively forward-thinking about everything the customer needs, thus helping the team/organization “Shine”.
In tandem, a few of the team members must be able to take those shiny prototypes and polish them up! During the process, they may decide to improve design limitations, sets up clear interfaces and APIs to “Standardize” mechanisms that bring product capabilities, and gets it ready for customer/end-user ramp-up.
Meanwhile, a few of the team members must be involved in making things robust and scalable, and actively be customer advocate who helps uplift the capabilities to “Sustain” the growing business needs.
There are no hard rules on who has a final say, it is up to the team to find out how they can apply “5S’ in any aspects of the roles they are involved in. Innovate anywhere, standardize and improve continuously!
Scenarios
The scenarios outlined here are for illustrating the relevance of “5S” in software development. Having all stakeholders think alike about the practices and collectively participate, reflect and refine things is often crucial for the success or failure of the team and organization. Championing these approaches is only the beginning, keeping the momentum and constantly improving efficiencies can be demanding on the teams. It is a blessing to be in environments where change is embraced as an opportunity to contribute towards greatness.
Sort
- Program managers working with various stakeholders to understand priorities
- Product owners working on task backlogs to prioritize what’s next
- Architects laying the roadmap for what to build next
- Engineers clean up old code and tests that don’t matter, remove stale build artifacts, recycle unused deployments, and discover limitations.
Set in order
- Program managers have aligned stakeholders and have set priorities
- Product owners know what is coming next and can communicate about it
- Architects have a clear runway that they can collaborate on
- Engineers can refactor design, implementation, and set things to support upcoming business needs
Shine
- Program managers can identify risk and de-risk
- Product owners can evaluate what is built and reprioritize as necessary
- Architects can build prototypes and showcase alignment and directions toward business needs
- Engineers ramp up improving limitations and creates direction on where the implementation must be for the best results
Everyone in this phase of the operation has adopted Innovation as a core principle.
Standardize
- Program managers identify limitations in processes, create best practices
- Product owners identify challenges and shape up best practices for high-quality deliverables
- Architects identify inefficiencies in code coverage, tests, reviews, and setup of standard practices
- Engineers identify tools and technology gaps that hamper productivity and sets up standard practices
Everyone in this phase of operation is an advocate of the DRY (Don’t Repeat Yourself) principle.
Sustain
- Program managers monitor best practices, sort and set things in order, and make improvements as necessary
- The product owner monitors backlogs, throws away what is unnecessary, and keeps focus on what is required next
- Architects evaluate decisions made and improve the runway based on various business and people parameters
- Engineers evaluate practices, coding guidelines, tools, and technologies and continuously refactor them for optimal operations
Everyone in this phase of operation advocates for Customer Success.
Summary
Creating a conducive environment and culture for success is important. Treating failures as lessons learned and using those reflections to improve things must be an important part of the culture one creates. “5S” methods and agile practices take us a step closer to having predictable situations for business focus and success.