So we did the last bit of wrap-up work for the school project today. …Eh.
The thing is, you see, there was this feature for which I thought two days would be enough time for an implementation. It was a feature I had already said we would likely be able to deliver on time, so the expectation was set. Too late it was when I came to the realization that we wouldn’t very neatly be able to meet that. Well, actually, we sort of could, but it wouldn’t be pretty.
When you start out on a one-time, linear-built project, you have these great ideas, fantasies, dreams about Just Doing It Right. You’ll build up the entire thing in your head, perfectly. Robust yet flexible. Elegant and clear. Every keystroke deliberate, calculated, inspired.
But then you want to do all that in two days while still having some free time. You stumble, hustle towards a quick solution. And it works! It also is the opposite of perfect. You implement another part of the feature, change things up a little, and it all comes crashing down. You patch it up, “one-line fix”, pray the bugs away. Continuation to repetition, and you only barely grind your way ahead.
git add . && git commit -m "fixed stuff"`. Sir, madam, spaghetti’s served.