As a developer, nothing inspires enthusiasm quite like a greenfield project. This is my opportunity to learn from the mistakes of the past and really deliver something exceptional. Unshackled from legacy code, outdated methodologies, and inefficient processes, this project will be talked about in blog posts and conferences for years to come.
Yes, I can see it now — swift on the backend because Java, C#, and PHP have had their day. On the front end, I hear that TypeScript, WebPack, React, Redux, JSX, AMD, Browserify, Node, Flow, Ramda, Fetch, Babel, Flummox, Alt, Fluxible are so hot right now, and I fully intend to bask in that hotness. For persistence, of course, I’ll be using NoSQL. And everything will be a microservice.
This is going to be so glorious.
So, all I need to do is get the various compilers, transpilers, package managers, IDEs, and plugins installed to get my new stack working. I lay out each requirement in great detail in a help desk ticket so the IT guys can update my SOE with the tools I need. Oh, and I’ll need some VMs and a new database server configured.
After a week, my ticket is still unacknowledged.
After two weeks, I have been politely informed that such changes to the SOE will require at least several months of investigation, testing, and documentation before it can be rolled out on the network.
Are you %$@*ing kidding me? These clowns in IT still list Microsoft Word as a primary skill on their resume, and they are the gatekeepers of technological progress? How am I supposed to adopt best practices and new technologies when these are the people who decide what tools I get to use? I have worked for Fortune 500 companies, I have delivered talks in internationally renowned conferences, I have patents, I have written books, I manage well known open source projects, and these password resetters are going to stand in my way?
Just how does this company make money? Everywhere I turn, I run into a brick wall. How is anyone supposed to do their job with so many ridiculous processes and meaningless corporate rituals? Surely one day someone is going to start questioning why I am not delivering at 100%. Or even worse, one day someone will work out that I am actually not as smart as I need to be to do this job at 100%.
This can’t go on forever.
It turns out this is actually how the game is played. No one really knows what they're doing, but it turns out that’s OK as long as no one ever admits it.
I’m not curing cancer. I’m not building self-driving cars. I’m not uncovering that elusive subatomic particle that will redefine mankind's understanding physics.
For this meek developer, success is just about being slightly less clueless than the next guy. I used to live in fear of a rock star developer being hired and making me look like the ignorant fool that I was. Now I understand that the odds of a rock star developer sitting in the cubicle next to me are about as high as an actual rock star moving in next door. I can’t rule out the possibility, but I have come to accept that actual rock stars live in big mansions in posh suburbs far away from my humble home, and rockstar developers have high paying jobs in companies that my grandmother has heard of, far away from my humble cubicle.
I do an imperfect job in an unoptimized environment solving the same problems everyone else is trying to solve. T.I.E. — This is Enterprise.