Legacy Code and New Code TDD Workshop with Mob Programming
Revision as of 14:16, 28 December 2016 by Clarman (Created page with "== Overview == 5-10 days group size: maximum 10 developers Your Problem: A ton of legacy code (perhaps for an embedded system) with lots of entanglements and dependencies, p...")
group size: maximum 10 developers
Your Problem: A ton of legacy code (perhaps for an embedded system) with lots of entanglements and dependencies, plus the need for new code for new features. And you want a significant improvement towards clean code. You may also want a significant new design. And you want your developers to learn the art of Test-Driven Development (TDD) and how to create clean code with excellent design.
This Legacy Code and New Code TDD Workshop with Mob Programming is an experience-driven workshop, not lecture-driven. The "written" materials of the course are normally a few posters on the wall and the agenda. The workshop may be supplemented with learning aids from the Agile TDD and Refactoring course.
While it may be possible to lecture on TDD, clean code, refactoring and great design for days on end, our observations on adoption that the primary problems are two-fold:
- Developers have been trained to write the code first and manually debug to test their solutions. Replacing this changed habit with one that requires more forethought, discipline, and clean code, cannot be done through lecture. It must be done through practice for an extended period of time with constant guidance from an expert coach.
- Many of the developers are working with large, poorly coded applications and time, advice, and encouragement is needed to overcome the initial obstacles to enabling test-driving modifications to that code.
The most powerful way that we have discovered to achieve this learning is via a mob programming approach, in which the coach and group work intensively all together on the code, 8 hours a day, during which time the coach guides the group minute by minute towards the goals of clean code, new design, mastering TDD, and more.