AGILITY HACKING
- …
AGILITY HACKING
- …
Phase 3: Technology refactoring for speed
Engineering excellence
Goals
What are we trying to achieve?
Utilise the best technologies to increase speed & maintainability
Refactor the underlying architecture to take advantage of modern technologies. These reduce runtime costs, improve speed of development and reduce the writing of non-differentiating code.
Unlock continuous delivery
Complete the automation journey undertaken in previous phase to enable the continuous delivery of code changes. This increases the speed of idea-to-production, reduces the overhead of each incremental change, and ensures quality.
Method
How do we achieve these goals?
Shift to cloud-native architecture and technology
Only write business differentiating code
A shift to cloud-native architecture and technology not only increases speed via environment availability, it reduces the coding overhead, allowing for focus on true business differentiating changes. Raising the level of abstraction that you have to manage reduces costs and the roles needed in your organisation.
Architecture ensures clear domain separation
Independently deployable artefacts
Use modern design approaches to ensure decoupled, independently deployable components and form teams around them. Ensure that each team has everything needed to build, improve and maintain their chunk of the world.
Complete automation to unlock continuous delivery
Idea to production in 1 day
Complete the move to Continuous Delivery by replacing bureaucracy with automation. Imagine what your company could think up if they could take an idea into production the very same day?
Prototypical changes
What are examples of things that might be undertaken or changed in this phase?
For example:
- Refactoring to microservices / containers / serverless / event-based approaches
- Engineering guardrails in place
- Ability to go from idea to production in 1 day
- Dedicated teams around encapsulated technology
- Independently deployable artefacts
- No downtime deployments
- Trunk-based development
- Fully automated, on-demand environments
Indicative gains/benefits
What benefits will be demonstrable in this phase?
As this phase progresses, your business and your customers will notice that they don't notice software updates. They are a regular, daily occurrence. They happen without any downtime. You will need to make a special effort to inform them of significant changes worthy of their attention, and the notifications migrate from a downtime notification to an update in the user manual, if one's needed.
Although this phase can be long and complex, the ability to transition to only writing code that's business differentiating is a huge win for the speed of delivery and the adaptability (imagine being able to rewrite a service in days if it's not fit for purpose).
The move to Continuous Delivery means that development can happen knowing that a safety net will catch any unintended consequences of the change and reject it. This reduces the cognitive load and stress levels of all involved.At this point the amount of kit the company owns hopefully decreases. With that the time, costs and staff to maintain and patch them diminishes significantly. A move to a cloud-based OpEx cost structure follows.
Example indicators from this phase:
- The IT department starts to fill up with deeply expert technologists - either home-grown or hires
- No on-site infrastructure
- Fewer operations staff
- More dashboards available showing the health of systems and your business
agilityhacking.com 2021