If you were given a choice between a tool which is perfectly suited for you but is very rarely used by people in your market and other one which is very commonly used but doesn’t suit you so fine which one would you prefer?
I know, I know, the question is pretty generic and the answer is “It depends.”
How about: VB.NET versus C# considering you know/like better VB.NET in the starting point?
Or: Scrum versus something crafted specifically for you by some consulting company?
It may be about: MS Project versus one of web-based project management tools which delivers better collaboration functionality?
The starting point for these questions was Jeff Atwood post about ugly American programmer where, by the way, he answers the first question:
“I gave up Visual Basic for C#, as painful as that was. These languages do exactly the same things – and the friction of choosing the minority language was severe. I found reams of code and answers in C# whenever I searched, and almost nothing at all in VB.NET. I spent so much time converting code into VB.NET and introducing new bugs and errors in the process, along with countless language-only forks. This eventually stopped making sense to me – as it would to any good programmer.”
Choosing a mainstream solution is a mixed blessing. Most of the time it isn’t perfect and definitely your possible influence on its development is non-existent. With niche tool you may get better functionality and if you have some luck you can encourage a vendor to add some features you need. On the other hand with so called industry-standard solutions you have guarantee of continuity – they don’t just disappear or something. And of course the most important reason is a level of support you can get. It’s not so important what the vendor is going to provide in the area – it’s all about a community gathered around the solution.
If you look for materials about Scrum you’ll find loads of content. On the other hand if you’re trying to learn about Microsoft Solution Framework version 3 (which covered pretty much the same area) it’s going to be more difficult. In the latter case community is significantly smaller and MSF isn’t sexy anymore so it doesn’t get any buzz these days.
For similar reasons you’ll find less quality stuff about Prince2 than about PMBoK, even though 10 years ago Prince2 was considered as one of leading project management methodologies. Now I sometimes feel like agile (Scrum and XP) and PMBoK were the only options out there basing just on volume of fresh content which appears in the web. Of course that’s completely and utterly false. There are a lot of other great methods, but the question is: how much support you’re going to get if you choose a niche solution? Would it be easy to train your people? Would it be easy to find answers for questions you’re going to have? What would drive authors of that stuff and would that be aligned in any way with your goals?
That’s not always about support exclusively. When I’m asked why people keep using MS Project (and keep telling all around what a crappy tool it is) my answer is simple: because all people around them use MS Project too. Their customers do. Their partners do too. So do their bosses. If people start using other tool they’re going to prepare msp files anyway and that’s going to be additional effort. Is there compensation for that effort?
Sometimes above problems are negligible. I guess 37signals doesn’t have any problems with support for Ruby on Rails since it’s practically their in-house solution. On the other hand they’re spending some time and money on development of the tool. If I had to choose a project management tool for my new team built from a scratch it wouldn’t be MS Project since we don’t plan many interactions with outside world. And what about programming languages you ask? Well, that’s not a question I’ve been able to answer for a few years already. Ask developers in my team. They’re decision-makers.
Now I don’t say everyone should follow the mainstream. I say that doing otherwise often bring some additional issues. Whether it’s worth the effort of not doing like Romans do or not? Everyone has to decide on their own.