For the past few years, I am working with a banking client to build a transformative Data Platform. It was very clear from the beginning that this platform will take time to build and the new Data Platform and the Legacy Systems will co-exist. As we reach a logical milestone, I look back at the journey till now. As I abstract out the experience, there are two distinct paradigms that emerge. One was a deliberate choice and one an interesting revelation.
Inspired by Martin Fowler’s Strangler Approach: StranglerFigApplication, we sought out to identify strands of Business Processes that we will onboard tot his platform one by one. Eventually, transforming the entire legacy system.
Paradigm 1: Hour Glass Approach for Prioritization
I have discussed this in a previous blog post: Hour-Glass Model for Platform MVP
Paradigm 2: Inverse Shu Ha Ri
Shu Ha Ri is an interesting concept a co-worker (and a friend) introduced to me over a dinner conversation in Shibuya. We had just delivered a Realtime Code Patching technology for NetBSD to a large customer. This was my first product as a tech leader. I was in awe of the senior executive on the customer’s side and how he was transforming the organization. During the conversation with my friend, I wondered being such a senior executive, why didn’t the customer just order the whole organization to move to new systems. My friend explained to me how transformation can not be brought about by force, but step by step. He talked about Shu Ha Ri.
Later I found a blog by Martin Fowler on ShuHaRi. It helped me understand how this can be applied to software development.
Shu-Ha-Ri or Inside-Out
This approach recommends a Learn – Digress – Transform approach.
Adapting this principle to transformation, the transformation teams become part of the legacy system. Then the team identifies the first ‘strand’: a business process that connects the client, the user interface they use, the backend systems. This ‘strand’ is then transformed and the old strand strangulated. Slowly, strand by strand, the whole legacy system is transformed.
(Note: More in my blog Shuhari – Learn – Digress – Transcend.)
This approach works when:
- the org is ready for change, so there won’t be deep resistance to change, and
- there are systems that can be isolated and transformed.
Inverse Shu-Ha-Ri or Outside-In
This approach, is a way, inverses the Learn – Digress – Transform approach. This is where a transformative strand is built outside the system, merged into the legacy to replace an existing strand and strand by strand, finally transforming the entire system.
In this approach, the transformation teams start outside the system rather than be part of the system. In fact, rather be part of the system (Shu), the teams stay at a distance from the legacy. The team identifies the first ‘strand’: a business process that connects the client, the user interface they use, the backend systems.
This strand is developed as independently and as isolated as possible. This allows the development to not be bogged down by legacy systems, legacy designs, out of date controls and policies that do not make sense in the new world. This also acts as a reference system for future strands and the legacy teams. This gives the new system the space to do develop differently. A legacy-bogged-down-system runs the risk of creating something that is just an incremental design, rather than a transformative design.
Once completed, this ‘strand’ is then merged to strangulate the existing legacy system. This is when the complexity of legacy systems, of the organizations and various controls will hit the new strand. So merge is not just a technical merge but also a systemic merge. Transformative teams should expect some extra work to comply with organization controls. However, these are now being applied to a fully functional system that can not be choked by the legacy system.
Slowly, strand by strand, the whole legacy system is transformed.
This approach works when:
- the org is not ready for change, so there is deep resistance to change, and
- there are powerful power centers that would suck the oxygen out of any transformation by using systemic complexities, matrix reporting, and control functions (Legal, Finance, Regulations, etc).
Apple is possibly the most famous example where it did an Inverse Shu-Ha-Ri with Apple II to create Macintosh. The org was so steeped in Apple II culture, that it would have sucked Macintosh initiative dry. This was repeated again when the iMac was created.