Please note that this blog is archived and outdated. For the most current information click here!
Introducing Jidoka
Jidoka
Automation with a human touch.
Jidoka is a software development methodology that aims to increase the automation and quality of a software project through the use of
models and pipelines.
By following Jidoka, organisations can continuously modernise their software systems at scale, while avoiding
many of the problems associated with legacy systems.
Our hypothesis is that Jidoka is well-suited for large scale modernisation projects where the benefits of automation are most acutely felt.
Some of these benefits include:
- Consistent architecture with low technical debt
- High test coverage including UAT's
- Lower organisational change with coarse grained milestones
- Decreased costs over the entire project lifecycle
- Up-to-date user and developer documentation
- Decreased knowledge loss and turnover
- Increased cross-team collaboration
- Healthier team culture and momentum
- Increasing ROI for modernisation portfolios
History
The software development industry has drawn significant inspiration from lean manufacturing principles, resulting in the emergence of a
range of methodologies such as Agile, Scrum, Kanban, and DevOps. Understanding this lineage can greatly enhance one's appreciation of the
evolution of software development practices. While Jidoka shares many principles with Agile, Scrum, Kanban, and DevOps, it brings a unique
approach that emphasises automation with a human touch, making it a methodology that is both efficient and people-focused.
Breaking down Jidoka
Pronounced as "jee-doh-kah"
Jidoka is a software development methodology that aims to increase the automation and quality of a software project through the use of
models and pipelines. - Eban Escott, PhD
Why Jidoka?
Reflecting on our journey and the lessons we've learnt, it has become evident that our previous 'Way of Working' was insufficient and in
need of improvement. Enter Jidoka- a methodology and process that offers a plethora of benefits. To delve into
the history of Jidoka and
uncover its advantages, read on.
Comparing Jidoka to other methodologies
When assessing the merits of Jidoka, it's worth contrasting it with other problem-solving approaches specifically in the context of
modernisation efforts. For instance, Proof of Concepts (PoCs) have proven to be ineffective at scaling and don't always account for
non-functional requirements.
On the other hand, Minimal Viable Products (MVPs) enable a "build, measure and learn" approach that is invaluable when the project goals are
still undefined. However, MVPs may not be as effective for modernisation projects. Modernisation projects involve migrating existing
systems, which can have complex functionalities or requirements that are often beyond the scope of MVPs. Furthermore, MVPs may not
adequately address non-functional requirements that are essential for the success of the modernisation effort.
The Shortest Path to Value (SPV) strategy leverages the strangler fig pattern to streamline modernisation efforts. This approach, while
viable, often adds complexity and risk as it involves gradually replacing the old system with a new one, piece by piece. This can often be
time-consuming and requires careful consideration.
In terms of software development methodologies, while Scrum has its strengths, there are some aspects that we need to steer clear of such as
large releases and even larger estimates. Kanban is a great approach and often useful, however it can sometimes devolve into a free-for-all.
This strategy needs to be right for the product team and doesn't always work within a fixed budget approach. And of course, we all love
DevOps.
Using Jidoka to tackle software projects
How we tackle milestones with Jidoka
The milestones in Jidoka are multi-faceted, with each stage comprising a multitude of objectives to be accomplished. Each milestone is
associated with a specific target range, and our focus is on achieving the nearest one. Unlike sprints, milestones do not have a fixed
duration, and instead, a kanban-style continuous flow of issues is tackled until the desired outcome is achieved.
- Each stage can have many milestones.
- Milestones have goals with date ranges and we aim for the closest date.
- Milestones are not fixed in length like sprints.
- A kanban-style continuous flow of issues is worked on throughout the milestone until the goal is reached.
- Ceremonies, meetings, checklists, definitions, etc are all performed according to the plan.
- The depth of details in an issue is proportional to the issue's risk.
How we estimate with Jidoka
There are many ways to estimate a software project and
we have experimented with a bunch. What we have learned is that it is very time-consuming and can create over-estimations when using issues
to estimate as they are too fine-grained. On the other hand, we don't want to use #NoEstimates as it has too much of a negative impact on
expectation management. With this in mind, the high-level, balanced approach to estimations is that:
- Projects are estimated in a tender and are large enough to ensure quality.
- A milestone has a goal, and the team uses MoSCoW to priortise requirements.
- Estimations are performed at the milestone level and not the issue-level.
- The team doesn't stop at the must-haves and continuously works Kanban-style on the backlog with the available time.
- A kanban-style continuous flow of issues is worked on throughout the milestone until the goal is reached.
- Nothing builds trust faster than finishing earlier and delighting a customer.
Jidoka within WorkingMouse
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, we recognise the importance of human input and ensure that our development practices are anchored in
collaboration, communication, and a deep understanding of the end-users requirements. In essence, Jidoka is a holistic approach to software
development that optimises the balance between efficiency and effectiveness.