https://craiglarman.com/wiki/index.php?title=Legacy_Code_and_New_Code_TDD_Workshop_with_Mob_Programming&feed=atom&action=historyLegacy Code and New Code TDD Workshop with Mob Programming - Revision history2024-03-28T21:52:49ZRevision history for this page on the wikiMediaWiki 1.34.0https://craiglarman.com/wiki/index.php?title=Legacy_Code_and_New_Code_TDD_Workshop_with_Mob_Programming&diff=4256&oldid=prevClarman at 21:17, 28 December 20162016-12-28T21:17:10Z<p></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #222; text-align: center;">Revision as of 21:17, 28 December 2016</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Overview ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Overview ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>5-10 days</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>5-10 days</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"><br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"><br></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>group size: maximum 10 developers</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>group size: maximum 10 developers</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"><br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"><br></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>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.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>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.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><br></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><br></div></td></tr>
</table>Clarmanhttps://craiglarman.com/wiki/index.php?title=Legacy_Code_and_New_Code_TDD_Workshop_with_Mob_Programming&diff=4255&oldid=prevClarman: 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..."2016-12-28T21:16:54Z<p>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..."</p>
<p><b>New page</b></p><div>== Overview ==<br />
5-10 days<br />
<br />
group size: maximum 10 developers<br />
<br />
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.<br />
<br><br />
<br><br />
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.<br />
<br><br />
<br><br />
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:<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
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.</div>Clarman