High pace of change
Digital business has to react quickly. Users and clients expect the same services they would get from Google, Amazon, Apple, Netflix or Spotify. Data has to be available immediately. Everything needs to be omnichannel and online. If a company is struggling to provide these services, change is needed. Businesses not only have to keep pace with their closest market competitors but also with agile newcomers. Start-ups and Fintechs hold a distinct advantage over more established companies. They build from scratch, use modern technology, and generally have far less to lose. This raises the stakes for an organisation that wants to change but needs to stay loyal to its client-base and minimise reputation risk.
Quick! Let’s develop!
Now here’s the catch. Of course the pressure to speed up development is understandable. But in the rush to adapt to the ever-increasing pace of change, companies often make some critical errors: “OK, let’s get agile with DevOps”, “Let’s just switch to microservices” or even “Let’s move everything to the cloud and get DevOps and microservices”. The temptation to “rip and replace” might seem attractive. But the risks and costs involved can deliver a fatal blow to business.
Words of wisdom
The following insights from those-in-the-know should be heeded by any team thinking of putting all their eggs in one basket:
- Melvin Conway: “Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.” link
- Martin Fowler: “Don’t even consider microservices unless you have a system that’s too complex to manage as a monolith. The majority of software systems should be built as a single monolithic application. Do pay attention to good modularity within that monolith, but don’t try to separate it into separate services.” link
- Simon Brown: “If you can’t build a well-structured monolith, what makes you think microservices is the answer?” link
So what do these words of wisdom mean for businesses looking to modernise?
- Well, according to Conway’s Law, unless the structure and culture of a company change, no real agile transformation is possible. But overhauling a whole culture and structure isn’t done overnight. The takeaway for any solution architect here is that change should be implemented with respect to the product architecture. For enterprises lugging around a monolith system, “evolutionary” is better than “revolutionary”.
- What Fowler astutely notes is that switching to microservices may not be all it’s cracked up to be and in fact comes with its own set of problems. Now this truth might not be popular but it is realistic. It all boils down to how complex your existing system is and recognising that a complete off-the-shelf switch to microservices may do more harm than good.
- The hometruth Simon Brown gives us is this: Despite being popular and tempting to use, microservices need a certain level of software engineering excellence and maturity to really work. Unfortunately, many organisations take the “from-zero-to-hero” tactic, which often seriously backfires. Some things just need time and that is something no one in IT management should ignore.
Think incremental, not exponential
What organisations often fail to realise is that a significant speed-up can be achieved even with the smallest of enhancements. Let’s look at a few:
- Apply software engineering best practices with a proper requirements analysis. Introduce change management, release management, DoD checklists, and quality assurance to iron out the creases.
- Exploit your existing skillset. Each development team is composed of different roles. Programmers, analysts, architects and testers – all with versatile technology and tooling skills. The trick is to get everyone working in unison.
- Automate critical development parts. Building, assembling, testing and deploying. Enable more frequent prototyping and upgrade existing code. All of the above will help.
Slow and steady wins the race
Before you think otherwise, any approach that incorporates agile, DevOps or microservices is welcome. These initiatives are all built on industry-standard best practices. However, the critical insight for an enterprise on the cusp of change is this: Don’t do everything at once. Continuous, step-by-step changes ensure your teams don’t get overwhelmed. By focusing on one problem at a time using considered agile enhancements, you’re taking the smart approach to modernisation and reducing the cost and risk to business.
— Our services —
Profinit Modernisation Framework
We apply a proven framework of best practices to modernise your legacy system enterprise-wide.Explore
Legacy Systems Assesment
We identify the friction points to help you take the informed approach to legacy systems modernisation.Explore
Legacy Systems Takeover
Our expert software engineers will oversee a smooth transition and successful A-Z takeover of your legacy applications.Explore