Abstract: We cannot learn from failures unless we can study them.
We all fail
Every day, failure after another in a seemingly never-ending stream of misery and despair, year after year. As experience gathers, we learn to ignore our own failures and focus on the failures of others. Some gain that skill as early as comprehensive school, while others make a conscious effort to stifle that urge. Buddha and Jesus both said something about that, I’m sure.
However harmful to individuals, organizations, even the whole species, having failure as a concept means it is something we can use as means to greater wisdom. But it has to be applied wilfully.
Now, of course, moving smoothly to the issue of software engineering, where we fail even more than the average, but where we, as a community, do not learn. Individuals do, but then they are either fired or promoted or retire. Bottom line is that new people hardly ever get anything useful from old people.
What to do?
Those who fail should do it publically and loudly; those who haven’t failed yet have not done anything yet, so they should study the earlier failures. Academics should use the failures and the occasional rare successes to analyze, synthesize and theorize.
Both the data and the academics’ results should be public and so easy to find that any new architect or developer will easily find all the previous failures and successes. Categorized, indexed, tagged, numbered and cross-referenced. Perhaps an idea for a web site? Hint: smegups.com is free. The problem with this is that people value their reputation and think that any small mistakes, if admitted, will be permanent smudges in it.
So… what’s your point?
Fail with pride!