Create a Forward-compatible API

Minimize Fixed Points Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: DevOps #6 – Compile Independently With a Forward-compatible Component to understand the specific problem we are solving and the solution approach. These recipes help you compile your component separately from the monolith in a way that minimizes design ripples across the component boundary. First are the four recipes that isolate code from API changes: Isolate client from API class […]

Gathering Scattered Code

This page describes four related strategies. The main article describes how to compose them to Gather a Scattered Component. The strategies on this page are: Remodeling Code, Not Refactoring: The difference between them and how to use them together. Overall Sequence: What execution order we will create, why, and the strategy we’ll use to get there. Where to Start: Why we gather before de-isolating, even though it seems like the cross-module scattering is more valuable to fix first. The Process: […]

Gather a Scattered Component

Find, Gather, Merge, and De-Isolate Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: DevOps #5 – Gather a Scattered Component to understand the specific problem we are solving and the solution approach. This recipe helps you collect the scattered code that belongs in your single-purpose component so that you can edit independently from other teams. Find Gather Merge – Pick Your Approach Merge – Eliminate Sequence Concerns Prepare by Inlining […]

Extract Your Code So You Can Edit Independently

Extract a Single-purpose Component Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: DevOps #4 – Edit Independently to understand the specific problem we are solving and the solution approach. This recipe helps you extract your code to a single-purpose component that you can edit independently from other teams. Extract Data Complication: Half a Class Belongs With My Entity Extract Code Complication: My Code Calls Their Code Complication: My Code is […]

Roadmap from Monolith to Services

Create a Roadmap Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: DevOps #3 – Roadmap to Escape the Monolith to understand the specific problem we are solving and the solution approach. This recipe helps you define a technical roadmap to free your team from the monolith. Align on Goals, Obstacles, and Sequence Agree on Phases Use a Variable-Scope Experiment Identify Visible Work for Phase 1 Agree on Experiment Budget Agree […]

Enable Unit Testing

Make the Code Testable Before Testing It Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: DevOps #2 – Enable Unit Testing to understand the specific problem we are solving and the solution approach. This page contains the recipes for the 5 most test-blocking design flaws. Recipe 1: Solving Poor ParametersPeel Poor Parameters Recipe 2: Solving Large PrivatesExtract Large Privates Recipe 3: Solving Method CallsSignal Event Instead of Method Call Recipe […]

Discover and Automate Manual Processes

Automating Yourself with Checklists Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: DevOps #1 – Automating Manual Processes to understand the specific problem we are solving and the solution approach. This recipe helps you automate one manual process of any size. You can also execute it recursively on sub-processes. Observe and Record Checklist The next time someone performs the process The second time When things go horribly wrong Automate Running […]