Spent unproductive hours debugging issues that should have taken less time. Why?
- I implemented something without experimenting enough, based on dodgy documentation (in fact no good documentation is available).
- An oversight in my analysis / design. I got away with a small fix but sometimes this can be costly.
- Didn't check if my code ran on all environments it was targeted at. For example, I introduced a dependency on OpenSSL without verifying if it can be fulfilled everywhere.
#1 is easy to address. Run more small experiments as a habit while building software. I do blame the dodgy doc too. I eventually ran the experiments and it took some effort to be honest.
#3 should be done better as a habit. Listing assumptions and environment requirements explicitly while making them should be a good start.
#2 was disappointing because I pride myself on design thinking. It was a small detail that I missed through oversight. The way to catch this early would be to deliberately list all preconditions.
Read more!