Here begins a series of articles on how best to 1) decide on a CMS and 2) manage its deployment & management with an eye towards total cost of ownership.
Now, before you WordPress zealots get all over me for that first statement, realize that I'm speaking in relative terms, and not knocking the product -- WordPress is plenty flexible, but if you plan to implement a web application which has any amount of sophistication, Drupal is often the better choice, but not always! Depending on the level and nature of the sophistication, you might very well do better to build the thing from the ground up. Also realize that there are dozens of other viable choices, I'm just doing my best to keep this article narrow in scope and relevant to as many people as possible and keep it to a reasonable length, and many clients I've encountered land at Drupal vs. WordPress.
Here is the important takeaway: No matter which CMS platform you decide to use, you must learn its capabilities and leverage them -- too many people and businesses are attracted to the free price tag and then wind up spending more money over the years fighting against the tool than it would have cost to build your custom web application from scratch. A small investment in the discovery process before you make your decision will pay off for years. Neglecting this discovery process (and not being honest with yourself about what you'll want your web site to do 6 months from now) will invariably cost you much more over time. If you are going to design your site's featureset from the ground up, you may as well build from the ground up. It requires a bit of discipline to do the research up front and decide where you are willing to compromise and where you aren't, and how much development cost (and ongoing maintenance cost) you are willing to bear in order to get your must-haves.
Decide on a CMS based on its price tag and a vague notion of what it does, and then design your web application featureset starting with a blank whiteboard and little knowledge of the capabilities of your CMS and its related modules/plug-ins. Each plugin you find which seems like it provides what you need will really only give you some percentage of the features you've dreamed up, and I promise that it will not do any of it in exactly the way that you have envisioned. Trust me, "Ok this plugin is great, but we just need to move this part over to the left and include a couple other data points" does two things: 1) Incurs potentially significant development costs with regard to reverse-engineering someone else's work to add your new features. 2) You have just taken ownership of your customized version of this plugin, and when the original developer makes updates, you won't be able to use them without re-implementing your custom features and regression testing to make sure their updates haven't broken your custom work. Now -- Drupal is built with an extremely modular architecture which affords this scenario to a certain extent (see this lovely explanation of hooks), and there are pathways to making your additions & changes outside of the actual plugin, so you can still safely apply future updates with much less chance of breaking your whole site. (And again, not that you can't achieve this goal with WordPress, you'll just need a real ninja of a developer, and they will have to perform some acrobatics to do this in any meaningfully standards-based way.)
"I just need a blog and an event calendar, and don't want to spend a ton of money on custom development". Therefore you pick a CMS which advertises exactly these features, maybe spend a few bucks on a pretty theme for it, hire your nerdy nephew to install and configure it and you are off to the races for less than, say, $500. Sounds like a win!
However, we are humans, and also (lets face it) opportunistic & enterprising. We want more. This didn't cost much, so maybe we'll try getting some more value out of it -- hey, let's integrate social media into the site. The whiteboard comes out, and CEO draws wireframes with social icons here & there, and every page needs them except for a few, and every blog post needs social sharing links as well as static links to our social destinations. You find a half-dozen plugins that all do this, but none of them do it quite the way your CEO said she needs it. I bet this is starting to sound familiar. Suddenly it becomes personal "Hey dude, I thought you told me this CMS could do anything! I just want some social integration, and now you tell me it will cost more than we spent on the whole site to stick 4 little icons in a few places?"
And just wait until she decides that for the event next month, you'll need to implement online registration and payments....
Stay tuned for Part 2, in which we'll examine the right ways to cost out & implement a CMS.