Reading Code Without Psychic Powers

Lasse Koskela and mhjort

Developer Community Track
Scheduled Time: 
Tuesday 20 November 2007, 01:30 to 03:00
Scheduled Time: 
Tuesday 20 November 2007, 03:30 to 05:00
Room: 
Southwark Cathedral, The John Trevor Williams Room
Laptop required
Session type: 
workshop
Session type: 
interactive presentation
Intended audience and experience level: 

Developers of all experience levels from apprentice to journeyman

Prerequisites: 

The workshop participants are encouraged to bring their own laptops. Not everyone has to have one, however, as we are going to work in small groups. The laptops should ideally have a recent (3.2) version of the Eclipse IDE pre-installed. The workshop organizers will distribute additional software and resources on USB sticks and/or on CDs/DVDs.

Description:

The primary purpose 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.

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 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.

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.

Organizers:

Lasse Koskela

Methodology specialist at Reaktor Innovations, Lasse entered the IT industry 7 years ago and has since held roles varying from development to project management and training to consulting, dipping his toes to sales every once in a while. He started promoting agile methods in Finland in 2002, ramped up the local Agile Seminars in 2005, is the author of Test Driven: TDD and Acceptance TDD for Java Developers (Manning Publications, 2007), and actively helps teams around Europe improve on their ability to develop products. He can be reached at lasse.koskela@ri.fi.

Markus Hjort

Software architect at Reaktor Innovations, Markus has been in the industry for over seven years with experience from various technologies including Java, Microsoft, and Symbian platforms. Certified Scrum Master with extensive experience on agile methods and a long-time active participant in process improvement wherever he’s worked at, Markus kick-started the local Coding Dojo events in Finland back in 2005.

Session history:

By the time XP Day 7 commences, this workshop has been run in public at the Agile 2007 conference in Washington, D.C. and as an internal test run within our company, Reaktor Innovations. The organizers will take advantage of these prior sessions by further refining the workshop format and structure according to the feedback.

Lasse Koskela

Methodology specialist at Reaktor Innovations, Lasse entered the IT industry 7 years ago and has since held roles varying from development to project management and training to consulting, dipping his toes to sales every once in a while. He started promoting agile methods in Finland in 2002, ramped up the local Agile Seminars in 2005, is the author of Test Driven: TDD and Acceptance TDD for Java Developers (Manning Publications, 2007), and actively helps teams around Europe improve on their ability to develop products. He can be reached at lasse.koskela@ri.fi.

mhjort

Scrum Master and Agile Developer at Reaktor Innovations, Markus has been in the industry for over seven years with experience from various technologies including Java, Microsoft, and Symbian platforms. Certified Scrum Master with extensive experience on agile methods and a long-time active participant in process improvement wherever he’s worked at, Markus kick-started the local Coding Dojo events in Finland back in 2005.