How would you counter the following argument for developing in Rails

So, you have a solid idea of what you want to accomplish. You know that
by using Ruby on Rails and the core engines/plugins that will help
manage your project, you will save your company money, time, and have a
full test suite in place to counter development hitches.

Before you are able to provide a complete proposal, a manager states in
an email:

.. we strongly encourage the use of Microsoft IIS and using a product in
the .NET family for the code base..

Given what you know about Ruby and Ruby on Rails, its ability to use
LDAP, and that it can still function within a windows shop environment,
how would you counter this argument? ASP.NET and ASP.NET MVC - I can't
stand them. I refuse to code in them.

How would you approach a rebuttal on this topic?

So, you have a solid idea of what you want to accomplish. You know that
by using Ruby on Rails and the core engines/plugins that will help
manage your project, you will save your company money, time, and have a
full test suite in place to counter development hitches.

Before you are able to provide a complete proposal, a manager states in
an email:

.. we strongly encourage the use of Microsoft IIS and using a product in
the .NET family for the code base..

Given what you know about Ruby and Ruby on Rails, its ability to use
LDAP, and that it can still function within a windows shop environment,
how would you counter this argument? ASP.NET and ASP.NET MVC - I can't
stand them. I refuse to code in them.

How would you approach a rebuttal on this topic?

I don't think there is anything to counter there, until they explain why they prefer .net

Fred

I'd ask a couple of questions:
(1) Why do they want to use .NET?
(2) How much extra are they willing to pay in terms of developer hours and time to market to use such technologies

I understand why managers might want to standardize on a particular stack - especially given the training and support costs of a polyglot shop. I find myself coding in Ruby, Groovy, Java, C#, ColdFusion, PHP and Scala for different projects/clients. These days my "go to" language is usually Ruby (Groovy for Java shops where I need to train up the in-house team in the new language - they often do better using Grails as they already know Spring and Hibernate). That said, it's reasonable for a manager to express a technology preference and it's also reasonable for you to ask why they want it and how much extra they're willing to pay.

I've often given two estimates to a client for developing something in (say) Rails/JRuby vs pure Java with Struts or whatever their fave framework is. Usually I get to deliver in Ruby, sometimes I compromise on Spring Roo (a RAD tool for pure Java projects), occasionally they decide to do the job in Java - at which time I usually decline the project. I just can't justify building web projects in Java at any rate. The money is nice, but the cost to your soul is irreparable :slight_smile:

That said, even though I haven't coded in the .net world for years, I hear Microsoft MVC isn't as horrible as .net used to be, some people are now using git instead of TFS, and I've spoken to some very sharp people both inside and outside of Microsoft that argue F# is better than Scala in some of the ways that C# (at a pure language level) is better than Java, so if someone was willing to buy me VS and pay me to do an F# project, I'd probably give it a shot!

Best Wishes,
Peter

So, you have a solid idea of what you want to accomplish. You know that
by using Ruby on Rails and the core engines/plugins that will help
manage your project, you will save your company money, time, and have a
full test suite in place to counter development hitches.

Before you are able to provide a complete proposal, a manager states in
an email:

.. we strongly encourage the use of Microsoft IIS and using a product in
the .NET family for the code base..

Given what you know about Ruby and Ruby on Rails, its ability to use
LDAP, and that it can still function within a windows shop environment,
how would you counter this argument? ASP.NET and ASP.NET MVC - I can't
stand them. I refuse to code in them.

How would you approach a rebuttal on this topic?

IMHO you will never win with a technical rebuttal. It may well be that there's a corporate mandate or some other reason. Everyone jokes that "no one ever got fired for picking IBM/Microsoft" and while we agree that's a bad reason to pick them, it doesn't make it invalid (from their point of view).

What has worked for me is to put it all in terms of money, budget, and ROI. Run the numbers. If Ruby/Rails results in a quicker/cheaper implementation than .NET they should see the light. If they still refuse, they have other reasons and IMHO aren't likely to change their mind.

Good luck!

So, you have a solid idea of what you want to accomplish. You know that

by using Ruby on Rails and the core engines/plugins that will help

manage your project, you will save your company money, time, and have a

full test suite in place to counter development hitches.

Before you are able to provide a complete proposal, a manager states in

an email:

… we strongly encourage the use of Microsoft IIS and using a product in

the .NET family for the code base…

Given what you know about Ruby and Ruby on Rails, its ability to use

LDAP, and that it can still function within a windows shop environment,

how would you counter this argument? ASP.NET and ASP.NET MVC - I can’t

stand them. I refuse to code in them.

How would you approach a rebuttal on this topic?

What I have done which was effective was give time and cost estimates for both .Net and Rails. In the first case I was even open to them picking .Net as for me I know that as long as I work agily and have good test coverage I will do well on any language/framework. But they were under time pressure and picked Rails, which gave me the chance to prove it to them. For most business managers if you go with some tangible bottom line figures you have a chance. Other than that like others say, they have swallowed the MS kool-aid and as with any other brainwashing, nothing you can really do to argue with :slight_smile:

.. we strongly encourage the use of Microsoft IIS and using a product in
the .NET family for the code base..

encourage != enforce
So say "We took your encouragement into consideration, but in the
absence of any suggested, measurable benefits, we've stayed with RoR"

ASP.NET and ASP.NET MVC - I can't
stand them. I refuse to code in them.

ah... well, you might need to update your CV and start looking for a
new job then, because if your company is orientated on .Net, and you
"refuse" to code in it, then you might be in the wrong company...

There are a lot of good responses here already, especially with
respect to ROI, so here's just a different way to look at the
situation:

Has your employer considered the LONG TERM licensing costs for Windows
server several years down the road? Sure they might be buying licenses
anyway, but as load and demand scale upward (depending on the size/
nature/audience/goals of the project), licensing cost does too. This
is where FOSS really shines: cheap initial implementation, serious
cost savings down the road.

Another point: a TRULY purist technology stack, these days, is pretty
much just a pipe dream, at least in my opinion. By getting fanatical
about "stack A" vs "stack B", your employer is missing out on the
leverage that a very cutting-edge
and capable community driven FOSS stack can provide. And aside from
that, you can really make your company's internal or external
infrastructure incredibly fragile by putting all your eggs in one
basket, especially that of a for-profit corporation who has proven
time and again, by shipping crashtastic and buggy software, that
their bottom line is more important than their customer's well-being.
FOSS doesn't have the same conflict of interest.

Additionally, it's certainly true that Rails is ONE of the most
mature, tried and tested frameworks in existence - period. I don't
know that we can hold ASP. NET MVC in the same regard. (Not saying it
can't "hang" with the cool kids - just that I think that argument
would be a much harder sell, even to some apparent Microsoft
fanbois.)

Good luck man! Unfortunately, it sounds like you may need it. :slight_smile:

Don’t worry about rebuttal on this one. This battle is already over, but the war is not.

I have much experience as a past consultant and manager of consultants dropping out of the sky into new customers where the shop is die-hard MS or whatever, with my “new” technology to change the shop over. In my scenario, it was always a case where senior management made a strategic choice and we had to “change” the staff to learn, accept, and prosper with our new development environment. It is slightly different than what you have since in my cases it was always a management mandate, but hear me out. It doesn’t matter if it is management or the developers themselves that resist, the problem is how to address the resistance.

Tools/languages are a religion, but more importantly, they are sometimes all a person knows and they do not want to take on the risk and effort to change an entire department. It is a lot of work. They will resist until the end of time. They also may enjoy golfing with the MS sales rep and don’t want to give up the free days at the country club. Sometimes you will never know the underlying resistance as it may be hidden.

I found it always best to PROVE the new technology. Estimates are voodoo numbers and easy to be discounted by either side.

PROVE RoR by offering to develop a small prototype in parallel or sequentially to an identical effort in MS technologies (it can be a made-up project). Make the duration 1 week each (or 3 days, whatever). Present the results after the experiment is over and offer sincere benefits and drawbacks of each. Offer to do it in off-hours if you have to.

Do not do the experiment in a vacuum. Be very inclusive of the opposing parties, making sure they are involved in the process. They fear what they are unfamiliar with and this is a way for them to dip their toes in to the waters. If you work in your cube alone, the “two sides” separation will be perpetuated. Get someone from this manager’s team to participate with the 2 of you working side-by-side on Rails prototype and then follow it up with the 2 of you working the MS prototype. This person will be your messenger. Your message will always be self-serving in their eyes.

In every case, I had to win over the religion by letting the opposing side see and experience the benefits first-hand. Success, confidence and results talk; estimates do not, especially those delivered by someone who will bring a natural bias to support their desired outcome.

Failing the above, get your resume/CV together and go to a company where you don’t have to fight a long battle. There are many shops where you’ll be able to focus on the business problem and not the technology selection.

Thanks for the replies everyone. There is some very encouraging input
here and I'm glad to know I'm not really alone.

The good news is that I believe I'm going to be given the chance to
develop and work on a very small management console to showcase some of
the features in Rails.

The downside is that I'm going to have to integrate it with Windows
Server 2008. I'm not getting much budge on this.

I would love to offer number figures, but unfortunately I don't have the
numbers available for cross comparison. I'll work on the small
management console and make it shine.