We all know the saying it’s better to ask for forgiveness than permission. And everyone knows that, but I think there is a corollary: If everyone is trying to prevent error, it screws things up. It’s better to fix problems than to prevent them. And the natural tendency for managers is to try and prevent error and overplan things.
Will Foy
on 13 Jul 10I concur; however, it would be equally bad to make an assumption that no one should be focused on preventing error. It is costly to allow errors to progress too far, and costlier the further down the code promotion path one goes. Something that would’ve taken a few bucks to fix at a planning, design or even testing phase might take lots more to fix if it goes to production and even worse if it lives there a while and gets to corrupt production-land. Admittedly, this comes from my focus as a software QA/tester person, but if no one’s minding the store, all the goodies go away. Someone’s job does need to be, at least in part, to pay attention to preventing errors where possible, feasible, and cost-beneficial. Thus, as even the skeleton of a plan to build something happens, it should include some work by someone to help be the devil’s advocate, to argue for quality from inception, or as close to it as you can get. But, that person should also know they will not catch everything, and that’s where you stop. You stop overplanning by only allowing the resources that make sense to stop errors early to do their thing, and what gets through them, you process normally and fix problems as Catmull suggests.
Christopher Berlin
on 13 Jul 10Well, some managers at BP will like that quote… There are a lot of areas outside of software development and making movies where making errors can lead to huge catastrophes.
Pascale Soleil
on 13 Jul 10“It’s better to fix problems than prevent them.”
Tell that to the people of the Gulf Coast.
Drew Pickard
on 13 Jul 10I think you guys missed the point.
Both Software and BP are examples were mistakes happen but when discovered, should be fixed.
In both instances mistakes that aren’t fixed become a catastrophe.
BP had plenty of mistakes leading up to the spill. They simply ignored and chose not to fix them.
Nick Zadrozny
on 13 Jul 10Yes, yes. And hopefully their blogs are a bit less cavalier with the human lives they are responsible for ;-)
Anyway, back to the software development…
The best creative work takes risks. Trying to prevent any error from ever occurring is an exorbitant waste of time and creative energy. Especially when you work within a framework that devotes the entire process to preventing “errors,” however that may be defined.
Better to let the bugs happen, and fix them right away, than try to prevent them entirely. Better to implement a simple design and A/B test it to perfection than let a committee draw up requirements that futilely attempt to hit every edge case.
Last year I worked on a project with a three-year-old spec, filled with irrelevancies handling hundreds of edge cases, which the agency was not willing to budge on because “it’s what the client approved.”
Yeesh.
Much better to have good people take risks and own responsibility for the errors that occur.
AT
on 13 Jul 10I wish I had a nickel for every time I heard a manager/owner/whatever say “How can we make sure this never happens again?” about a completely unforeseeable event.
ML
on 13 Jul 10some managers at BP will like that quote
Implied in all this: Use your judgement. If a mistake will kill people, by all means overplan. If a mistake just means a glitch in your software, script, or something else that’s recoverable, then don’t bog yourself down over it. If you’re not a Toyota/BP/etc…
Jonas Schneider
on 13 Jul 10“It’s better to fix problems than prevent them.”
what a stupid quote.
Aaron
on 13 Jul 10“It’s better to fix problems than prevent them.”
OTOH, “an ounce of prevention is worth a pound of cure.”
Examples like vaccines come to mind. It’s cheaper & healthier to give everyone a vaccine than treat those that catch the disease.
Even in software development, it’s also good to prevent mistakes and bugs. E.g., Ruby on Rails HTML-escapes strings and includes CSRF protection by default to prevent common security vulnerabilities.
It really depends on the context and risks.
John Hyde
on 14 Jul 10This blog’s comments policy is a great example of the principle.
The 37ers could have forced us to register, or they could have installed a captcha gadget. Or a vapid-comment-detector widget.
But they didn’t. They just let us get on with it and deal with problems if they arise.
Cormac
on 14 Jul 10“Don’t meet the devil halfway” says what you mean better than “It’s better to fix problems than prevent them”, I think
Tom G
on 14 Jul 10Uhmmm… We’ve all heard the other platitudes: “A stitch in time saves nine” and “an ounce of prevention is worth a pound of cure”
Sometimes it makes sense to break a rule to cut through red tape and unnecessary bureaucracy, but to then take that concept as a license to blindly bounce around like a bull in a china factory is nonsense.
Beware or oversimplification and meaningless generalizations.
Frederick Northrop
on 14 Jul 10Actually, the saying is that it is “easier” to get forgiveness than for permission. This is true because once you have done the thing, it either worked out (no harm done) or there is no avoiding the consequence and bearing a grudge benefits nobody.
There are also countless situations in which by the time the problem is discovered, the situation cannot be saved. (the Mars shot in which an engineer [navigator?] used the wrong scale of measurement comes to mind)
That isn’t to say that things cannot be overly planned. One needs to shoot for enough planning and vision, but not ignore the fact that plans are just plans and that plans are made to be changed.
Jaydee
on 15 Jul 10The value of the idea is inversely proportional to the amount of risk involved in the potential problem.
This discussion is closed.