Release Drop
Posted: 4 years ago (2007-11-04 05:49:06 UTC ) / Updated: 2 years ago (2009-06-01 22:28:34 UTC )
Imported from WordPress
Originally posted on 2007-11-04 05:49:06
It's a great feeling when you're coding up a storm, building something you know is going to be excellent, getting the most vital functions written and stubbing out stuff you won't need until later. It's even better when you finish a big crucial section and you can bask in the glory for just a little while. Mmm...
And then there's that moment where you realize you'll have to test that sucker. And suddenly everything seems just a little less shiny-bright. Maybe you go back to writing a bit more since, y'know, that'll put off the testing a bit. But in the end, you know you'll have to test, and it casts a pall over your mood.
Because that's when the beautiful, golden glow of writing something really cool gives way to the drudgery of actually finding and fixing all those bugs you'd swear somebody else must have slipped in there while you weren't looking.
And an actual release to the users is even worse. That's when you have to write documentation. That's when you have to add comments. That's when you have to go back and write all that testing code you promised you'd do this time. That's when a whole bunch of users are going to pick it up, poke around at it, and the back of your mind knows, it just knows, that they're going to find a bunch of stuff to complain about.
A lot of development is, sadly, like that. But I've found one thing that really helps me get through it: test-driven development. Because when I get to that point where, ugh, I have to write a bunch of test cases and debug things and, and, and... It's easier if I can just hold my breath and type "rake test". Somehow it's easier to get started if I don't have to do much work to begin the debugging.
And hey, every so often a test just works. Not too often, but it will happen more often if you write the tests first... That's because if you write the tests beforehand, you have a better grip on what you're trying to get working. And, well, maybe it helps to know what test cases are actually likely to be checked ;-)
It focuses the mind, helps you get past release drop, looks good on a resume. Test-driven development. So why aren't you using it yet?
