Agile development, daily scrum, and transaction costs

One train of thought in economics is that organizations grow because the internal transactions cost less than external ones. However, eventually an organization grows so large it is unable to sufficiently comprehend its own activity. Stretching an analogy, we might say this limit derives from the “IQ” of the organization.

Translated to intellectual activities like software development, one can believe, as I do, that a top developer is more productive because that person can “hold the bubble” on a larger scope of activity. The external transaction cost of distributing the same scope of activity over a team, in this view, is what reduces the productivity of a team compared to a single individual capable of performing the same task.

Great, but while there are some <really> smart people out there, many interesting tasks are too large for any one hacker. One solution suggested by this model, then, is to seek to reduce the external transaction cost incurred by distributing the task over a team. How? It seems to me the two external dimensions of transaction cost in software development are bandwidth and latency. We can reduce bandwidth by adopting a shared language (e.g., LAMP, or .Net, coding and documention standards, etc). We can reduce latency by increasing the frequency of interaction.

Hence the daily scrum. It’s focus on <daily> reduces latency, while its emphasis on <terseness> reduces bandwidth.

Very clever.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.