Apr. 1st, 2014

jack: (Default)
In software development, you often have a deadline. Whether you acknowledge it or not, this is often a combination of requirements:

1. Complete project by X date
2. Complete project under X budget
3. Complete project with X features
4. Complete project so it works

And the universe decides that if something goes wrong, you can't meet ALL of those requirements, but you may be able to decide WHICH you're going to fail. An especially nice combination if you can arrange it is to get something which works as soon as possible, so if you have to stop suddenly half way through, you get the best 50% of the value, rather than 0% of the value.

What I realised is that the same logic often applied to smaller tasks I had to do. If there's an important phone call I'm scared of making, or an important email I need to write, I would hesitate, thinking "but I need to do X, Y, Z first". But then I realised, that led to never doing it at all. Doing it badly is SOMETIMES worse than not doing it at all, but normally, just giving it a go had no disasters and lots of benefits:

* At worst, nothing happened, nothing bad but being mildly embarrassed.
* Potential for unexpected success!
* Greater chance of finding out unexpected problems early
* Cultivating a habit of getting things done.