Wouldn’t it be great if everyone learnt from their mistakes? Well, I like to think I’m a glass half full sort of person, so I believe that people do learn from their mistakes. However, what happens when they don’t realise it was a mistake? How can they learn?
I’ve a story here of a mistake that has been made, but not recognised and I think I might be contributing to hiding that mistake. This is really tricky, as the consequences of letting someone see the full extent of their mistake is not going to be pleasant for anyone. We’re all supposed to be on the same side so shouldn’t we always try and help each other out? Isn’t tidying up after someone else the right thing to do? I’m sure it is, but if that stops them realising they made a mistake in the first place, then actually I’m the only person who suffers and those mistakes will keep being made and I’ll keep being asked to sort them out.
So, here’s the story, and I think it will be very familiar to many software companies. The software development backlog is growing and the board is becoming impatient that their ideas are not being realised quickly enough. They are tempted by an offer too good to be true; why not outsource the development? Fixed cost, plenty of people saying yes, and guaranteed good results or you don’t have to pay; what’s not to like? Don’t worry about those negative know-it-alls who caution against giving up control of how the software is written and the hidden costs of supporting the outsourced software for the next 5 years.
I’d like to say this story has a happy ending, and in a way I suppose it does. Of course, the outsourced software was terrible (as we said it would be) and the next 6 months were lost as a team of 5 people tried to bring it back in line and 2 of the original team quit the company after this. So instead of accepting the internal estimates of trusted experts with a track record of producing quality and being realistic, the words of the outsourced Johnny-come-lately were believed instead. As we saw previously the true cost of development was not considered. The actual costs were more and the end results below original expectations. It has only been the hard work and expertise of the team inheriting the outsourced software that has produced the eventual good results. They have dealt with the mistake and helped tidy up the mess. After this work, the software looks pretty good, and customer feedback is now very positive. So here’s the problem, the mistake isn’t recognised, the lesson isn’t learnt. Even worse is that the ends are now starting to justify the means which is only going to encourage more mistakes like this.
So what should have been done differently? Should we have left the product to rot, perhaps refused to touch it all and made it clear that every single piece of that outsourced software was wasted? Maybe, but is that really what a team does to each other?
Note: If’ you’d like some help learning from your mistakes, I can recommend this essay from Scott Berkun: http://www.scottberkun.com/essays/44-how-to-learn-from-your-mistakes/
You can also find lots more of these great essays in Scott’s book Mindfire: Big Ideas for Curious Minds