Software without documentation is not maintainable. Good naming
conventions, logical designs
and well-built tests help
make code self-documenting. High-level tutorials explain how the
different components are intended to work together.
Finished code is reviewed before it is committed. Reviews make sure
that the other parts of the design process were followed
tests, etc.) and that errors are
fixed as quickly as possible.