GSAS 2019: Code is King; Let's Think in Code

The goal of expressing design intent in code has been around since at least the 1970’s. What’s changed is that now code is king: Developers stare at code all day long, our processes track features, and our success metric is deployed code. Other, formerly first-class activities – like modeling, design docs, and software architecture – now happen largely to support code.

As a result, coding is a different cognitive task. Instead of code being the final expression of developers’ thoughts, it’s now a partner in their thinking. In a real sense, the thoughts they think are made possible only because they are staring at code.

This talk builds a cognitive model of software development in three parts.

  1. Theory building (from Peter Naur)
  2. Extended & distributed cognition
  3. Situational awareness

The implication is that we must go beyond the old advice to “express design intent in code” and actually change our development practices. To succeed like other types of engineering, we must support theory building and expression in teams of software developers.

Invited talk at the GSAS 2019 conference Barcelona, Spain.

Here are the slides: