If you're a web developer you might be in danger of becoming irrelevant. In a blog post by Dries Buytaert (creator of Drupal) in 2007 he stated, "The webmaster role that we used to know is dead." He wasn't exaggerating, and the trend has been continuing. Content Management Systems have shifted the landscape of web development for developers large and small. If you're behind the curve have a look at these ten ways how our role has changed. There's still time to adapt to a new paradigm.
1. Websites are more structured, and it's not up to you what that structure looks like.
Oh cool, you wrote your own MVC framework with a sweet set of tools to deploy websites that use it. You should hang that up on your fridge next to your narwhale doodles. When we were young bucks in college we were all starry eyed about the great software we were going to create. Everyone was going to use our software, after all, we're brilliant! No, stop, we're not. First the web became saturated with developers, but then something happened, a few truely brilliant software packages started emerging. These software packages are better than what you and I have written because they're the product of angel investing, the open source community, and multiple revisions of pier reviewed code by thousands of technical users. Your custom framework might be great, fantastic even, but it's probably too late. Unless your framework is accessible, easy to use, and has mass appeal, all you're doing is making it harder for people to collaborate with you. A quick look at my local job listings tells a story about your framework. People in my area are looking for people with experience in Ruby On Rails, Expression Engine, Drupal, Joomla, and Magento. Strangley, your framework wasn't listed.
2. You're not going to make as much money as a middleman.
Yes Mr. Derp, I'll have your website updated with that text change by tomorrow morning. That will be 30 minutes billed at $50 an hour as per our agreement. Wrong. That's not going down anymore. If you're still in this situation it's time to scramble to find a new business model. Modern content management systems are extremely friendly for end users. Even if your client is an idiot, if they can update a facebook page they can update their website. This isn't just at the small client level either. This scales all the way up to the enterprise level. You still get to make some money as a middle man, but it's going to take a more help desk like tone. Yes Mr. Derp, to insert the picture of Mr. Woofles just click on the insert picture button on the editing window.
3. Specializing in a language is no longer enough, choose your framework, and choose it well.
People who have been programming long enough know that the majority of programming involves solving the same boring problems with a new language every few years. Just look at the shear number of options there are as a server side language. Does it really matter all that much if Mr. Woofle's Doggy Treats shopping cart is written in C#, Ruby, or PHP? No, not really, and chances are good that if you can write it in one language you can learn to write it in another language pretty easily. The problem is that HR and hiring managers haven't figured this out. If you've been programming in Java for the past 2 years you're labled as a Java programmer unable to learn any other foreign programming language. Now hiring managers are going to lob content management systems on top of this. Having experience with CakePHP on your resume may have ruined your chance of an interview at that place using Joomla. I blame the industry's love for buzz words.
4. If you're reinventing the wheel, you're doing something wrong.
A side effect of the thriving open source community is that if there's a problem, there's a good chance it's already been solved. Do you need a blog? How about a contact form? How about something more complicated, like a way for your client to upload spreadsheets full of data? Done, done, and done. Modern content management systems and their thriving communities have effectively solved the majority of your nine to five job requests. You should be happy, this gives you more time for relaxing, watching Hulu, and finding problems that don't have innovative solutions yet.
5. I heard you like frameworks, so we put a framework in your framework, so you can work in a framework while working in your framework.
Technology stacks are starting to get pretty deep. When you decide on a new framework to learn, you need to learn that framework's way of getting things done. An example might be using Drupal to build a website with a Zen Subtheme (a CSS framework.) Maybe your agency isn't using Zen, maybe you're using grid960. It doesn't matter, there's effectively a framework in your framework, dawg.
6. Now more than ever, you're expected to be a designer and a programmer at the same time.
Some of us spent four years in school building compilers and solving discrete probability, others spent their school years learning about color palettes and the techniques of Picasso. Now we all have to do both. Not because it's realistic, but because some guy in a hiring office far far away decided that they're obviously the same thing. If you're a designer, it's becoming expected that you learn how to chop up your photoshop files, convert them into CSS, and roll them into an arcane templating framework with some light programming. If you're a programmer, you're expected to know how to open up Photoshop and whip up an amazing web 2.0 design with all of your years of PHP experience. Unfortunately this all doesn't make very much sense from the worker's perspective, and by nature someone stronger in one area will be weaker in the other. Constant education and practice are the only way to strengthen your value in this new landscape.
7. Business logic learned how to stay out of the presentation layer.
It took a while, but software has matured to a point where business logic is almost completely abstracted away from its presentation. This means stronger back end developers can merrily plug away at business logic, while those stronger at UI design can plug away at presentation without causing a file update conflict. A modified version of MVC has become the standard for web development. If you don't know what MVC (Model View Controller) is, it's time to brush up. MVC forms the basis of abstracting logic from presentation for a great many web development frameworks.
8. GIT over here and COMMIT to working together.
There's rumblings all over the Internet that SVN is going the way of the dodo to make room for a new peer to peer model of revision control. Every peer working on a GIT based project has a full copy of the project and its revisions on their workstation. If one node goes down it doesn't break the ability of others to keep working and committing because copies can be continuously merged together over and over in any order until the main repository is back up or replaced. This isn't a direct side effect of the explosion of content management systems, but part of its success is the way this style of working is being adopted by the open source community for all types of projects, web or otherwise.
9. There's a bigger emphasis on reusability on the design side.
You can create an eye popping web design, chop it up, and turn it into a theme in just two to three days. I can buy an eye popping web design and customize it to fit my data in four hours. Your design abilities have been devalued. Not because you aren't good, you're great! It's because from a business perspective it's a lot cheaper to flip and customize prefab themes. Since my word alone isn't enough, go ahead and try googling for premium wordpress themes. There's hundreds if not thousands, and they aren't just for wordpress. Unless you're working for a national company with a strong brand, there's less and less incentive for fresh creative. Slap on a logo and you're done.
10. We can work together as developers better than ever.
Being replaceable can be a good thing, it means that there's other people that know what you know. That means there's other people out there that you'll be able to get your geek on with in a more productive manner than ever. If you have a passion for Joomla, you can smoothly glide in and out of any Joomla project at any employer because there's a standard and well thought out framework to work in that doesn't change. Proprietary software will always have a place for niche clients, but for the majority of clients, things are becoming standardized. Spaghetti code and poor programmers will always exist, but their code has been partitioned away and at least forced to work in a few key ways that make reading it a little bit easier.
The Too Long; Did Not Read (TL;DNR) version
Content management systems are good. They standardize the process of creating websites, they let even idiots manage their own content, and there's no more need to recreate standard features like contact forms and image galleries. They help us work together better, and provide incredible value for everyone involved. If you don't use content management systems you're either misinformed or have some weird niche client that doesn't fit one. If you don't learn a content management system you might find yourself unmarketable.
Of course, there are a lot of ways that content management systems change the way we work. Some are good, some are bad, but it's undeniable that the landscape of web development is changing signifanctly. If I got something wrong, if you think there's a strong point I missed that you'd like to add, or if you just think I'm an idiot and disagree with me please post in the comments below.
Content Management System Resources
Drupal - This is my personal favorite. It's being widely adopted by state and federal government agencies, it's free, open source, and very friendly for end users. The learning curve as a developer can seem a little steep, but well worth it in my opinion. This very blog is powered by Drupal.
Wordpress - Even though wordpress began as a simple blogging platform it makes a solid content management system for most situations. Wordpress has an easy learning curve and it's easy to modify and extend.
Joomla - Drupal's biggest competitor for open source content management. This is another solid content management choice that can have a steep learning curve for developers.
Expression Engine - A commercial content management system. A big advantage to using commercial products is that they are consistently supported by their developers. Pricing ranges from $99 to $300 USD.
Magento - A content management system geared specifically for commerce.
Wikipedia - Yeah, there's no way I'm retyping this list of CMS and their specifications. If you're new to content management, or need something in your particular programming language this is a good place to start looking.