GE 11: Early signs that your product may need a radical refresh.
Agile development is all about continuous improvement and iterative delivery. But sooner or later every product benefits from a more…
Agile development is all about continuous improvement and iterative delivery. But sooner or later every product benefits from a more radical update- perhaps even a ground up re-write. The decision is often delayed because the business feels it just cannot justify or invest in a re-write.
The temptation is to wait just one more year or try to incrementally improve over a longer period of time. But this can mean death by a thousand cuts — a gradual deterioration in performance, user experience and agility that will eventually result in a loss of market position and competitiveness.
In this article, we take a look at some of the signs that your product may be due a radical refresh.
Reduction in Development Velocity and Agility
As the team gets more experienced and development processes improve, velocity should increase or at least become more predictable. But if you are finding velocity reducing and general anxiety about developing larger features increasing, it could mean that your product has become just too difficult to maintain and add features.
Even with the best intentions and introduction of coding standards, products evolve over time. The code base increases, multiple teams work on the same code and workarounds and bug fixes start to pollute original concepts and designs.
Sacrifices in User Experience
The user research has been done, beautiful designs have been drawn, prototyped and tested with customers. Everyone is happy and excited — apart from the development team. Because, they know they just can’t implement some of the more modern user interactions with the current front-end framework. The only solution is to make concessions and drop down to existing workflows and patterns heavily diluting the value from new features and development.
Difficulty in Recruiting and Retaining Talent
Most developers irrespective of experience want to work on a modern technology stack. Skills that can be easily transferred to other projects and opportunities and will allow the developer to really showcase the best of what they can offer. Junior developers will want to know there are a plethora of learning resources and sample projects to assist them whilst they get up to speed.
Developing on a legacy platform is a turn-off during recruitment conversations and even the most loyal existing developer will at least want to see a path towards modernisation.
All or nothing — the Monolith effect.
The product has evolved from a line of business application to a full Enterprise level product. However, the code base is a tightly coupled monolith that has to be managed, compiled and deployed in a single unit. This makes it impossible to release newer components on a faster cadence and requires ever increasing regression testing suites to manage risk during the release process.
Even just compiling the code takes minutes which add up to hours or even days of lost productivity a month. The complexity increases to a level that just can’t be held in a single brain at the same time.
Reduction in Quality
Gradually it will be impossible to maintain an acceptable level of quality. Unintended side effects will accompany all but the most trivial changes. And bugs will become harder to find, isolate and fix. The bug fix itself may result in further unintended consequences.
Sales Difficulties
Even fully hosted SaaS solutions are subject to technical due diligence and scrutiny. Experienced architects and CTOs will spot legacy products and be nervous about choosing a product that needs to serve them well for at least the next five years. If capabilities are deemed to be equal between two products, the technology team will always vote for the most modern architecture.
Deciding to radically refresh your product is a big decision, but will be an essential move if your product is to enjoy multiple decades of success.