Extract Your Code So You Can Edit Independently Copy

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 #3 – 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 […]

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 #3 – 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 […]

Use Data to Split a God Class

Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: Fix God Classes by Using Data to understand the specific problem we are solving and the solution approach. This recipe requires 5 steps. Step 2 arguably makes readability worse, so do step 1 incrementally and push each to main, then branch when you start step 2 and get at least a few private methods through step 4 as quickly as possible […]

Fast, Durable Cross-service Integration Tests

Isolating Dependencies with Ports and Adapters Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: Testing Interactions with Third Party Services to understand the specific problem we are solving and the solution approach. This recipe is one application of the habits taught in our Test Challenging Dependencies Change Series. This recipe helps you isolate and test a remote dependency. Each pass will isolate one interaction between your system and theirs. You […]

Port Between Technologies

Creating and Shipping a Chimera Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: Port Between Technologies to understand the specific problem we are solving and the solution approach. We are going to set up a tame chimera system: something which is simultaneously both the old and the new, but in a way that won’t eat us. To accomplish that, we build the following: One strategic product choice: Phase 1: […]

From Hard to Easy: Changing Database Schema

Fixing Databases with Lego Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: Changing Database Schema to understand the specific problem we are solving and the solution approach. This recipe helps you enable database refactoring for a project. You execute it once per project. You will need to set up 5 things: Get the Refactoring Databases book. Define the migration script structure. Create your tool to apply migrations. Add the tool […]

Start Fixing a God Class

Converting their pawns to make your army Problem and Solution Overview This recipe just states how to execute a solution. Read our Legacy Newsletter blog post: Start Fixing God Classes to understand the specific problem we are solving and the solution approach. This recipe requires 9 steps. Future developers will unconsciously start helping you if you get through at least step 5. Pick a target procedure. Make data usage obvious. Create Data-Transfer Object. Convert Data-Transfer Object to Whole Value. Convert […]