This post is my personal notes of the talk “The responsibility of knowing” by Robert C. Martin.
The responsibility of knowing
Engineers are creators, inventors, they know how to build things, how things work, what can fail, what will fail, when it will fail. Engineers have the knowledge, and that means they have great power, and “with great power comes great responsibility”.
Robert C. Martin gives a few examples of how engineers insufficient drive, passivity or even negligence regarding the quality of a project, can have disastrous consequences to peoples lives, companies survival, states prerogative, etc.
The bottom line is:
Engineers are to ones who know, therefore they must be allowed to work without having the pressure of time constrains, business management or politics. Allowing their interference may have severe impact on a project quality and outcome. Which does not mean the project shouldn’t be managed, supervised and monitored.
In 1999, Kent Beck came up with a programmer bill of rights
A Programmer has the right to
- Know what is needed with clear declarations of priority;
- Produce quality work at all times;
- Ask for and receive help from pears, supervisors and customers;
- Make and update their own estimates;
- Accept responsibility instead of having them assigned.
and a customer bill of rights:
A Customer has the right to
- An overall plan, when it can be accomplished and at what cost;
- Get the most out of every programming week;
- See progress in a running system, working by passing a set of tests they specify;
- Change their mind, to substitute functionality, and to change priorities without paying exorbitant costs;
- Be informed of a schedule change in order to reduce scope and restore the original date;
- Cancel the project and be left with a system that runs and reflects investment to date.