Death of a deadline
They say the life of a software engineer is a very stressful ride through a thick forest of unmet deadlines and eerie technical problems.
It is not always that bad... but, sometimes, it is even worse. Like yesterday.
I worked on implementing a set of new features. I took hardly any breaks during my coding hours, slaved away in the office, and even worked over the weekend to try and make up for some time.
A few weeks earlier, I genuinely thought that I would be able to complete my tasks within two weeks, and I therefore committed to having the new features implemented in that timeframe.
However, as I trudged along development, I stumbled into a couple of showstoppers, which forced me to take ``the long way around it'', rather than being able to take the shortcut I had hoped for.
When confronted with those blockers, I did exactly what a seasoned professional senior engineer would do: I banged my head on the keyboard in despair.
No, not really, but I did type with a bit more impetus than before, sort of pushing my way through the problem and coercing the good old bits into agreeing with my point of view.
So, to recap on the situation, I found myself:
- past the deadline
- with none of the features done
- with regression
You see, to implement the new features, I had to refactor the existing code. It was the logical thing to do. The new functionality would not have fit into the existing code nicely. It took courage to scrap the existing architecture and do some hardcore refactoring, but it was the Right Thing To Do(TM).
Of course, after refactoring, some tests showed regression, and I had to tune the refactoring to ensure that nothing would be broken. Needless to say, I did not complete the refactoring work until after the deadline.
I expected that a considerable amount of time would be required to actually develop the new functionality.
Surprisingly, as soon as I finished the refactoring work, all the pieces started to fall into place, almost by themselves.
Adding the new functionality turned out to be much easier than I had anticipated. It turned out to actually be a rewarding experience. A great sense of accomplishment and relief poured all over me.
Whether it was a stroke of genius or just sheer luck, I don't know. I know it does not always work out this way. Most of the time, one just keeps digging oneself into a deeper hole, while pressure and stress just keep growing.
But not this time. This time, I come out on top. Even if I am late for my deadline.
- Matteo Vescovi's blog
- Login to post comments