The C3 project team has voluntarily adopted a large number of practices. Every team member follows these practices closely. We have found that designing, coding, and testing in a consistent way means that the team becomes quite well integrated and that team members know just what they can expect from each other. Software quality is kept more uniform, and at a high level.
All team members, new and experienced, are expected to follow the practices. We do not waste a lot of time debating them, although we do modify them from time to time in light of actual team experience.
We do not implement a lot of checking or security, to ensure that people follow the standards. We expect and require full voluntary compliance. .
In this document, I will describe our key practices. In some sections, I will present some possible concerns that the reader might have, prefixed with “On the contrary”. Then I will present a few bullet items responding to the concern.
A general comment: we wouldn’t be using these practices if they didn’t work. C3 has been a very successful project both in relation to earlier attempts to write the same program, and by comparison with team members’ other projects. The reader may find some of these practices surprising or even questionable: in fact they do work, by actual experience. We do remain open to improvements, and we do expect that developers will use good judgment in specific situations.
When in doubt, get a few people together and decide what to do.
As a member of the C3 team, you will be expected to follow these practices, not blindly but thoughtfully. As you become expert in following them, you may see improvements. Discuss them with the team and help us refine them. But whatever the practices are, we all agree to follow them, not to strike off on our own.