Aug 25 2008

devLink Wisdom: Risk Aversion


My biggest take-aways were all conceptual...All the problems we have with things "breaking" and being generally not (automatically) repeatable come from us not takng the time to mitigate certain common risks:

Risk Aversion

  • Automated Testing is acknowledgement that coding bugs can and will occur.

  • Versioning is acknowledgement that shared files can and will be overwritten.

  • Agile is acknowledgment that Requirements Gathering can and will fail.

  • Continuous Integration is acknowledgment that deployments can and will break.

  • TDD is (in a way) acknowledgement that refactoring will constantly occur.

  • ...

If you don't take these risks into account in your process, the problems will all end up getting solved individually for each project (ugh) or worse -- swept under the rug until it's too late. The more common risks we can acknowledge and plan solutions for, the easier our jobs will be.