You too may suffer from Developaralysis. Be afraid. There is no cure.
I’m a victim of Developaralysis: the crippling sense that the software industry is evolving so fast that no one person can possibly keep up.
At least the mobile world has shrunk to an Android/iOS duopoly — although that hides crossover alternatives, like Xamarin or cross-platform HTML a la PhoneGap or Sencha — but just try figuring out where and how to deploy your back end. I’ve worked on systems deployed to Heroku, Amazon Web Services, Google App Engine, Google Compute Engine, and Parse…which just makes me feel bad that I know little about the guts of OpenStack, Force.com, Azure, AppFog, the many AWS services I’ve never actually used, et al.
Starting a basic website in 2014:
1. Install Node
2. Install Bower
3. Pick CSS framework
4. Pick responsive approach
47. Write some HTML
— I Am Devloper (@iamdevloper) October 2, 2014
Developers today face such a thronging armada of available options that we now use a plethora of tools which exist just to help us manage our lists of other tools: Bundler, Bower, CocoaPods, Pip, etc. Which are great! I wouldn’t want to live without them! But still. And then you start using those other tools, and half the time when you really get down into their weeds, you begin to realize that configuration isn’t quite enough, you actually want to rewrite them … just a little … or maybe replace them with another alternative …
The sad fact is that the sheer number and diversity of languages, tools, frameworks, and platforms available to developers today is incredibly daunting. Of course nobody wants to admit this. Everybody wants to pretend to be a master/mistress of all trades. But the truth is that we all suffer from the stigma of Developaralysis.
Even gathering the information required to make an informed decision is almost certainly counterproductive. If, before embarking on a project, you actually took the time to analyze all the possibilities, and then climbed the resulting learning curve, you’d promptly get beaten to market by some teenager using PHP and Swift with emoji variable names—
–but on the other hand, if you settle on Swift and PHP, then you live in constant terror that some ninja C#/Haskell programmer will wind up running rings around you in the same way that Paul Graham did with Lisp, back in the day:
When you choose technology, you have to ignore what other people are doing, and consider only what will work the best … In fact we did have a secret weapon … We were just able to develop software faster than anyone thought possible … We wrote our software in a weird AI language, with a bizarre syntax full of parentheses.
Hence: Developaralysis. Do we choose what we already know, because we can move now without crawling up a learning curve, and live in terror that someone somewhere else is doing it better, faster, more elegantly–and our skills will be obsolete and uncompetitive next year? Or do we expand what we know, because we love to learn and better tools are both more fun and a huge competitive advantage…at the expense of copious time, effort, and cognitive load?
Trick question! There’s no right answer. That’s why every month is Developaralysis Awareness Month. I’ll be sending out blinking kaleidoscopic ribbons for you all to wear, just as soon as I figure out which 3D printer, microcontroller, LED software, and drone OS to use. Don’t hold your breath.