Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Digital Library


What Coderetreats Have Taught Us About Design

  • This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.
  • Abstract

    Coderetreats are daylong, intensive practice events that focus on software development and design fundamentals. The coderetreat format provides developers with an opportunity for focused practice and skills development away from day-to-day job pressures. During a coderetreat, participants work in pairs to implement Conway's Game of Life in any programming language of their choice. A brief reflection discussion follows each development session, after which participants delete their code, find a new pair, and repeat the exercise with a new set of design constraints chosen by the facilitator.

    Practicing basic software development principles (such as object-oriented design, functional programming design, and design simplicity) improves developer mastery and awareness of important architectural principles, including designing for specific quality attributes such as modifiability, maintainability, testability, and extensibility. Coderetreat participants explore many alternative designs and architectures throughout the day with the goal of discovering designs with a low cost of change.

    During this presentation, we will share our story about using coderetreats at IBM as a means of knowledge sharing, team building, and fostering a sense of craftsmanship across organizational boundaries. We will share what we have learned about software design and architecture after facilitating and observing five years of coderetreats, both publicly and within IBM.

  • Slides

Part of a Collection

SATURN 2015 Presentations