Coding Dojo - Identify & fight systemic issues creating legacy code


Details
This time we will try to create code we do not consider “legacy”. I’ll play the role of your client and use some techniques to make you fail. We’ll then discuss what techniques I have used, how they happen in real life, how to fight them in your project.
-------------------------------------------------------
A Coding Dojo is a team practice format that accelerates knowledge transfer and sharing skills between team members. With an experienced facilitator, it is also a way of learning by applying various techniques.
Objectives
The following skills are typical candidates for improvement during a dojo:
• Refactoring
• Simple design
• Clean code
• Improving pair programming technique
• How to safely modify code you don't understand (usually legacy code)
• Learning a new programming language
• Unit testing
• Test driven development
In addition, coding dojo can be used by a team as a collective and structured way of solving difficult or risky problems related to production, like fixing a bug or redesigning parts of the application.
How it works?
The basic format of a coding dojo:
• All developers and the facilitator gather in a room.
• The facilitator introduces the purpose and the format of the coding dojo.
• One laptop with a functional development environment is connected to a projector.
• Two developers pair program on the laptop. The others are in the room, watching the code changes.
• Every 7 minutes, one developer leaves the laptop and the next one from the room takes his place.
• After a specified period of time (usually around two hours), the dojo ends with a retrospective.

Coding Dojo - Identify & fight systemic issues creating legacy code