Minimum Viable Product · Ruby

How do we balance speed vs cost when choosing technologies?

Justen Britain Software Engineer: Using cutting edge technologies to change the way people interact with the web

April 30th, 2013

I am working on a project that helps people find their spiritual community/church/synagog/ect and as we get ready to march full steam ahead towards our MVP product we are trying to figure out how to balance the speed one language and it's accompanying set of opensource frameworks and affiliated developer communities offsets the later cost of using said technologies.

As an example we are thinking about using Liferay Portal and it's Social office plugin. This will cover probably 50% of our MVP functionality as well as a huge amount of functionality that will prove useful down the road. The proverbial problem is that Liferay is written in Java (which is my preferred language) so as we start to hire developers down the road they will likely be more expensive and hard to find. The flip side of this coin would be to use Ruby on Rails and an framework called CommunityEngine. In comparison the dev community is much smaller and it doesn't provide nearly as much functionality but down the road hiring developers will likely be cheaper and easier.

Any input or thoughts are greatly appreciated!

Joseph Moniz Software Engineer

April 30th, 2013

I like to bring up Paul Graham's "Python Paradox" ( http://www.paulgraham.com/pypar.html ), given, he gave that speech and wrote that short essay in 2004, the times have changed a bit. You would be safe substituting Python with something like Clojure, Scala, Dart, or even Coffeescript.

In a nutshell, the python paradox states that you'll have an easier time finding talented developers recruiting for languages that aren't languages you learn to get a job, because the type of developer that learns these languages are the ones that are self learners and passionate to learn on their own. Doesn't mean you can't find good developers in a more commodity language, just means that it will be harder to because the talent pool will be diluted by less talented programmers.

I don't think its much an issue that java developers are getting paid more or less then any other language dev. These days, pretty much _all_ language developers are in ridiculously high demand.


- Joseph Moniz


"Wake up early, Stay up late, Change the world"

Avi Tevet Founder of Fitlogr

April 30th, 2013

If you're trying to get your product out the door ASAP, you need to work with the tools that your team is most familiar (and therefore productive) with.  If you've got some time, then you probably need to do some thinking about which tool is best for your domain in terms of balancing speed of development and performance for users, and train your current team accordingly.

But on a technical level for your specific situation I think that Peter is right... Java seems like a larger community because RoR is only a few years old.  With a larger community you should be able to get cheaper labor.

Michael Sattler President, Splitzee

April 30th, 2013

It's a balance, no question. Speed to implementation, developer availability, performance and architecture considerations - all matter. Don't forget engineer preference - asking an engineer irrationally enamored with the latest coolest platform to code in perl can be a retention problem.

That said - ideally you find a technical lead who will pick your platform based on business needs, making personal preference secondary. (If you want to do a project in a new language to make yourself feel cool, take a class.) Then it's their job to make it work.

In my experience an MVP is about business viability, not code elegance or even scalability. Once you get the product right you can go back and tune the code, worry about scale, etc. The sexiest code in the world is pointless if the company it's built for goes bankrupt. 

Peter Sankauskas Founder & CEO at CloudNative

April 30th, 2013

Hi,

I think you have it backwards - newer technologies have fewer good engineers - that rareness creates high demand, and subsequently, means they have higher salaries.

There is no shortage of PHP or Java engineers, but there certainly is for Rails (which is why AppAcadamy, etc exist).

Also, I suggest you reach out to Jennifer as she is looking to build something very similar to you.
http://members.founderdating.com/profile/1754/jennifer-seigal/

Peter

Justen Britain Software Engineer: Using cutting edge technologies to change the way people interact with the web

April 30th, 2013

The reason I was under this assumption was because I am currently a Java developer in the greater Seattle area and I work for a top 500 web site and know that we have had a very difficult time finding Java developers as we have been expanding over the last 2 years. I had also heard from some different HR friends at other local organizations that Java developers right now are making significantly more than Ruby or MS developers in the area and are hard to find. I also know that I have been offered as much as 20k signing bonuses from other companies trying to poach me. Is this perhaps a regional phenomenon? I wouldn't be surprised since MS is here which could reduce the number of available Java type developers somehow.

Thanks for the reply, if what you say seems to be the common feeling then I think we will probably go with a Java solution as it will be the fastest route to MVP. Also thanks for the heads up about Jennifer, luckily she is the one I am working with currently so there isn't any conflict there.

Justen

Stephen Peters Looking for the next challenge and opportunity

April 30th, 2013

Java and the C families are the two most popular programming languages in use today. Ruby and "Ruby on Rails" have also become popular over the last few years. Finding people to staff your project shouldn't be much harder regardless which you choose.

Rob G

April 30th, 2013

Technology and platform decisions are like religion and politics - if you find THE answer please let us all know. Just don't paint yourself into a corner.  Build with what you know as long as it is fairly mainstream, supportable in the mid to long run, and is common enough to find tools, engineers, partners and compatible interfaces.  Try stay clear of the latest and greatest from other startups who may leave you high and dry if they fail (that new mobile backend saas or social API may sound great, but be sure you don't go down with their ship).  Like Michael S said, tech won't matter at all if the market doesn't buy it. on the other hand, tech really matters if the market really likes it and you need to scale fast. 

Jonathan

May 1st, 2013

Its a good question, but I disagree with your premise that Ruby developers are easier to find and less expensive than Java ones.

Joseph Hsieh Growth Marketing & User Acquisition Specialist

May 1st, 2013

Since you're the primary architect and a major stakeholder, I would always choose speed and familiarity over cost. If you're most comfortable in Java, then I'd stick to it. I know there's a ton of Hacker News language religious wars, but an MVP by definition is not where these things matter. Note, I'm not sure what city you're in, but Ruby on Rails people are definitely not cheap; but in my experience, those who appreciate RoR have a deeper understanding of what the language can do and not some script kiddie that patches things together from free script snippets on the internet. I would also take a look at Socialengine.com - much like CommuntiyEngine, but built on PHP, which arguably, has the one of the largest dev community if you can tolerate PHP as your MVP stack. Joseph Hsieh http://twitter.com/webjoe