Jidoka is the way
We’ve been implementing and integrating ‘Jidoka’, software methodology into our principles and projects. In case you haven’t heard of Jidoka before, here’s a quick recap…
Jidoka is a software methodology that aims to increase the automation and quality of a software project through the use of models and pipelines. At its core, Jidoka is a software development methodology that combines the power of automation with human touch. By leveraging technology to streamline processes, we free up our teams to focus on what they do best – creating high – quality software that meets the needs of our clients. At the same time, recognising the importance of human input and ensuring that our development practices are anchored in collaboration, communication, and a deep understanding of the end-user’s requirements. In essence, Jidoka is a holistic approach to software development that optimises the balance between efficiency and effectiveness.
Jidoka has 10 principles and we’ve been applying them into our Way of Working.
1. Empowered software teams augmented with AI and the best tools
- Empowering teams by utilising AI and the Codebots toolset to streamline operations, enhance productivity, and boost collaboration. The Codebots platform uses AI to automate software development tasks, allowing teams to build high-quality systems at scale. Additionally employing local cross-functional teams that are equipped to adapt to evolving needs, maintain coding standards, and deliver solutions.
2. Treat everything as a model and do useful things with them at scale
- We treat everything as a model by using a model-driven engineering approach for scalability. Codebots platform uses on meta-models to define structures, models to represent instances, and pipelines to automate development tasks. This approach allows the automation of software development processes at scale, enabling teams to efficiently code, maintain consistency, and manage large-scale modernisation projects.
3. Knowledge is understanding and mus tbe recorded in it's simplest form in a code repository
- We follow this by recording our knowledge through markdown files in a GitLab repository. Our code repository serves as a backup in the case of a system failure, developers can retrieve the latest version of code from the repository. Additionally, offering version control for tracking changes and provides a collaborative platform for teamwork.
4. Pipelines lead to quality, increased automation, and so many other benefits
- Our team use pipelines within the Codebots platform to enhance quality and increase automation in the software development process. The structured tasks within the pipelines ensure consistency and standardisation, leading to higher quality outcomes. The pipeline acts as automated workflows that guides the development lifecycle, contributing to increased efficiency and productivity.
5. Address high risk issues early and take on the most challenging first
- We address high-risk issues and prioritise the most challenging aspects first by using tech spikes. This allows the team to explore and address uncertainties early in the development process through experimenting and researching before proceeding to full-scale implementation. This mitigates potential risks and ensures a smoother development process.
6. The admin associated with something should be proportional to it's risk
- We conduct thorough risk assessments, following the idea that administrative efforts should be proportional to the level of risks. Therefore, higher the impact, the more time we take to ensure the risk is correctly mitigated ensuring effective risk management.
7. Ignore non-functional requirements at your peril
- This emphasises the important of considering non-functional requirements within a project as this is how the solutions needs to operate. This includes requirements such as who has access, where is it hosted, how many people and how frequently, what are the security and accessibility requirements. These aren’t features but make a wholistic solution and neglecting them can lead to risks in the development and performance.
8. Avoid changes to the organisations business processes while modernising, leave it to optimising later
- We execute the plan and play to our strengths by modernising the legacy system with as little change management as practical. Prioritising simplification during the modernisation process is important to minimise complexity and associated risks.
9. Plan to continuously modernise and keep momentum
- Once modernised we ensure the system is monitored and secure, incremental improvements are now possible as we have removed previous obstacles and are on the modernised technology stack. We adjust the software to the business processes continuously.
10. Find balance and only use these principles where practical
- If you haven't learnt the rules or mastered them, don’t break them. Only break them if you've mastered them.
WorkingMouse has been implementing Jidoka’s principles into our Way of working to transform and bring a holistic approach to software development, optimising the balance between efficiency and effectiveness through our Codebots toolset. At the same time, we understand the value of human input and make sure that our development approach is based upon collaboration, communication, and understanding the users’ requirements. For a further break down of Jidoka, read our blog on introducing jidoka.