Reading Code without Psychic Powers
Organizers: Lasse Koskela, Markus Hjort
Objectives:
The primary objective of this interactive workshop is to help developers improve their ability to read and understand code. Along the way, through a series of hands-on exercises working on raw-and- uncut code, workshop participants are also likely to develop their refactoring skills and perhaps even learn some testing trickery.
Contents:
The workshop's agenda consists of three parts. We will start by introducing the topic and the underlying motivations. The presenters will make the case for the need for code reading ability in the first place as well as explain various factors that affect our ability to understand code.
The second part of the workshop is a sequence of multiple hands-on exercises, involving code bases provided by the presenters. The participants get to experience the factors discussed in the introduction first hand and to apply a number of presented techniques to overcome the challenges. Each exercise will begin with a short introduction and end with a brief review and a discussion on the different groups' findings.
The third and final part of the workshop is a review of the exercises and a survey of the techniques used by the participants. The goal for this third part is to document the variety of techniques used by the workshop participants to help comprehend "challenging" code.
Process & Timetable:
The workshop's planned duration is 120 minutes and roughly follows the below timetable:
15 min Introduction and a presentation about code reading techniques
90 min Hands-on exercises
15 min Wrap-up
The exercises will be done in groups of 2-3 people on the participants laptops. In other words, not all participants need to have their own laptop but bringing your own laptop is highly recommended in order to keep the groups comfortably small. The presenters will distribute exercise material on CDs/DVDs and/or USB sticks. The participants are also encouraged to have a recent (3.2) version of the Eclipse IDE installed on the laptop before the workshop.
Session Format: workshop
Intended Audience:
Developers of all experience levels from apprentice to journeyman
Benefits of participating:
Participants will learn new techniques for reading and understanding code.
Benefits of organizing:
The organizers will learn new techniques for reading and understanding code – just like the participants.