Keys to Redesigning a Legacy System
22 Apr 2021
[
design
]
Key Ingredients
- Have a definite measure of success
- Team composition: Historical system knowledge, Design Architectural Experience, Creativity
- Business / Market Buy In
Key to Requirements
- Analyze the data flows through the current system - peak loads, long latencies, input composition
- Biggest volumes of transactions probably simplest to replace, low hanging fruit
Key to Design
- Produce a design first and plug implementation technologies in later
- Underlying technology replacement is usually not the answer
- Avoid mimicking legacy design with new tehcnologies i.e. a port
Key to Charting Progress
- Project must be staged via deliverables/milestones/tasks
- Deliverable - measurable and tangible outcome of the project
- Milestones identify when one or multiple groups of activities have been completed
- Tasks are small packets of work to achieve the above - Attainable, Observable, Chartable
- Attainable/Realistic with Observable objects
- Keep short task timeframes
Key to Moving Forwards
- Iterative/Adaptive improvements
- Quality is the result of consistent incremental improvement
- Struggle to adhere to design goals and vision, Remember real world is messy
- If current design has a terminal mismatch with reality, be flexible, evolve the design
Key to Delivering Product
- Iteration is the key
- Identifying and shortening the Feedback loop(s) is critical to successful on time delivery.
Key to Understanding/Confidence System Health
- Meaningful metrics, watermark alarms
- Four golden metrics: Latency, Traffic / Throughput, Saturation, Errors
Key to a Successful Rollout
- Move user by functionality not by entity
- Pull large multi-method clients over sooner; see larger benefits realized
Reference