I struggle with this question quite often – how long will it take me to design an end-to-end, bulletproof, final solution?
I don’t have an answer for this, I wish I did, but I don’t – sometimes I can design solutions quickly based on what I know of the platform, other times I’m stymied and I don’t know.
Is it because I don’t know what I’m doing?
Is it because I don’t want to commit to how long it’s going to take?
I can design on the fly as I’m cranking out code, but I know whenever I finish, I’m going to have to go back and rethink what I’ve done because invariably there is something I missed while I was pounding on keys that I omitted (I’m looking at you reconnection logic).
Today, I spent an hour designing a solution to a problem that has been plaguing me for two months. I sat back, and typed it out in Notepad – wrote out the scenarios and kept building on it.
It took me an hour, an hour I’d been avoiding and if I had started coding, I would have missed something.
So what was I waiting for?