Drupal Considered Dangerous for Startups?

"Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest.

The familiar software project, at least as seen by the nontechnical manager, has something of this character; it is usually innocent and straightforward, but is capable of becoming a monster of missed schedules, blown budgets, and flawed products. So we hear desperate cries for a silver bullet--something to make software costs drop as rapidly as computer hardware costs do.

But, as we look to the horizon of a decade hence, we see no silver bullet."

- Fred Brooks, from No Silver Bullet: Essence and Accidents of Software Engineering (circa 1987)

The Blame Game

Peter Van Dijck mentions that a mysterious man by the name of "Mike" asserts on some mailing list that he "can think of at least 5 startups that were seriously hurt by using Drupal”. That hit close to home: I work for a startup that is using drupal. Is my startup in danger of failing? Clearly, the answer is yes. To quote Captain Obvious,

"Launching a web startup is inherently dangerous business; the success rate is depressing at best. The odds are that you will fail -- and fail miserably at that. People may even laugh at your startup for years to come."

Is my startup in danger because we are using Drupal? The answer is no. Unless me and the other developers didn't know how to work with drupal (and we certainly do). On the otherhand, there are about 100 other factors that might lead to us failing, all of which keep me up at night:

  1. The idea sucks to begin with
  2. Failure to be objective with ourselves
  3. Failure to build a critical mass after launch
  4. Inability to capitalize on our users, even if we build critical mass
  5. Setting unrealistic goals
  6. Incompetence in any area of the business, be it development, leadership, talent, marketing, legal, or financial
  7. Going broke
  8. Failure to accurately predict the future
  9. Getting crushed by an 800 pound gorilla
  10. Breakdown in communication between developers, marketers, business types, and investors.
  11. Failure to differentiate ourselves from competiting services
  12. The product is unsexy, and unneeded to begin with.

These factors are unchanging no matter what technology you use. Would these unnamed startups that allegedly failed on account of drupal succeeded had only they used RoR, Java, Plone, Coldfusion, or build something home grown? I'd bet everything in my bank account that they would have still failed.

Albeit, the author never provided any details as to what specific limitations drupal imposed, or what tasks proved to be impossible. But that is telling in itself, isn't it?

***

Had it not been for....

I remember reading in high school psychology that people have a tendency to blame failure on outside forces, and attribute success to their own brilliance. Its so much easier to blame the tools, than to acknowledge one's own lack of planning, and craftsmanship.

Regardless of my bias, I think drupal was the scapegoat. Even at my startup, Drupal gets scapegoated. That's when I politely remind them that, "Drupal doesn't make it difficult to implement curved corners, and maintain total flexibility, and maintainability in our design. Its web browsers lack of support for CSS-3 makes that difficult." Then they'll ask, "So, what if we built everything in Flash, wouldn't then it be easy to have those curvy corners?". I reply, "yes, but then everything else becomes difficult, not to mention the fact that we'll be invisible to search engines." 

Luckily, my superiors listen. I can't imagine what the consequences would be if non-techies were making the technology decisions (a common reason for failure, mind you).

***

All I wanted to do...

On telling statement on the mailing list from somone "hurt" by drupal was:

All I wanted to do was nice clean simple neat social networking [for a niche]. Without a  whole lot of cost and I couldn't do it in Drupal.  I personally am waiting for a Ruby solution for my needs.

It seems that those who don't bother with technical details always think something should be simple to implement. That's probably why these types tend to be so antagonistic towards programmers.

My guess is that the author of this statement quickly found out that stock OG, buddylists, location+user search and profiles didn't exactly fit their vision. So where was the authors mistake? The assumption that it was possible to turn their vision into a reality at low cost.

On antoher note, RoR will likely turn out to be even more expensive for the author, since at the very least drupal offers some good foundations (e.g. searching by zipcode, connecting users with other users, inboxes, notifcations) that can be customized and rewritten to fit the needs. Trust me, those foundations that didn't quite work are going to get VERY expensive using from scratch ruby.

Call me arrogant, but its magical thinking to assume that you can do exactly what you want at a low cost. Trust me, the web would be 50 times cooler if  there was something that made it easy to turn someone's vision into reality. I see no evidence that anything is easy on the web. Just look around at all of the cluncky crap... this is evidence that overall, the technology at large is primitive.

If you want a solution, take 37 signals (the inventors of ruby on rails) advice:

There's a myth that goes like this: we can launch on time, on budget, and on scope. It almost never happens and when it does quality often suffers.

If you can't fit everything in within the time and budget allotted then don't expand the time and budget. Instead, pull back the scope. There's always time to add stuff later — later is eternal, now is fleeting.

Launching something great that's a little smaller in scope than planned is better than launching something mediocre and full of holes because you had to hit some magical time, budget, and scope window. Leave the magic to Houdini. You've got a real business to run and a real product to deliver.