« The Long Tomorrow : Michael R. Rose | The Attraction of Bus Exits » |
My software turned ten today.
I had mentioned that my software would turn ten this year to a coworker of mine, and he watched the date listed in the header of my oldest source code file like a hawk, or an egret, and sent out our traditional birthday cake image, edited with I imagine none other than good ol' Microsoft Paint, wishing the software a merry tenth birthday.
Ten!
It was November of 1996 when I first started design on the software, but December 18, 2006 is when the code touched disk:
{ Started : Wednesday December 18, 1996 by RIA }
My previous grand piece of software lasted a good eight years, but spent the last couple of those in mere maintenance mode. Not surprising, for software from the DOS days. Maintaining software for eight years teaches you a good thing or two about maintenance, though.
Surprisingly, lack of object orientation did not hurt that older piece of software terribly, though it would have helped a little.
Trying to build in fewer assumptions is what helps. That's a hard thing to do, because you will so often be told "don't worry about blah", "we'll never do blah", "I only ever need this to do blah", and for longer-running pieces of software, you will find that relying on those promises can ring awfully hollow.
Fewer assumptions makes the software slightly harder to build, though, but oh boy, does it ever help.
For my older piece of software from 18 years ago, I could have coded in all the fields and tables for our reporting software, and making hard reports. Very easy. Hard to keep relevant.
Fortunately, at that time, they were shooting for something slightly more generic, and that's what I had a penchant for and some skill with. I read all the definitions out of files, allowed editing on-screen, etc.
When we started adding lots of modules, the investment in the generic reading-out-of-files technique really helped. For your initial investment, you spend time adding features, instead of adding reports. For the myriad "could we move that to the right" requests: [ENTER] [CURSOR RIGHT] [ENTER]
Where it starts to pay off even more is when you start dealing with multiple clients with different needs. Maintaining multiple versions of a program is a nightmare. Multiple versions of directive and report files... much less so.
Perhaps avoiding that was a formative experience at my first job. I don't know whether the company that wrote the software had a lot of clients, but the myriad versions they produced behaved differently, and the support utilities I wrote to help maintain the data the software made ended up with some disastrous results on a couple of these versions (10,000 copies of Die Hard in stock because the SKU was not reliably blank on some versions).
Back to the present piece of software, regarding the ten-year-old status, we discussed whether we should laugh or cry about it being ten years old.
On the cry side, it means that we didn't just manage to dump it on somebody with a lot of capital before all the bubbles burst. Are there regrets? Oh, sure. A lot of "if-I-knew-then-what-I-know-now", but tempered with the realization that if I had taken that extra time, perhaps we would have never gotten to market.
On the laugh side, it's not often that software gets to be ten years old, to still be worked on, to still be relevant. It means we got something right in the first place. We have also, strangely, outlasted a few silver bullets we had considered in past.
So, Ian at work actually took the group of us out for tea/coffee/hot chocolate for a little celebration.
Happy Birthday, my little program. Happy Birthday.
Happy Birthday, little program, and may you look forward to many more cycles. :)
My program thanks you for the kind wishes :)
What sort of present do you get for a 10-year-old program, anyhow?
Congrats on the 10 year anniversary for sure. Regardless of the warts the program may have, it is indeed 10 years old, successful, and relevant.
;)
Thanks for the uncharacteristically kind words *grin* ;)
It still feels bizarrely old for a program. Then again, I’ve got nothing on Mavis Beacon Teaches Typing. They don’t show the version number very large on their boxes any more, it seems. They’re up to version seventeen… and it still hasn’t been unseated by upstarts like Typing Of The Dead (part typing tutor, part zombie-killing flick).