Learning to Listen for Design



At work I led a discussion group on a paper from Onward! 2019, “Learning to Listen for Design” by Baniassad, et al. The abstract:

In his essay, Designed as Designer, Richard Gabriel suggests that artifacts are agents of their own design. Building on Gabriel’s position, this essay makes three observations (1) Code “speaks” to the programmer through code smells, and it talks about the shape it wants to take by signalling design principle violations. By "listening" to code, even a novice programmer can let the code itself signal its own emergent natural structure. (2) Seasoned programmers listen for code smells, but they hear in the language of design principles (3) Design patterns are emergent structures that naturally arise from designers listening to what the code is signaling and then responding to these signals through refactoring transformations. Rather than seeing design patterns as an educational destination, we see them as a vehicle for teaching the skill of listening. By showing novices the stories of listening to code and unfolding design patterns (starting from code smells, through refactorings, to arrive at principled structure), we can open up the possibility of listening for emergent design.

As a highly verbal person who also has a strong compulsion to curate things, the notion of “listening” to code for direction in refactoring resonated deeply with my experience.

The paper was also a heartening reminder of Richard Gabriel’s work. I read most of his essays (up to that time) as a graduate student ca. 2003-2004. He continues to fascinate.