Getting Things Done for Webapp Developers: GTD++

Posted on July 08, 2008

I wrote this a while back and had it archived on a Backpack page.

Since I’ve never done anything with it, thought I might as well post it here.

The ideas are very similar to Getting Real by 37 Signals, though I don’t nearly flush them out as well.

Note: I wrote this after being frustrated at a few companies; I’ve since worked for some pretty cool teams that have actually adopted many of these ideas, under different names / etc (agile, XP, Getting Real, etc).

How Webapp Developers Can Get More Done: GTD++

GTD++ is a collection of applied technologies and frameworks for agile, sustainable application development.

Systems

  • Version Control
  • Bug, Task & Feature Request Tracking
  • One-step Builds
  • Unit Testing
  • Wiki / Knowledge Management
  • Automatic Documentation Extraction
  • Continuous Integration
  • Automated Application Testing (Web, GUI, etc)

Laws of GTD++

  • Any ongoing process which relies upon the physical proximity of team members is inherently broken.
  • Any system that routinely relies upon verbal or message-based (non-captured) knowledge transfer for critical development work is inherently flawed.
  • Any process that can be automated in a functionally equivalent manner—should be automated.
  • Stakeholders should always be made aware of the implications of their requests (functionality-wise, schedule-wise, etc)
  • Stakeholder Corollary: Stakeholders will not always know what they truly want without developer feedback.

Development / Production Stages

  • Experimentation
  • Incubation
  • Rapid-growth (agile development)
  • Quality-assurance
  • Maturation
  • Sustainable++

Absolute Bare Minimum a Developer Needs to Get Started

  • A version control login and URL
  • How to Checkout the Source
  • How to Setup the Development Environment
  • How to Setup the Build Environment

Absolute Bare Minimum Deployment Documentation

  • How to Setup the Deployment Environment
  • How to Deploy the Application

GTD++ Tools

Cross-platform

  • Subversion
  • Trac

Java

  • Ant
  • JUnit
  • Javadoc

.NET

  • NAnt
  • NUnit
  • NDoc

Ruby

  • Rake
  • Test::Unit
  • RDoc
  • WATIR

Python

  • SCons
  • PyUnit
  • pydoc