I have been accused of being a Microsoft fanboy which has probably become more true as the years go by.  Of course this is due in great part to the fact that developing for Microsoft technologies allows me to feed my family.  In truth though, despite my reservations about other platforms, I am pragmatic when it comes to recommending implementations for clients.  You should always take into account things like existing installed technologies, development team capabilities and ROI when determining the technologies that your solutions are based on.

The biggest danger of sticking with your favorite platform is the possibility of building a solution that is either going to increase your client’s cost of ownership or limit their capabilities going forward.  You have to take into account the availability of resources to develop and maintain the system.  If you can’t find people with the needed skills then you already have a significant risk because the people you can find will have increased salaries.  Another risk that will increase costs is if a platform either doesn’t have functionality that matches the business needs or doesn’t do them well.  Working around these deficiencies can drive a project deep into the red. 

Even I have to remind myself to back down the throttle when talking about my favorite technology or platform versus another.  It is easy to get caught up in these discussions.  It is just human nature.  What I am trying to do right now is come up with a set of questions that methodically determines the strengths and weaknesses of each option so we can match them to business needs.  This is what any good architect or project manager should do.  Approach your decision with analytics instead of ego and everyone will win.