Bill of Rights

Version 1.15 by chrisby on 2023/10/21 14:53

Introduction

The purpose of the Bill of Rights is to resolve common disputes between customers and developers by defining a clear, distinct sets of rights and expectations for effective cooperation. Make sure that developers and customers can always visit a bill to resolve disputes that arise during discussions.

Commented Bill of Rights

1. Customer Bill of Rights

You have the right to

  • an overall plan and to know what can be accomplished when and at what cost.
Information

Developers can't predict the exact amount of work for a story, but they must specify the uncertainties. See Planning Game.

  • get the most possible value out of every iteration.
Information

Developers must work on the features that have the highest level of usable business value. "Usable" means ready to be used effectively by end users.

  • see progress in a running system, proven to work by passing repeatable tests that you specify.
Information

Developers must write acceptance tests that are developed in collaboration with customers.

  • change your mind, to substitute functionality, and to change priorities without paying exorbitant costs.
Information

Software is always expected to be flexible by design, so functional customization should be affordable. In each iteration, customers have the opportunity to re-prioritize stories and define which stories to implement in the next iteration.

  • be informed of schedule and estimate changes, in time to choose how to reduce the scope to meet a required date. You can cancel at any time and be left with a useful working system reflecting investment to date.
Information
  1. Customers have the right to be informed in time if there is a delay. They then have the right to decide which stories should be dropped from the project scope, so that at least the most important stories are completed by the deadline. Customers do not have the right to demand that developers implement all originally planned stories and meet specific deadlines if the developers estimate that this is not possible.
  2. Because each iteration produces a tested, production-ready and deployable release, customers can technically exit the contract at any time.

2. Developer Bill of Rights

You have the right to

  • know what is needed with clear declarations of priority.
Information

Developers can ask customers to clarify requirements. Customers have the right to change requirements outside of an iteration, but not within an iteration.

  • produce high-quality work at all times.
Information

No developer should be forced to damage their reputation or violate their work ethic by delivering low-quality code.

  • ask for and receive help from peers, managers, and customers.
Information

With the right to ask for help comes the responsibility to give help.

  • make and update your own estimates.
Information

Estimates are intelligent guesses, not commitments. Of course, estimates get better over time as new insights are gained.

  • accept your responsibilities instead of having them assigned to you.
Information

For each iteration, customers specify the tasks to be done, but developers internally negotiate who does what. Developers have a deeper understanding of the technology and team experience, resulting in a more efficient allocation of resources. An individual developer has the right to say "no" to a task during the negotiation process, due to the availability of better alternatives or a lack of confidence in their abilities, and take on another task instead.