We need to start with some basic assumptions to guide our solution.

Here is my initial list:

  1. The applications being built will be important commerce or personalization sites, but will not be the sort of critical applications like nuclear plant software or air traffic controlling programs which require massive testing and documentation
  2. The team may be geographically distributed
  3. Time, Budget, Functionality, and Quality are all important, but we recognize the inherent truth of the saying: “you can have it: fast, cheap, good. pick two.”
  4. The application should be considered as being built for an external client. This may be because you work as an implementor, or simply that the “client” is your company’s business team
  5. You should be able to be proud of what you’ve build, the code, the look, all of it
  6. You should be delivering something of value to the client, ideally something with measurable value
  7. You need to be as flexible as you can regarding changes, without impacting the delivery quality of date
  8. The process should be well documented, repeatable, etc…
  9. Communication is king
  10. We can always improve