Are you an Engineer Leader who wants to help bring Automated Testing & TDD to your teams working with Legacy Code? Would you like to enable your teams to deliver quality software faster with TDD? You’ve come to the right place. Based on my experiences coaching teams worldwide, I’ve created the TDD in Legacy Code series to help teams adopt TDD.
TDD Transformation Roadmap
Phases
The following phases are organized in sequence of ROI.
Acceptance Test Driven Development (ATDD)
Setup Pipeline Architecture to support Acceptance Tests
Adjust System Architecture to ensure Acceptance Testability
Introduce Acceptance Tests into Legacy Code
Apply Acceptance Test Driven Development for new User Stories & Bug Fixes
Component Test Driven Development (TDD)
Adjust Pipeline Architecture to support Component Tests
Adjust Component Architecture to ensure Component Testability
Introduce Component Tests into Legacy Code
Apply Component Test Driven Development for new User Stories & Bug Fixes
Unit Test Driven Development (TDD)
Adjust Pipeline Architecture to support Component Tests
Transform Big Ball of Mud to Hexagonal Architecture to ensure Unit Testability
Introduce Unit Tests into Legacy Code
Apply Test Driven Development for new User Stories & Bug Fixes
Adopting Technical Practices
Within each phase, we have the following process:
Stage 1. Training - I provide a short introduction to Automated Testing & TDD as well as the roadmap for applying these practices in Legacy Code
Stage 2. Sandbox Project - Developers apply Homework Tasks on their GitHub Sandbox Project (open source) by following the guides in the TDD in Legacy Code series. They might do this during their Learing Hours / Learning Days. When they’ve completed a guide, they comment with a link to their Sandbox Project so that I can review and provide feedback. We repeat this cycle. In case of additional support, I am available for remote face-to-face coaching.
Stage 3. Real Life Project - Developers translate the skills they learnt from Sandbox Project onto one Real Life Project. As they face any additional complexities (e.g. can’t apply some step in the guides to their Real Life Project), then they can comment on that guide, so that I can provide advice. In case of additional support, or need to share code under NDA, I am available for remote face-to-face coaching.
Scaling Technical Practices
With the Sandbox Project, and having applied it to one Real Life Project, this team acts as Internal Champions to spread best practices in the company:
Use the Sandbox Project as the Reference Implementation of technical standards, use it in company’s internal Teck Talks & internal knowledge sharing sessions
Continue to apply the Sandbox Projects to other Real Life Projects, and use it as a reference when supporting other teams to apply it. For example, the other teams can firstly try to implement a demo User Story on the Sandbox Project as practice, before applying it to their Real Life Projects.
Use the Sandbox Project to onboard new developers. When companies join the company, they may spend the first few weeks doing a practice User Story on the Sandbox Project to understand the architecture and test approach, and then transition to applying those practices on the Real Life Project.
Get Team Access
You can purchase group access:
Get group subscriptions for your developers (at a discount).
Download invoices to expense this as part of your company’s Learning & Development Budget.
About me
My name is Valentina Jemuović, I’m a Technical Coach at Optivem.
As a Technical Coach, I’ve helped teams worldwide introduce TDD in Legacy Code, and now I want to help your team achieve the same. I will show your teams step-by-step how to introduce TDD in Legacy Code and provide them with feedback and support at every step of this journey.
What’s next?
You're an Engineering Leader who wants to help introduce Automated Testing in Legacy Code and help teams adopt TDD. Let's discuss the current challenges your teams are facing, and how we can bring change: