Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My customer, a translations business owner, just told me that he has been reading about Ruby on Rails and told me that "there are more PHP guys around there" and "it seems the community prefers it". What would you, as software engineer and freelancer, say to the customer to achieve these goals:

  • Sell
  • Make him see that the technology is my expert decision and Rails is as good or better than PHP (+ whatever framework) for this particular project.

UPDATE: Thank you all for the suggestions! Tomorrow I've got another meeting with him, let's see how it goes, I will update again :)

UPDATE 2: Finally I told him to read this thread and the result has been fantastic: He gave me the project and we are going to start right now. Thank you all for the help, you have free beer in my charge if we see someday :)

BTW: I learned the lesson: be as transparent as possible, because if you believe in yourself and your work, there is no question compromising enough to beat you.

regards

share|improve this question

migrated from stackoverflow.com Jan 25 '12 at 21:05

This question came from our site for professional and enthusiast programmers.

2  
Voting to move this question... However, I would consider using examples of industry use such as shopify.com, twitter.com, etc. and also explain that development in Rails tends to be faster than development in PHP (this is my opinion). –  iWasRobbed Jan 25 '12 at 21:05
add comment

14 Answers

up vote 46 down vote accepted

I think you make a mistake in assuming that the choice of technology is a purely technical decision.

The customer seems to be concerned about the business implications of picking a particular technology. Given that, you need to present a case that addresses his business concerns at least as heavily as your technology opinions.

  • Employers have to recruit from a particular geographic area and certain areas have particularly active communities around particular technology stacks. If you're starting a business in the Pacific Northwest of the US, for example, there would be a strong bias towards a Microsoft stack simply because Microsoft is very influential in the area so most of the developers you'd be looking to hire would have experience with that stack. Other geographical regions have very different profiles.
    Talk with your customer and understand why and how he formed his opinion. Perhaps he read that the local PHP community is particularly active or that the local college teaches a lot of PHP and no Ruby. Perhaps he's got a trusted developer that he can call in for the occasional emergency that is a PHP pro and a Ruby neophyte. Of course, it's also possible that he's using poor metrics like the number of job ads or resumes that mention various keywords.
  • Employers have to be concerned with the long-term sustainability of technology stacks. Years ago, for example, lots of companies invested a great deal of time and effort building PowerBuilder apps (and other languages of that genre). PowerBuilder often made it very easy to build line of business apps and developers at the time were often quite enamored with it. Unfortunately, the PowerBuilder community more or less collapsed leaving companies in a situation where they had a lot of existing code in a language no one really wanted to use where they had difficulty getting competent developers to maintain the existing code and expensive, time-consuming projects to migrate those apps to other technology stacks. The relative technical merits of PowerBuilder were vs. Java or C++ or C# or whatever they migrated to at that point; it was a death spiral since developers didn't want to get stuck working in a language that companies wanted to migrate away from and companies saw the lack of developers as a sign they should redouble their migration efforts to ensure they had the capacity to do the development the business needed.
    Relatively niche languages like Ruby absolutely have the potential to create these sorts of legacy problems for companies who can't predict whether the language is going to fizzle out in a few years when people move on to the next fad or if it has real staying power. You can certainly mitigate this by pointing out that Ruby isn't dependent on one company or organization so no one can decide it is no longer a strategic product for the company. If your customer has been burned in the past by having applications developed in languages that became business headaches, you'll need to make a case that Ruby is more like Linux and other open source technologies that flourished without a company backing them than languages that have died out over the years.
  • Employers want consistency in the environment so choosing a language for one project forces a choice for many others. Even if Ruby is technically ideal for the project you're pitching, you have to explain why it's appropriate for every other application this customer is going to need developed or explain what mix of technologies you believe are appropriate (i.e. Ruby for X, something else for Y). Dealing with heterogeneous technologies, however, inevitably translates into extra cost for the business.
share|improve this answer
17  
+1 I find many people on this forum focus on the academic reasons for a choice and seem to ignore the economics –  dietbuddha Jan 26 '12 at 0:24
10  
+1 for bringing up the real business-related issues (and for writing most of what I was going to say, thus saving me the time :)) –  jcmeloni Jan 26 '12 at 0:46
    
I could add a couple more business reasons or several technical reasons why Ruby is not the answer to every pet project around. But you nailed it pretty good, so two thumbs up! –  Alex Jan 26 '12 at 4:33
2  
Ok, thank you for the realism lesson Justin and the effort writing the answer, I really appreciate it. –  okeen Jan 26 '12 at 9:08
1  
I would point out something that is hedged a bit in this answer: Your customer may be right. It may not be the technically superior answer, but as is pointed out his concerns may be valid, and RoR could fizzle and die, however unlikely it seems. It is certainly good to provide your technical opinion, as a customer needs it to make an informed decision as well. –  MattG Jan 27 '12 at 17:02
add comment

