I’ve recently had the pleasure of being involved in the aftermath of a penetration test on a fairly low-key web based application (it was government sponsored; and they quite rightly wanted to test the application for vulnerabilities) during the trial phase and subsequently trying to deal with the recommendations. Some of the previous penetration tests that we’ve undergone seemed quite amateurish in comparison to this one; the disclosures, where appropriate, were very detailed and comprehensive.
The unexamined life is not worth living - Socrates via Plato.
Everyone has a gut feeling about things; we seem to be hard wired to make snap judgements about events and things. Evolutionary biologists would probably say that this harks back to when we were hunter-gatherers and had to rapidly make a judgement as to whether something was a threat or not.
It’s a similar story every time; you bootstrap a product or start a project and you’re optimistic that this time you’ll be doing it right; you’ve learnt the lessons of previous failed projects that you’ve been involved in and you’re convinced that this time it will all run smoothly and things will turn out swimmingly.
Failing quickly is a popular opinion especially when it comes to start-ups. If you fail quickly you won’t have spent much time or burnt much money in failure. For me though, the key lesson is not to fail quickly or fail often, but to understand when to pull the plug and stop throwing good money after bad. The escalation of commitment in something is precisely the behaviour that failing quicker is trying to avoid.
It’s very easy to get in your own way. You have the vision, you know what you need to execute on that vision. However, it’s too much work for you to handle alone, so it’s up to your team to deliver on that. You’re going to be quite frustrated at times and believe that you’re better placed to deliver certain aspects of it. So you opt to get involved at the coal-face and handle certain parts of the deliverable yourself. Is it because you want something interesting to do, want to retain your technical edge or is it because you don’t trust your team.