One of the most impactful decisions that most of us will make is whether to replace a creaking software system with something new, or whether to iteratively improve the current system. It depends. Laura Nolan explores the technical, organizational, cultural, and psychological factors that matter when we choose between full rewrites or incremental change. video (15m) ![]()
Laura reviews four case studies and offers a thoughtful approach for making the hard decision with respect for the context in which you find yourself.
cases
Photon—successful migration from single-homed data pipeline to multi-homed fault tolerant architecture
Sisyphus—release workflow management system which still has not been replaced nor migrated
HAProxy to Envoy—successful replacement of one OSS proxy with another
gRPC Streaming in Consul—successful modernization-in-place
howto
Framework for making difficult choices from bioethics.
Ask a Question—should we shutdown, migrate, modernize, or do nothing?
Gather Relevant Facts and Perspectives—identify problems, identify alternatives, & gap analysis; assess team capacity and organizational capacity for the change; assess who will be impacted & whether they can accommodate the intended schedule.
Articulate Your Principles—may depend on where your business is in its lifecycle (startups have different answers than enterprises), the workload should be sustainable (lets not burnout our staff), downstream customers should not be impacted, limit the technical churn and risk. Some principles conflict! Choose the tradeoffs that are appropriate for this decision.
Consider How Problems May Be Mitigated—prototyping, add'l staffing, automate some toil from the system, or careful planning to reduce risks.
Make The Decision—document the intentions and alternatives considered and the rationale for the tradeoffs and mitigations chosen; can help revisit the decision when facts or principles change.
.
Make Migration Mundane—Eventually all software shops have to get good at migrations. But they're very hard to get good at. We don't have good practices. — Lorin Hochstein