eXtreme Programming Bill of Rights

eXtreme Programming taught us that customers, programmers, and managers have certain “rights” on software development projects. As copied from this article, those “Bill of Rights” are listed below.

Customer rights

  • The customer has the right to plan on a large scale with costs and options.
  • The customer has the right to set development priorities weekly.
  • The customer has the right to see progress in the form of a working system at the end of the first week, and to see a little more functionality every week thereafter.
  • The customer has the right to updates of the schedule, good or bad, as soon as the information is available.
  • The customer has the right to change his/her mind without paying exorbitant costs.

Programmer rights

  • The programmer has the right to estimate work and have those estimates respected by the rest of the team.
  • The programmer has the right to honestly report progress.
  • The programmer has the right to produce high-quality work at all times.
  • The programmer has the right to know what is most important to work on next.
  • The programmer has the right to ask business-oriented questions whenever they arise.

Manager rights

  • The manager has the right to an overall estimate of costs and results, recognizing that reality will be different.
  • The manager has the right to move people between projects without paying exorbitant costs.
  • The manager has the right to monthly updates of progress, and to help the customer set overall priorities.
  • The manager has the right to cancel the project and be left with a working system reflecting the investment to date.

What made me think about this today is that I’m writing a new book on software cost estimating, and I was trying to remember the “rights” of the customer and manager.