I'm a web developer. I feel like I'm not living up to my potential, not getting the opportunity to apply my abilities, and drifting into a career dead end—and it's bumming me out.
I've been doing this professionally for about ten years, at a variety of companies. I'm pretty good. (I do LAMP and jQuery stuff.)
Two things have been bothering me:
1. I want to build great sites. And I know I can. But the assembly-line model of conventional web shops does not produce great sites.
Great works are the product of careful design, continual refinement, and multiple revisions and rewrites. No
desktop software company expects to get everything 100% perfect on the first draft—that's ludicrous. You're lucky if the first draft get things
85% right.
Leonardo didn't crap out the Mona Lisa fully formed. He did studies and sketches—probably lots of them. Some didn't work, and were aborted or discarded. Some had the kernel of a good idea, which was refined and elaborated upon in successive drafts. Eventually, he figured out the problems—and solutions—well enough to execute his masterpiece.
And yet, in the world of web development, that 85% first draft usually ends up being the final product. If it more-or-less works on the outside, no one cares that it's a pile of kludges under the hood, destined to become an unmaintainable mess. It passes the tire-kicking test, so let's bill the client and move on to the next project.
I'm not saying that my first attempts are useless crap—they aren't. But they could be
so much better. I know I'll never reach that mythical 100%, but I'd like to at least have the chance to
try for 98% or 99%. Being forced to settle for 85% drives me crazy.
It doesn't help that web development, as I've experienced it, tends to be a rather haphazard process. Requirements change midstream. Things get shoehorned in at the last minute. Features get added because they placate the client, not because they're good for the project. Expediency trumps long-term integrity. Non-technical folks make decisions that have technical consequences. And so every project becomes a
big ball of mud.
2. It seems like custom code has become increasingly unfashionable these last few years. Everyone wants Wordpress (or Joomla, or Drupal). And I've noticed, with some alarm, that people who barely know how to program are now billing themselves—and getting hired—as "web developers". So if you can cobble together a few flaky, off-the-shelf Wordpress plugins, and write a few lines of code that you don't even really understand, you're a web developer?
But I digress. These CMS platforms are popular for a reason, and they have their place in the world. That's fine. Heck, I use Wordpress myself.
But this isn't the kind of web development that
I want to do. There's no challenge to it. It's certainly not advancing my skills—if anything, it's a step or two backward. It makes me feel like one arm is tied behind my back—and it makes me really nervous to think that I'm standing still (or even sliding backward) while the rest of the world is surging ahead. I started a new job as a "PHP Developer" three months ago, and I've barely written any code since I've been there. Where is that going to leave me in five years? In ten?
(As a freelancer, I found a reasonably brisk market for custom Wordpress
plugins, but that's still [usually] pretty basic stuff.)
I want to be
writing the Wordpresses of the world—or similarly rich, dynamic, custom codebases. That could mean working on a packaged software product, or working to continually refine and expand XYZSite.com.
To say all of this much more succinctly: I guess I yearn to be involved in something that's more "Real Software Development", and less "slapping a few scripts together to create an interactive marketing brochure". I have the chops to do it, but I have no idea where those jobs even
are, let alone how to get them. Help? These jobs
do exist
somewhere, right? Obviously, Twitter and Facebook and Digg and Mint.com and Etsy and so on aren't running on off-the-shelf software. How do I get a job building stuff like
that?
Also:
"It doesn't help that web development, as I've experienced it, tends to be a rather haphazard process. Requirements change midstream. Things get shoehorned in at the last minute. Features get added because they placate the client, not because they're good for the project. Expediency trumps long-term integrity. Non-technical folks make decisions that have technical consequences. And so every project becomes a big ball of mud."
That happens everywhere, to some degree or another, on web products and otherwise.
posted by tylerkaraszewski at 7:15 PM on February 14, 2011 [2 favorites]