August 16, 2004 spout

Where Are You In The Software Practitioner Triad

In his piece Software Practitioner Triad (I know it’s old, but I just got pointed to it by Phil Weber), Alan Cooper points out three different folks needed to design and build software:

  • Architect: responsible for determining who the user is, what he or she is trying to accomplish, and what behavior the software must exhibit to satisfy these human goals.
  • Engineer: technical problem solving via experimentation, not fettered with the demands of producing release code.
  • Programmer: producing a shippable product, consisting mostly of protective code that rarely—if ever—executes, but is dedicated to supporting obscure edge cases, platform idiosyncrasies, and error conditions.

I’ve done all three, but am happiest with architect and engineer. Where are you in your current job? Where do you want to be?