ProgrammingAsTheoryBuilding

February 20, 2009

see DevelopmentAnalogies

testrus tweets about a paper written by Jason Catena discussing “Programming as Theory Building”, an article written by Peter Naur, reprinted in Alistair Cockburn's Agile Software Development:
Naur makes the argument that the act of developing software
has mistakenly been taken as an act-of-production—production
of “a program and certain other texts.” He cites several examples
of empirical data inconsistent with the production model of development;
including, the fact that documentation of arbitrary
completeness and exactitude does little, if anything, to convey an
understanding of a program to those not involved in its original
creation.

Theory building, a la Naur, is the individual and collective
effort to: understand the world; understand how the software is
shaped by the world and how it will integrate with that world;
understand the essence of the software and how best to articulate
(code) that essence; and understand if you have gotten the first
three understandings right.

The observable activities associated with theory building include
telling a lot of stories, exploring ideas, trying things to see if
they work, testing your understanding, populating your physical
space with evocative reminders of your understanding, and doing
these things iteratively in increasingly comprehensive increments.
Looks a lot like an agile environment, but bears little resemblance
to a production environment.

testrus also shot me a link to an article by Dave West that references Naur's work as well.


see also ComputersAreNotPeople

tags: ComputersAndTechnology