I’m an unabashed technophile. I am constantly trolling places like Reddit, Youtube, Kickstarter and Twitter to learn about useful technology.
One thing I’m definitely opposed to, however, is embracing new technology simply because it’s new. Kickstarter is a great place to learn about new inventions that are probably going to be more in the never-really-be-ready-for-mass-market category, but you’ll find tremendous innovation and lots of “that’s pretty cool”. When adopting technologies for your business should always take a measured approach. Voice-Over-IP is a good example of a good, practical idea that will never, ever get to the carrier-grade quality we are used to with POTS (Plain Old Telephone Service). Hell, there is even a law in most states that a disconnected phone line must be able to dial 911. I say this as a consultant that has implemented many VOIP projects in my career.
As a developer, one of the things I get frustrated by is the constant framework evangelism you find these days, mostly in the javascript world. Angular, Node, Ember, JQuery, React, Backbone, etc, etc…Where does it end? How do you compare the value? What should I learn? Does it matter? I’m here to tell you that if you have a fundamental understanding of procedural and object-oriented programming you can quickly learn these tools if you need to. Younger programmers tend to get overwhelmed when looking at job descriptions that require mastery of tools that are barely even “production-ready”. I once had a phone-screen job interview that seemed like a decent fit for my skills but the job description said “10 years of Perl experience required”. At the time, Perl had only been in existence for less than 7 years so I asked about it in the interview. The gal said “Oh, well…we just need a senior Perl developer…don’t worry about the job requirements.” Not a terribly smart way to go, but they aren’t even in business anymore (no surprise).
To be fair, there are nuggets of brilliance in virtually all of these frameworks and tools. Like most software, the impetus for these tools is frustration with the current way of doing things and good-old-fashioned laziness. Laziness is one of Larry Wall’s (ironically, the dude who wrote Perl) Three Virtues of a GREAT Programmer. Problems arise when software tries to be all things to all people, commonly called cruft. (I know, I know…what year is it in your world, Jeff?) You see this a lot in Enterprise Software. Ironically, Salesforce has done a good job at being just a platform instead of tacking on a bunch of crap that helps you get deals. Which reminds me…I’ve used just about every decent CMS (Content Management System) you can name, and in fact I used to work for the company that invented the term. Content Management is such a great concept, but a virtually impossible problem to completely solve. The core server product is still, to this day, an amazing accomplishment. They did lose their way a bit when they tried to add the “milllion dollar feature” for every deal they were trying to score, which lead to a metric buttload of cruft.
Reminds me of a great line in City Slickers. Just do the one thing.
The moral of the story is this:
You can’t solve all of your technology problems by adopting new technologies and you shouldn’t replace your existing technology simply because it’s old.
There are many nuanced aspects to weighing these decisions and our company would be happy to help you evaluate your technology stack.