Many organisations rely on strategic systems that are becoming harder and harder to maintain. The company is unhappy because features are taking longer to be built and they cannot react fast enough to market demands. Developers are unhappy because the code is messy and negatively affects their productivity. Testers are unhappy because of the volume of work and the impossible task of guaranteeing the quality of the software. Clients are becoming disenchanted because of the lack of quality and low frequency of updates. Strategic software cannot become a burden to the organisation – they need to remain strategic and continuously enable business agility. In this talk, Sandro will describe a strategic approach to software modernisation that allows business and technology to work together towards a common goal.
2. Software Modernisation: a strategic approach
What is Software modernisation?
Software modernisation is the continuous
process of improving strategic systems in
order to increase business agility.
3. Why do we fail to
make a case for it?
Software Modernisation: a strategic approach
5. Software Modernisation: a strategic approach
Sustainable Change Innovation Leveraging Technology
Business Alignment People & Culture Risk Management
Common drivers for Software Modernisation
6. Business drivers for software modernisation
Driver 1:
Sustainable Change
How:
Stable and repeatable release processes; Continuous
Delivery; Automated delivery pipelines; Test
automation at multiple levels; Test-Driven
Development; Clean Code; Modular architecture; XP
practices; DevOps
Business can move only as fast as
we can deliver quality software
Sustainable
Change
Innovation
Leveraging
Technology
Business Alignment People & Culture Risk Management
Business goals:
● Reduce lead time
● Reduce cost of change
● Frequent and safer releases to production
● Reduce technical debt
● Reduce defect rate
7. Business drivers for software modernisation
Driver 2:
Innovation
How:
Contained experiments; Design thinking; Lean
startup; User research; Cloud enablement; Big data;
A/B testing; Analytics; Feature flags
Business goals:
● Stay competitive
● Easy to experiment
● Data-driven decisions
● Fast feedback
Sustainable Change Innovation Leveraging
Technology
Business Alignment People & Culture Risk Management
Continuous innovation is only possible when
supported by well-designed and flexible software
8. Business drivers for software modernisation
Driver 3:
Leveraging Technology
How:
Cloud native; Serverless architecture; 3rd party
integration; Containerisation; Elastic scaling; Security;
Automation; Infrastructure-as-code; Managed
databases; Modern frameworks; Modular architecture
Business goals:
● Effectiveness and productivity
● Competitive advantage
● Cost reduction
● Technology refresh
● Mitigation against end-of-life
Sustainable Change Innovation
Leveraging
Technology
Business Alignment People & Culture Risk Management
Leveraging technology should be straightforward
and not a scary prospect
9. Business drivers for software modernisation
Driver 4:
Business Alignment
How:
Eliminate silos; Aligning teams to strategic business
goals; Align architecture to business areas;
Ubiquitous language; Domain Driven Design
Business goals:
● Technology led business evolution
● Faster quality feedback
● Closer collaboration
● Embrace change
Sustainable Change Innovation
Leveraging
Technology
Business
Alignment
People & Culture Risk Management
Achieving business goals is much easier when
technology and business are aligned
10. Business drivers for software modernisation
Driver 5:
People & Culture
How:
Attractive technologies; Training; Coaching and
mentoring; Internal communities of practice;
Involvement in external communities
Business goals:
● Talent retention and attraction
● Staff development
● Culture of learning
● Leadership at all levels
● Team autonomy
Sustainable Change Innovation
Leveraging
Technology
Business Alignment
People &
Culture
Risk Management
A healthy and modern technology ecosystem is
key to develop, attract, and retain talent
11. Business drivers for software modernisation
Driver 6:
Risk Management
How:
Isolation and tighter control of critical areas of the
system; Strategic approach to regulatory compliance,
security, monitoring, auditing and logging;
Operational effectiveness and cost control; Site
Reliability Engineering (SRE)
Business goals:
● Real-time system intelligence
● System observability
● Security & Compliance
● Operational excellence
● Reduce mean time to recover
Sustainable Change Innovation
Leveraging
Technology
Business Alignment People & Culture
Risk
Management
Risk management, operational excellence,
security, and compliance must be done by design,
not as an afterthought
12. Software Modernisation: a strategic approach
Drivers for Software Modernisation Summary
Sustainable Change Innovation Leveraging Technology
Business Alignment People & Culture Risk Management
14. Software Modernisation: a strategic approach
Common impediments for Software Modernisation
Lack of time Lack of money Lack of skills
Overwhelmed by
problems
Don’t know where
to start
Fear of increasing
risk
Burned by failed
attempts
Disruption of
business as usual
Cannot convince
the business
Lack of capacity
Lack of
technical vision
16. Software Modernisation: a strategic approach
Software Modernisation Principles
Big vision,
small increments
Minimal business
disruption
Excellence within
pragmatic solutions
Law of
diminishing returns
If ain’t broke,
don’t fix it
Value-driven
increments
20. Software Modernisation: business alignment
Strategic value
● Cost reduction
● Preparing for future changes
● Compliance with regulations
● Risk management
● Support business demand
Inefficiencies
● Long release cycle
● Bad performance
● Difficult to test and maintain
● Multi-team hotspot
● High number of bugs
● Legacy technology
Focusing the Software Modernisation initiative
Selecting areas by:
Experimentation
● Proof of Concept
● Exemplar project
● Prototype
21. Software Modernisation: business alignment
Main features
Shared understanding of the existing solution
Pain points
Desired improvements Path to production (VSM)
23. Goal
Actor 1
Impact 1
Deliverable 1
Deliverable 2
Impact 2 Deliverable 3
Actor 2
Impact 3
Deliverable 4
Deliverable 5
Impact 4
Deliverable 6
Deliverable 7
Business vision and direction Milestone goals and strategy Prioritisation and distribution
Portfolio management Impact mapping Backlog management
Software Modernisation: business alignment
Business vision, strategy and priorities
24. Software Modernisation: business alignment
Business constraints
● External deadlines
● Internal deadlines
● Money
● SLAs
● Regulations
● Certifications
● Lack of skills
● Company structure
● ...
It’s important to differentiate immovable
constraints from made-up constraints.
25. Software Modernisation: business alignment
Business OKRs, KPIs
and Metrics
● Cost reduction
● Sales increase
● Market share
● Customer acquisition
● Customer retention
● Work efficiency
● SLAs
● Regulation compliance
● Reduce lead time
26. Credit: Forsgren PhD, Nicole. Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
*It was found that low performers were lower on average (at a statistically significant level), but had the same median as the medium performers
Software Modernisation: business alignment
Metrics for successful software delivery organisations
High Performers Medium Performers Low Performers
Deployment Frequency On-demand
(multiple deploys per day)
Between once per week
and once per month
Between once per week
and once per month*
Lead Time Less than one hour
Between one week and
one month
Up to Many Months
Mean Time To Restore Less than one hour Less than one day
Between one day and
one week
Change Failure Rate 0-15% 0-15% 31-45%
28. Detailed design of
prioritised areas
Main business flows and
respective components
Overall architecture
Software Modernisation: technical alignment
Understanding the existing technical solution
29. Software Modernisation: technical alignment
Shared understanding of the existing solution
Pain points Desired improvements
Technical constraints Modernisation risks
30. Software Modernisation: technical alignment
Technical constraints
● Multi-instance vs multi-tenant
● Operational maturity
● Data location
● Regulations
● SLAs
● Technology investment
● Volume of data or transactions
● On-premise installations
● Existing technical direction
● Skills set
● ...
32. Software Modernisation: technical vision
Creating a technical vision
● Architecture
● Technology
● Testing
● Deployment
● Production environment
● Modularisation
● Team ownership
● ...
Technical vision
is a direction, not a
plan. It is also a
moving target.
33. Software Modernisation: technical alignment
The technical vision should take into account:
Business vision
and strategy
Business
constraints
Business
priorities
Business goals
(OKRs,KPIs,Metrics)
Pain points
Desired
improvements
Technical
constraints
Inefficiencies
36. Software Modernisation: technical strategy
Prioritising technical strategy by:
Functional areas New features Business flows Usability
Technical
components
Code hotspots Operational aspects Technical debt
37. Software Modernisation: technical strategy
Modernisation techniques and architecture
Modular
monolith
Monolith to
microservices
Strangler fig
Frontend/backend
separation
UI-based flow
orchestration
Operational
requirements
segregation
Data ownership
segregation
Code
refactoring
38. Incremental approach to modularisation
Vision
Modularising key functional areas enables continuous delivery of value
By isolating key functional areas of the system, we can scale to meet increasing
demand and release features to support new opportunities
Entangled system Improvements in key areas Isolation of key areas Stable and independent areas
Current Situation
39. Software Modernisation: technical strategy
Key advantages of modularisation
Reduced
cognitive load
Easy to build fast and
reliable automated tests
Enable continuous
delivery
Strategic and gradual
improvements
Easy parallelisation of work
across teams
Localised and
safer changes
40. Software Modernisation: technical strategy
Architectural modules
A well-designed system is composed by loose-coupled and cohesive modules.
● Group of Services
● Services
● Libraries
● Components
● Packages/namespaces
42. Software Modernisation: implementation strategy
Implementation
strategies
● Dedicated team
● Specialised team
● Unified backlog prioritised by value
● Embedded specialists
● 20% improvements
● Dedicated individuals per iteration
● Time-boxed improvements
43. Software Modernisation: implementation strategy
Modernisation
roadmap
● Incremental approach
● Roadmap and milestones
● Iterative development
● Run as a project
● Continuous delivery
44. Software Modernisation: a strategic approach
Summary: a strategic approach to Software Modernisation
1. Business Alignment 2. Technical Alignment
3. Technical
Vision
4. Technical Strategy
5. Implementation
Strategy