but isn't this issue no different than what we all have experienced for some time now, no matter the tech stack, framework, tools, etc we work with? I know for me i have been frustrated with this issue ever since the days of java bloat, oracle nightmare APIs, javascript, browser incompatibility, etc. I'm sure you have your own nightmare stories, but the point is we've all been dealing with this for years, and it boils down to a few simple things:
- we are drawn to new tech, and we're addicted to it. why? because a) we're nerds and this stuff is cool; b) we avoid reinventing the wheel and rewriting takes longer; c) if we hear it's cutting edge then we have to jump on it to keep up with the joneses; and d) sometimes -- and this is very rare IMHO -- it actually does do something truly innovative
- integration has become a nightmare. there are too many frameworks, disparate apps, technologies etc. and the chances of all of them working together out of the box has become almost nil. anyone remember what a challenge it was to do a code port to a new platform? i do. we recompiled Pro*C from an old sun box on our new AIX system. well, that was quite a challenge, and it required regression testing every single scenario in the app. huuuuge effort for the entire project. but think about it; that was just two moving parts -- the OS and a language. imagine if that had been 20, or how bout 30? and if that is not risky enough, imagine if each one of those parts was individually changing versions every, oh i dunno, 6 months? i think you see the problem. just as a thought experiment, do a google search for latest tech and pick the first dozen things you see, then pick any two of those. now google those two and the word "problem" and just look how many posts come back. convinced? well, any CM person worth their salt knows how bad this has become. and sadly a lot of them have just kind of given up fighting against the tech addiction of us devs. but when your system is constantly broken, constantly has recurring bugs, is unstable and needs you to baby it and run to the rescue all the time cos it needs yay another "critical" update, just remember that CM was right. integration has become a nightmare.
so what is the answer? it's simple. just say no. hold back. do not jump at the new technology, be skeptical. favor system stability over new tech, tell your boss about risk, hire a CM person who will not let you release some wiz-bang new JS library into prod until the ENTIRE affected scope has been tested. don't know what that means? well, hire a tester who has worked on an actual legit project, with proper Process, and tell your project management you want everything you do to go through testing before getting pushed to prod. it's really that simple. you either a) go fast and furious, imagining you're vin diesel (meanwhile all you're really doing is driving 120 MPH but zigzagging all over the place), or you b) think like an engineer and be mature, conservative, deliberate, and smart about things. and yes, this means -- gasp -- progress might be slower and won't be as sexy. but unless you are doing some snapchat project that, in the scheme of things really does not matter if it breaks, this is probably the way you should go. so get your sharepoint 2003 up and running, then mess with it only when it is truly broken or needs an enhancement. and when they scoff at you for not going to the cloud, ask them to tell you ONE specific user requirement that absolutely could NOT be done without the cloud, and ask them sarcastically how on earth we ever landed on the moon without it.