In 1689, the Bill of Rights in England laid the foundation for parliamentary democracy. In the US, people immediately think of the first 10 amendments to the Constitution. In software development, however, there is also a Bill of Rights. In 2001, two Bill of Rights were devised to describe the expectations that a customer and a software developer may have of each other.
Some of the creators of the Agile Manifesto have developed the Customer Bill of Rights and the Developer Bill of Rights for this. They are not very well known, but they are very powerful. From these rights, it becomes clearer what Agile development is and what it is not. Knowing these mutual rights contributes to an understanding from the customer for the developer and vice versa.
In this article I have included the Customer Bill of Rights with a brief explanation of each statement. The term customer in this context means the person responsible for planning and budget or the person who pays for or benefits from them.
1. You have the right to an overall plan and to know what will be realised, when and at what cost.
Agile working does not exclude a plan in advance. Of course, a plan is needed that is as accurate and precise as is practically possible. This means, above all, that we as developers must ensure that the degree of uncertainty is clear in our plans and estimates. And how this uncertainty can be reduced or eliminated. Fixed scopes based on hard data are not possible, but planning based on probability is. Such a planning contains a curve that indicates the probability of things being achievable.
2. You have the right to get the most value out of every iteration.
A customer may expect that a developer works on the most important things and that it provides the maximum business value. Therefore, the customer has the right to choose what happens in the iteration and to prioritise the requirements.
3. You have the right to see progress in a running system, proven to work by passing repeatable tests that you specify.
Surely it is self-evident that the customer determines the criteria for acceptance and can also follow the step-by-step progress in a working system? However, this right also stipulates that this can be demonstrated by means of tests that can be repeated over and over again and are successful.
4. You have the right to change your mind, to substitute functionality, and to change priorities without paying exorbitant costs.
This is a core element of Agile and also something that can be done in software development. For developers, this can sometimes be difficult or illogical, which is why it is good that this right has been described so explicitly.
5. You have the right to be informed of schedule changes, in time to choose how to reduce the scope to restore the original date. You can cancel at any time and be left with a useful working system reflecting investment to date.
Customers cannot change the planning or the estimate, but they can change the scope. This allows a customer to respond to what happens during the development process. It can also mean that development is stopped. Due to the customer’s other rights, a working system will always remain.
This Bill of Rights is a valuable addition to the Agile Manifesto. It can be used to create clarity for both the customer and the developer about what can be expected. In a subsequent article, I will discuss the Developer Bill of Rights. One cannot exist without the other, because the developer also has certain rights during the development process, based on his or her profession and craftsmanship.