Monday, April 14, 2008

Code as consensus 

discipline and punish
It's communication that seems to be the essential ingredient of all the different phases and levels and spheres of software engineering. Product managers have to communicate requirements to the developers, architects have to communicate abstractions to the developers, developers have to communicate code to each other, and sales has to communicate needs to the customers. Given all this commuication going on it may be that creating software is actually a communication exercise.

The goal of this communication exercise isn't to create code -- or anything else. The goal is to reach consensus. That consensus just happens to take the form of running code. And so code is then nothing more than a kind of communal history, or maybe even a kind of constitution -- either way it's a document that rigorously and unambiguously captures the consensus of the community that built it. And like all documents it is useful only insofar as it can be read and understood by its readers. If creating software is an art then it has nothing to do with painting but is perhaps more like the the art of rhetoric.

Topics: design | architecture

Links to this post:


Comments: Post a Comment

This page is powered by Blogger. Isn't yours?