I came across and interesting article – Fear and Loathing in Software Development. The author starts with the idea that a good API will be very difficult to change because it becomes entrenched. After that, the author discusses a scenario where he did not have a proper test environment, and a mistake could bring down a school’s Active Directory. Ultimately, the project failed due to the fear of breaking anything during the development process. The scenario is interesting, and I can understand how this fear could doom a project. Like the author, I would spend way too much time checking and rechecking everything. There is another scenario, however, that the author did not mention.
Fear of failure can absolutely kill innovation and make software development difficult and stressful. Imagine a scenario where a new innovation is proposed. It is estimated that it will take 4 months to complete, and the performance gains could be huge. The only problem is that it’s never been done before, so there is a very real chance it will not work. If development proceeds but the team is forced to schedule only one confirmation test at the end, it will make for a project likely to fail. Even with a test environment, the team has one chance to get it right. If the single test does not show a huge improvement, the project is considered a failure and scrapped. This happens all the time, and it always stifles innovation. Why propose something new if you have to be right all the time?
Innovation does not proceed on a schedule. To maintain a culture of innovation, occasional failure must be allowed – even encouraged! As long as you learn from your mistakes and move on and get better, the team and the company will be better off.
If you don’t fail periodically, you are not learning and growing…