Ultimately, PHP programmers are half the cost of Rails programmers, and what you if you find a better job tomorrow? Your boss would be totally screwed and scrambling to find a Rails developer, and that takes time and money since Rails developers are in short supply.

The only reason your boss would agree to it is if it feels like it would make YOU happier, and that by allowing to make the decisions that you want you would be happier working for him, and thus be more productive.

share|improve this answer
add comment

Surely this is a business decision for both of you.

For you the questions are:

  • How much will it cost me to implement my customers requirements using Ruby on Rails?
  • How much will it cost me to implement them in PHP?
  • What value do I place on using my preferred environment?

For your customer, the question is

  • How much are the perceived benefits of PHP over Ruby on Rails worth to me?

If you provide your customer with a quotation with a Price for implementation using Ruby on Rails and a separate Price for implmentation using PHP, both based on the answers to your own questions, then your customer can make their own judgement call as to whether the extra cost now is worth possible future savings.

This is no different to them making a decision as to whether they should give the contract to you, or to another developer who would implement it using PHP as requested.

share|improve this answer
add comment

Your customer could have a valid point. Supply and demand affects prices. If the supply of developers with a particular skill in the customers geographic area is low, the price for maintaining software requiring that rarer skill set could increase more over time than if the software were developed using a more popular language for which there was a significantly larger local pool of skilled developers. So the issue could also be one of long term cost risk management.

share|improve this answer
add comment

The best real world analogy I can come up with is "Would buy a Ford rather than a BMW just because BMW's market share is smaller?".

share|improve this answer
1  
A strong possibility if all the BMW service mechanics were too far away, too costly, or very poorly rated by the consumer agencies for the buyers locale. –  hotpaw2 Jan 26 '12 at 2:13
    
@hotpaw -- fair enough, but that is a rational consideration, market share on it's own is meaningless. –  James Anderson Jan 26 '12 at 6:17
add comment

Your customer hired you, so presumably he trusts your expertise. Explain that different professionals may prefer different tools, and your preferred tool happens to be RoR. Point out the presence of the community and the community acceptance that exists for RoR and successful companies like 37signals using it, to remove his concern that you are recommending some arcane technology that nobody but you knows about. Point out that you will be more productive using the tools you prefer (thus lowering his costs and improving his changes on success) and that if you or him ever need to find more RoR experts it won't be hard to do. If he's more technical you may point out how RoR can be successful in the tasks he needs compared no less than his preferred solution.

Avoid repeating FUD and generally disparaging PHP - if you're not an expert in PHP, there's a high probability you'll say something that is not accurate, wrong or highly controversial, and if your customer learns you were wrong on that it may hurt your credibility with him in other aspects.

share|improve this answer
add comment

When I have a client who is wanting to use a particular tool because it's "industry standard," has a "consensus," or is "what everybody's using," I point out to them that all those terms are code for "industry average." That is, what most of the other people in the area are doing. The "average" business fails. Pick your tools based on the job requirements, not on what everyone else is doing. There being fewer RoR programmers doesn't matter if the system doesn't need as much tinkering with when it's done.

share|improve this answer
add comment

Your boss has a point. PHP is much more popular than RoR accoding to several sites that endeavor to keep track of such things. For example, see http://lang-index.sourceforge.net and http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html>. I think it would be foolish to ignore the facts.

I suggest you acknowledge he has a point and then remind him that RoR is has a strong following too. It wouldn't hurt to have a few links to popular sites built with RoR that you can show him.

After all, he is really looking for your assurance that he is making the right business decision and wants the evidence to back it up. As the old saying goes "No one ever had arrows shot at them for recommending Microsoft." Same goes for PHP in web development. Give him solid facts and eschew opinions. You'll do fine.

share|improve this answer
1  
The original adage was "No one ever Got fired for buying IBM." Perhaps they should have been, but... –  Matthew Flynn Jan 26 '12 at 3:48
    
Oh, I've been known to shoot arrows at people for picking PHP... :-) –  Brian Knoblauch Jan 30 '12 at 17:57
add comment

Translate your beliefs into quantifiable economic terms (if possible/valid). The fact that his business is translation specific suggests that RoR (or any language with native multilingual support) is technically superior to PHP - but this has to be offset against the costs of developers and server provisioning associated with those respective platforms. Their business is likely to last longer than your relationship, they will want reassurance that they are laying the right foundations.

