Myself and Fintan had a meeting with potential investors in dbTwang (a new web-based service for guitar players, collectors and enthusiasts launching in 2008) yesterday evening and it went really well. We have a revision of the business plan to prepare which will incorporate some of the really good feedback from the meeting and also a heads of agreement to draft.
During the meeting the question of the technology we want to use came up and we briefly explained why we want to develop using Ruby on Rails. They accepted that and we moved on.
However received an email from Aidan Finn in the meantime - who runs the Ruby On Rails group in Ireland and therefore knows what he is talking about :-). Some quotes from his email:
There is a shortage of rails developers around at the moment and good rails developers tend to be expensive......You should also look at python or php developers. Good python developers tend to be in as much demand as good ruby developers. But there are a lot more php developers around and they tend to be a lot cheaper too. I don't think the language/framework used is that important. It's more important to get a good dev with a good portfolio behind them.
So - do we take a decision to stick with Ruby and potentially have a more expensive launch build and probably a remote development team or stick with it and have a more flexible development framework upon which to build additional services in future phases?
TouristR went with Ruby and Jan is happy. What do you think?
keith
Well, what reasons did you give for using Ruby on Rails that the potential-investors accepted? They should still be valid.
We are using Ruby on Rails but have had the luxury of growing Rails skills in-house, from a base of Python/ASP/PHP programmers. The basic skills mapped across easily while specific Rails features were generally learnt very quickly as the guys enjoyed working with Rails.
Then again there is Django which our Python guy loves and can do amazing things in. It shares a lot with Rails. If you have Python guys available then see if it can work for you.
I'd be weary of a remote dev team for a startup application. If you knew the remote guys very well and they were invested in the app. then it would be fine but if you are just hiring strangers who have Rails skills then I'd have reservations.
Good luck guys, it is tough doing apps. without already having a team you know and trust.
Posted by: Paul M. Watson | February 05, 2008 at 09:18
Hiya Paul
> They should still be valid.
You are right Paul, they are. However the question of availability then arises - if we cannot get close to home developers with sufficient experience in Rails then we need to reconsider.
> Then again there is Django which our Python guy loves and can do amazing things in. It shares a lot with Rails. If you have Python guys available then see if it can work for you.
Good suggestion thanks.
> Good luck guys, it is tough doing apps. without already having a team you know and trust.
For sure!
keith
Posted by: keith bohanna | February 05, 2008 at 09:23
I don't accept the "I don't think the language/framework used is that important." statement. The language/framework used can be hugely important, not just in terms of availability of developers but in speed of development, ease of change, ease of deployment and management, scalability.
The second thing I strongly disagree with is picking a framework based on how cheap the developers are on it. Firstly, in my experience, a high-end developer can frequently have in excess of 10 times the productivity of a 'regular' developer (and that's just in the tangible bits - there are other benefits too). Secondly, if the 'smart' developers are leaving one platform and moving to another, then you should seriously ask 'why is that happening' before you pick the original platform.
Of course, there's no absolute 'best' answer. It depends on the project and the constraints. I wouldn't recommend Lisp as a web development platform but some people have been successful with it (Arc, anyone?).
/dh
Posted by: Denis Hennessy | February 05, 2008 at 10:28
Thanks Denis
> in my experience, a high-end developer can frequently have in excess of 10 times the productivity of a 'regular' developer
Yep - this is going to be one of the key factors for us - the people behind the Development Co. Experience and attitude are crucial to a successful build.
keith
Posted by: keith bohanna | February 05, 2008 at 10:34
Have you any idea on who your key developer(s) will be? For better or worse, these people will determine the platform as much as you. I would really try to have the core development close at hand.
Posted by: Antoin O Lachtnain | February 05, 2008 at 11:33
Hi Antoin
> For better or worse, these people will determine the platform as much as you
Yes you are right - and no have not yet gotten to selecting same. As I mentioned above the people are going to be key to this - and thanks again for reinforcing the requirement for a team close to hand.
keith
Posted by: keith bohanna | February 05, 2008 at 11:36
I should clarify a couple of things that might not be clear from the quotes above (responding to Denis' points mostly).
As a developer I think choice of framework for a project *is* very important.
When I say "I don't think language/framework choice is that important" I mean it's not that important compared to getting a good developer and it's not so important that you should limit yourself to only rails developers at this early stage. The most important factor is finding a good development team and building a relationship with them.
I don't think that you should decide on a framework first and then go looking for developers. This is especially the case where the people involved in the startup are not developers. If there are developers in the team then they are in a better position to decide which technology is best suited to their project.
So don't rule out other options at the start. Ask potential developers what technology they would use for your project and why. Their ability to motivate and justify their technology decisions can help you choose between developers.
I'm also not advocating choosing frameworks based on price of developers. But price and availability are one of the many aspects to consider, especially for a startup. Also the market for freelance developers is a bit like the market for lemons. So you while good developers are usually more expensive than bad developers, the opposite can often be the case too.
In general I don't really advocate any particular language or framework - I advocate picking whichever it the best fit for a project given the constraints and requirements. Right now, in the case of building a database driven website that usually is rails or django. But it might not be - there are some projects where php is a better option than either of those. It depends.
Posted by: Aidan Finn | February 05, 2008 at 11:43
Hi, Kieth! I am one of the guys working on TouristR with Jan. I think that Aidan makes some very good points above. It is not necessarily the platform rather the developers you get to work. We were lucky to find a great team in the US called Less Everything to work with, and they were Rails guys. This made our decision easy.
Another thing that needs to be taken into account is the cost of scaling on a given platform. Recently I had an interesting talk with Marcus from Pix.ie about this, he made some interesting points about hidden costs of scaling like electricity, and hardware. He pointed out that as Rails tends to have a scaling philosophy of throw more hardware at it. Cost of scaling can also spiral. It is my opinion that this is offset by the productivity found in developing on Rails. The cost of extra developers is higher in my opinion then the cost of scaling. This further highlights the trade-offs that come with any platform, which brings me back to Aidan's point.
It is the development team that matters, it is here I believe that Ruby, and Python frameworks have an edge. This is because people who love programming like to try out new things, and it is these people who are pioneering Django, and Rails. Therefore in most (but not all) cases you tend to get very good programmers with these languages.
Posted by: Conor Wade | February 05, 2008 at 12:40
Keith, as you probably know we using Python and TurboGears for LouderVoice. From a technical perspective it was a good choice and developers can be very productive using it. However it suffers even more from the developer availability issue than RoR.
If you are home-growing developers then it doesn't matter, they can train up. But if you are outsourcing then you need to make sure that there is a good pool of strong developers out there to choose from. In reality that boils down to PHP, .NET or Java. I think bog-standard PHP it is the lowest risk approach from a business perspective if it is a good technical match to your application.
Posted by: Conor O'Neill | February 05, 2008 at 22:58
Aidan, Conor and Conor
thanks all for those comments. Our approach and thoughts on this need to be altered to take all of these on board.
Because we are outsourcing (out of necessity) a number of parameters change. ConorO's comment at the end is key here - we need an appropriate, but low risk approach because our investors will not take a screw up too kindly. Nor should they.
Meeting up with Fintan today and will post after that again.
keith
Posted by: keith bohanna | February 06, 2008 at 08:31