A corner-cutter's confession

February 9, 2023

Listen. I know I should have done this one better.

Yes, I didn't spend time improving the design before I went to work. I slotted my change right into the design that was already there. It fit okay! With some slight cruft, duplication, and clunky call chaining, but still! Don't look at me like that - even Kent Beck says "making the change easy" is the hard part, and my job is hard enough!

And yes, yes, I didn't write any tests first. I know it would have made my work easier, and refactoring less error-prone. And it would have helped me out in the design process. But I knew what I needed to do (mostly)! And I could just boot up the app and test it manually - it was familiar and convenient!

What's that? Did I write any tests after, then? Oh, no, I didn't do that either. I'd, uh, already tested all the use cases manually by the time I finished. It felt like a waste of time not to merge the work and move on. Yes, I have no cheap way of catching regressions now, I know, I know. Can we move on?

Because there's so much to move on to. I can't afford to feel like I'm slow. There's so many more things to do! Important things! Features! Stories! Bugs! Pull requests! The board is so long and the days are so short and I need to do my part.

...

I just... I know it's better to move slowly and deliberately. I know it's a matter of practice. And I know it relieves stress in the end.

But there's just so much code, so many loose threads, and so much work to do. I can only bear so much of it in my head.

Can you fault me for going along with the flow?