ABSTRACT
In Dreaming in Code, Scott Rosenberg examines the ways in which large tech-
nology projects come to fruition, explaining that people “make mistakes, and they
correct them. They test and fix. They iterate” (2007, p. 298). Rosenberg extends this
emphasis on iteration by equating software development with composition, suggesting
that “programming today remains an act of writing” (p. 298). This analogy rings true
for writing instructors who will recognize the suggestions that technology projects
can be seen as creative (p. 299), social (p. 300), and emergent (p. 338). Rosenberg
borrows from writing to help explain software development. We’d like to return the
gesture, reversing the currents flowing through the programming-writing analogy and
taking from software development insights like the value of reusable code and of
thinking in layers.