IME, admitting the cons (as well as the pros) of your strategy is more convincing than any amount of evangelism - it suggests that you are more interested in solving their problem than using your favourite hammer.

share|improve this answer
add comment

Point out that the PHP crowd has more members because its the lowest barrier to entry and has been around longer. Make sure to point out that smaller communities have higher percentages of programmers worth hiring, PHP may have 10,000 good programers compared to 5,000 rails programmers, but the PHP programmers are hidden in a block of 100,000 compared to 20,000 for rails programers. (These numbers are made up, but it gets the point across.) Then you need to explain that the community really doesn't have a preference between PHP and Rails.

You can't use technical reasons on a non technical person, you can't explain why the iPhone is inferior to other smartphones to someone who only knows about what phones look like. You need reasons they understand.

share|improve this answer
    
+1 for pointing out the importance of signal-to-noise ratio in dev communities. –  Jason Lewis Jan 25 '12 at 23:05
2  
The fact the numbers are made up kind of leads to the conclusion that the point is made up too. It may be true or false but that would require the facts to prove or disprove, which are absent. Without the facts, it's just "you suck because you play in another team", which is not very professional. –  StasM Jan 26 '12 at 1:49
    
I agree and have used this argument with technical superiors as well. Chances of high quality PHP developers having jumped ship for Python or Ruby that have a working RFC and community contribution process increase each year. PHP is the most copy and pasteable, low barrier to entry language, attracting the kind of developer you do not want. –  Lincoln B Dec 18 '12 at 23:23
add comment

He's talking about people, you're talking about a language and framework. He is not going to hear any reasons that are purely technical, so you should focus on what people are doing with the language. You can talk about people-power under Rails, how it's easier for one person to do more than a PHP person, faster (if this is what you believe). You can ask whether the prevalence of Honda drivers means it's a better car than a Rolls Royce, which is rarely seen. You can talk about what the community is actually comprised of, whether there are too many cooks in the module soup (gems vs. modules, etc.), whether everybody has NIH syndrome, and so on.

Regardless, it needs to be in terms of people because he wants to know that he can replace you. Help him to know this, because he (probably) won't want to switch away anyway. Your "expert decision" has absolutely no bearing when he gives much less care to what a given person knows. He just wants there to be "more people" who know the same thing.

At the end of the day, there's no shame in calling his bluff. "Fine, go with PHP. Good luck!"

share|improve this answer
2  
It's always important to remember that firing the client is always an option. –  Jason Lewis Jan 25 '12 at 23:03
add comment

You should be able to articulate to your customer(may be with popular websites like Twitter, etc.) that Rails follows Convention over Configuration. Making changes to the website is really easy using Rails Framework which leaves no scope for Security/Connection flaws with DB. Where as in PHP you should be soley responsible for the connections that make with frontend (which indeed takes time to go through each & every connection, cross checking the active state of link/connection).

share|improve this answer
    
Thank you, but he is a non technical customer, I don't think he cares about this. –  okeen Jan 26 '12 at 9:11
add comment

For starters, you can direct you client here for a look at the ecosystem that exists around Rails. You can also point to the successful startups like LivingSocial, Shopify, 37signals, etc. that built their businesses with Ruby and Rails.

You can mention that massive enterprises like AT&T, SAP, and Symantec are using Rails, too (they were all heavily recruiting at RailsConf last year).

You can point out that a translations business has a lot to gain by using a language/framework that makes Unicode support and i18n relatively painless.

Ultimately, I think you need to sell the idea that being able to use Rails is a premium feature he gets by hiring you: "Of course all those other guys are using PHP. But you have the opportunity to have a modern stack powering your application."

At the end of the day, it also needs to be clear that what he's ultimately buying is your skill and expertise; if he was that knowledgeable on server-side web technologies, he wouldn't need you. Language and framework are implementation decisions, not requirements.

P.S. Don't mention Twitter. We're still trying to undo the bad PR Rails took from that.

share|improve this answer
add comment

I'd explain that it's basically a "Coke" vs. "Pepsi" choice. Both are widely accepted, both have people that will fight and die for each, and they're both perfectly adequate. Point out the reasons you prefer RoR.

share|improve this answer
4  
I don't think that will be helpful in this situation. If it's truly a matter of personal taste, the likely response will be along the lines of "Well I'm buying, so use PHPepsi because the maintenance programming consultants will be cheaper for me down the road." Using Ruby needs to be a value-added proposition, and native multilingual support is a definite plus for a translation business. –  Jason Lewis Jan 25 '12 at 23:09
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.