The technology industry, by and large, is inhabited by early adopters. It’s how most of us got here, after all. You learn to work with “high-tech” equipment by doing it and you do it because you want to play with the latest shiny new toys.
But the latest, of course, is also the least stable. The most likely to have problems. The biggest risk.
Staying on top of the latest-and-greatest tech works out well on your own time, at least for those of us who like to tinker and don’t mind doing a bit of troubleshooting when the inevitable problems arise. As a professional, though, that’s rarely what’s best for clients.
On the other hand, stagnation isn’t good for anyone. Newer technology is needed to take advantage of the improved tools and techniques which are constantly being developed. Fifty-year-old mainframes running code in languages just as old are not a strong target for new development today, no matter how stable they may be.
This creates a constant tension between the desire to make use of the new and the need to retain the reliability of the not-so-new. It’s a tricky balance to get right and I see a lot of software developers who give in to the lure of the latest version, only to get burned when it crashes.
I even succumbed recently myself…
About two months ago, I was debating with myself whether to clean up the web application framework that has grown up out of several projects I’ve done and continue using it or to switch over to an existing framework. (I had previously looked at the major existing frameworks and found them wanting, but I make a habit of checking in on them once or twice a year to see if either they or I have changed enough that I’d want to use them.) As it turned out, I found that there was a new framework in town, created by a well-known developer with experience in such things, which avoided many of the pitfalls of the existing frameworks, so I decided to pitch in and help out with development and debugging.
It turned out to be much less complete than I had initially believed and, a month later - practically to the day - it pretty much disappeared.
During the time I was initially evaluating it, I had also been discussing a project with a potential new client and had mentioned it to her. She also thought it sounded great and was very interested in having me base her project on this new framework. Fortunately for me, the project ultimately didn’t happen, because, if I had committed myself to build it based on this shiny new framework, I would not have been able to do so without having to invest far more work than expected into completing the framework first.
How do you prefer to maintain a balance between the latest-and-greatest and the tried-and-true? Have you ever been bitten by this preference?