InfoQ

News

Doer vs. Talker: Working Software over Comprehensive Documentation

Posted by Geoffrey Wiseman on Jan 16, 2008 08:10 AM

Community
Agile
Topics
Delivering Value
Tags
Business/IT Alignment ,
Agile Manifesto

In Are You a Doer or a Talker?, Jeff Atwood of Coding Horror echoes the agile manifesto's 'Valuing working software over comprehensive documentation.'  Noting an article by John Taber, Atwood draws parallels between transportation studies and transportation construction projects. Just as transportation studies deliver documentation, rather than transportation, so can the planning, design and discussion of software obscure the job of building software:

It's an easy conceptual trip from building bridges to building software. In software, some developers take up residence on planet architecture, an otherworldly place where software is eternally planned and discussed but never actually constructed. Having endless discussions about software in a conference room or mailing list feels like useful work-- but is it? Until you've produced a working artifact for the rest of the world to experience, have you really done anything?

In the comment thread below, Mike points out the dangers of dichotomies.  Some imagine that the manifesto's emphasis on some elements means the other elements have no value, but this isn't true.  It's not that documentation, architecture, design, and discussion about building software don't have value, it's just that working software is the goal, and if producing ever more documentation is getting in the way of that goal, it's time to adjust priorities.  As Jeff Atwood concludes:

So that's what you have to ask yourself: are you a doer, or a talker? Ideally, you'd be a little of both, as I've said many times here. There's certainly value in some discussion and planning on your team. But if you must pick one or the other, try to err on the side that produces useful, working code

Even so, the extensive discussion thread imply that finding the right balance between talking and doing is an art that still causes much frustration in the lives of developers.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

2 comments

Reply

You must walk a fine line by Ryan R Posted Jan 16, 2008 10:34 AM
Re: You must walk a fine line by Konstantin Ignatyev Posted Jan 16, 2008 12:54 PM
  1. Back to top

    You must walk a fine line

    Jan 16, 2008 10:34 AM by Ryan R

    It's important to walk a fine line between talking and doing.

    Some of this is cultural. Working in a large Federal Consultancy has shown me how easy it is to succeed without really delivering anything. In places like that, talking is valued over doing. "Doing" is pushed down to junior level resources who have little experience and receive almost no guidance. As long as the revenue line goes up, the senior folks aren't concerned with how successful or unsucessful an engagement is.

    Some of this is human nature. I think many technical folks want to get the problem and its solution laid out all before hand. This is a rookie mistake. Wasn't it Fowler who stated that a designer's riskiest project will be the second one they design? It's due to taking lessons learned on the first project and attempting to apply them, holistically to the second project, from a design and architecture perspective.

    I feel that finding the right balance comes with experience. Up front design is good! It's just that eventually, you have to stop talking and start doing and produce something. A good manager or technical lead knows, based on experience, when to stop design and architecture and begin implementation, regardless of the completeness of a design.

  2. Back to top

    Re: You must walk a fine line

    Jan 16, 2008 12:54 PM by Konstantin Ignatyev

    yes, but I think balance should be tipped a bit towards talkers because when doers run the show over short period of time they tend to produce unmanageable solutions which need to be scrapped. Before they scrapped those solution inflict much pain on the people who understand that if doers just took 0.1% just to talk over what they are going to do and communicate it even to themselves it would not be that bad.

Exclusive Content

Ruby.rewrite(Ruby)

In this RubyFringe talk, Reginald Braithwaite writes Ruby code to read, write, and rewrite Ruby. Demos include extending Ruby with conditional expressions, call-by-name and more.

Book Except and Interview : Aptana RadRails, An IDE for Rails Development

Aptana RadRails: An IDE for Rails Development by Javier Ramírez discusses the latest Aptana RadRails IDE, a development environment for creating Ruby on Rails applications.

Fast Bytecodes for Funny Languages

Cliff Click discusses how to optimize generated bytecode for running on the JVM. Click analyzes and reports on several JVM languages and shows several places where they could increase performance.

Scott Ambler On Agile’s Present and Future

Scott Ambler, Practice Lead for Agile Development at IBM, speaks on the current status of the Agile community and practices having a look at the perspective of the Agile’s future.

Manager's Introduction to Test-Driven Development

Dave Nicolette and Karl Scotland try to introduce non-technical managers to one of the most popular Agile development techniques: Test-Driven Development (TDD).

Structured Event Streaming with Smooks

Smooks is best known for its transformation capabilities, but in this article Tom Fennelly describes how you can also use it for structured event streaming.

How to Work With Business Leaders to Manage Architectural Change

Successful architectures evolve over time to meet changing business requirements. Luke Hohmann presents how to collaborate with key members of your business to manage architectural changes.

Colors and the UI

In this article, Dr. Tobias Komischke explains how colors used in a GUI can influence our interaction with a computer and offers advice on using the appropriate colors for the interface.