A practice is something we, as a community, have discovered is simply always a good thing to do. For something to be promoted as a practice, it must be truly universal (you can always do it, and everyone should do it). Therefore, it must be:
- Easy to do. We don’t want to burden ourselves or slow ourselves down because of a practice.
- Easy to teach. If we want everyone to do them, it should not be a burden to propagate their use across the entire team, organization, and the profession itself.
- Be highly valuable. A good practice should pay you back over and over and over again.
For example, a common medical practice is all doctors wash their hands before dealing with their patients. It is not hard to do, it’s easy to teach others to do, and it has made the entire profession fundamentally more successful.
There are several technical practices that we believe should be followed. But what of software development workflow practices? This area has yet to be fully explored. Here are a couple, however:
- When a developer is asked to do something she must always ask (at a minimum) how will I know I’ve done that?
- Before starting something new I should consider if there’s something I can finish or help finish first.
See Core Developer Skills: Practices to see a few technical practices that we believe should be followed.