- Engineering Complexity
- Birth of Murphy for Java
- People = Problems
- Education Through Pain Management
- The Twenty-Cent Solution
- Fraternal Clones
- "We Lost the Napkin"
- The Devil in Blue Jeans
- Jack and the Beanstalk
- The Slashdot Effect
- The Funhouse Microphone
- That "New Car" Smell
- If I Can See It, It Must Be Wrong
- The Ugly American
- Murphy's Law
- Use Egg Cartons
Law: If it can go wrong, it will.
Q: Are there backup plans for when things go wrong?
No matter what you do, failure is inevitable. Expect and plan to have failures, and force your team to come up with alternatives if failures do occur.
Scheduled milestones are short and flexible enough to implement alternative solutions.
Alternative solutions are understood so that they have a high percentage chance of success.
Alternatives are survivable though not perfect. A plan for eventual replacement of alternatives is also in place.
No alternatives are explored.
High dependence on unproven technology without examination of low-tech backup plans.
Inflexible deadlines that don't account for error or delay.
Have a backup for unproven technology.
Assume that programming new technology will take longer than normal to complete.
Develop the riskiest parts of a design as soon as possible so that the actual time impact of the riskiest milestones are known as soon as possible.