- Testing; in practice it is about Test Driven Development, where tests are written before the implementation.
- Minimizing code duplication.
- Maximizing clarity; it comes to down to meaningful naming.
- Removing unnecessary elements. That postulate usually is naturally met when previous two are done properly.
Getting the most out of itSome practical advice from a one-time “veteran”:
- Bring your own computer and have your environment (editor, unit testing framework) ready. There’s really not enough time to setup everything during a session and you will loose precious time that could be better spent on writing the code.
- Switch pairs each time. The event attracts passionate people, so use the opportunity to pair up with as many of them as possible.
- Focus on some aspect of the problem instead of the complete solution. Me and my partner literally wasted one session when we tried to analyze the problem with pen and paper, instead of WRITING THE CODE. It would be perfectly reasonable in real work, but this event is about improving programming skills, not analysis. However, I think it is OK to think about the problem up-front and even have the solution in mind. Optimize for having as much time as possible to write the code during the event.