Link to home
Start Free TrialLog in
Avatar of goldylamont
goldylamont

asked on

How much to charge--small Ruby on Rails project

Can any experienced Ruby on Rails developers give me ballpark figures for approximate number of hours needed to finish a project as outlined below? this question probably isn't for a salaried employee who doesn't have to monitor their time as closely as a consultant.

i should note that i don't want/need a primer on consulting/billing as i've been doing this for years. however, for this project I spent tons of time on it learning new technologies. so i want to get an idea of how much time it would have taken an experienced developer to finish so i can ask for a fair price from my client.

The website allows about 30 employees to log in and create/edit calendar events for themselves. And allows admins to see schedule and manage users:

Built using Ruby/Rails (1.9/3.2.8)
Twitter Bootstrap theme sitewide
Devise for authentication, CanCan and Rolify for authorization
TinyTDS gem used to connect site with their private Microsoft SQL Server
about 4 Controllers/resources used (i.e. User, Event, Calendar and Schedule pages)
Rspec/Capybara/FactoryGirl for testing--full Unit testing, approx 70% Controller testing and about 80% request/integration testing (I'm still finishing up request tests).
Avatar of DrDamnit
DrDamnit
Flag of United States of America image

I have submitted this question for additional help.

Although, I know you said you didn't want a "primer", but a "fair" price for the completion of the project would be language independent. Right tool for the right job means best outcome with the most reasonable cost. Ergo, a quote for doing this in PHP or another language would be an analogous starting point for you.

The possible exception would be if it was a 100% requirement that this be done in Ruby (for example... if it integrates with a larger asset that is already ruby and requires it).

But... I know... all the cool kids use Ruby. :-)

-------------------------
DrDamnit
Linux & Asterisk Topic Advisor
Experts-Exchange.com
That is about an hour of programming using Visual Studio Lightswitch to do the following:
The website allows about 30 employees to log in and create/edit calendar events for themselves. And allows admins to see schedule and manage users:
I agree with DrDamnit - the platform doesn't really matter too much.  So if you're an experienced developer on another platform, then estimate how long it would take in that development environment, and use that number.

Don't really think it is reasonable for you to expect us to be able to put a price or specific number of hours on this without seeing specifications or the finished product.  I'd certainly never quote a price to a client just based on a 5-6 sentence description like what you gave us above.

You may not need a lecture on billing and invoicing, but maybe some information on software project estimation would be useful?  I price projects all the time for which I don't have all of the technical skills and won't be doing the work.

Anyway, let me recommend a great resource:  

"Software Estimation: Demystifying the Black Art" by Steve McConnell.  

If you only have one estimation book on your shelf as a software consultant, this is the one.  

Anyway, I don't know if that does you any good today - you probably don't have time to obtain and read a 300 page book before you price this particular project.  

So for me, the math for an hourly billed project is simple:  

Number of hours * your hourly rate

I've occasionally done small "new technology to me" projects like this in order to develop a new skill set, but I typically quote them to the customer on a fixed bid (ahead of time!) based on my estimate of the cost when done by an experienced resource.

If you don't want to to bill the client for some of your time for some reason, either discount your hourly rate (a bad idea if you ask me), or comp some of the hours.  
I recommend the latter.  That way the client sees how may hours you put in, and that you are already offering a discount due to your inexperience with this technology.  Plus you don't set a bad precedent with billing at a lower hourly rate than usual.  

That assumes, of course, that you told them this is new technology for you and there would be some learning curve.

How many hours do you have in the project?
How many of those hours do you feel should not be billed to the client due to learning curve and inexperience?

And I just have to know - How do you end up at this point in a project without having a "cost" conversation with your customer?  Seems like a disaster waiting to happen,

- Gary Patterson
"Seems like a disaster waiting to happen" really resonates with me on this question.

I do a lot of outsourced technologies and projects for clients. Sometimes it is a technology that I don't specifically work with, but I have teams (outsourcers) that put them together for me. I have them quote it, and I have internal processes that I use to make sure that my costs for them, plus my time to do program architecture or database design, end up with a market-competitively priced solution for the client.

There have been times where a client has said: "Michael, I want you to do it and no one else." And, clients knew they were paying for the product + plus learning curve.

As long as the client knows what they are paying for in advance, then you can avoid a lot of headaches.

Just food for thought...
Avatar of goldylamont
goldylamont

ASKER

guys, thanks much for your comments thus far. so, even though i was trying to avoid a primer on how to bill clients since in general i already understand this. i will try and briefly explain the information i was hoping to get and why. and, thanks for your help thus far--

i did this project as much for myself as for my client. i had a ton of fun doing this. for any other project i bill my client for 100% of my time, this includes all sorts of sys-admin tasks, database and MS Access/VB development. for my own record keeping i kept a log of hours working on this new web project and because i was learning most of the time, it's ludicrous like around 250 hours i spent this summer on the project. i don't regret it at all! but, in the end, the site i'm delivering to them is well made and they are very excited and satisfied with the outcome (as am i). so, i'm delivering to them value, but i don't know how much to charge. i don't really need any one to tell me to multiply the number of hours by some rate (duh?!), i know this. i was just hoping someone could give me *ballpark* figures for the number of hours it would take to make something similar.

if you are (1) a consultant (i.e. not a salaried employee) and (2) have finished several projects for clients, i would think you could give a ballpark for how much time it would take to develop a site such as this.

as far as "a disaster waiting to happen"--nope. i've worked with this client for many years, i took on this project knowing that i wouldn't get paid for all of the time since there was a learning curve. all i need is a starting point to present to the client to say--this is a fair asking price for this sort of project if you went with another programmer. i'm well aware that this isn't the correct or normal way to do things, so thanks for the warnings but it's something i'm already aware of.

Gary and DrDamnit, thanks much for your comments thus far. i feel what i'm asking for is probably simpler than we are making it out to be. if i could, i'd take you both out to lunch, and say "hey guys, how much time would you *guess* it would take to make a website for a client? the site will need to do two things--one allow about 30 employees in the field to login with their email address and manage their personal calendars. and two, allow admins to log in and view all calendar items with a summary schedule page. oh, they already have an employee database hosted on SQL Server where we'd need to grab some info."

my personal guess is this would take about 30-100 man hours? i dunno though, even if you gave me a range of numbers like this it would help. thanks!
and, i think the comment above that a site such as this would only take 1 hour of development time is laughable. this person obviously is managed and paid by someone else; even if you had the site completely developed it would take more than an hour to post to a production environment and test...
SOLUTION
Avatar of DrDamnit
DrDamnit
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
PS. My advice above is anecdotal. My bid calculations are confidential and are more complicated than $82 / hour for 10 hours. You need to decide what you should charge based on the value of the work you did and how much a competitor would charge to do the job in a language in which they were professionally competent.
DrDamnit, thanks much--the 10 hour estimate was what i was looking for. For my specific use i feel this is on the low side since it doesn't sound like the site you specified is role based (i.e. could an admin user login and see everyone's events and also manage user accounts?), and I don't believe the site you discussed pulls employee data from a privately hosted SQL Server database (which was a requirement for me). For this reason I have to host the production application on a self maintained web host (I chose Ubuntu Server) within the client's private network so that it could talk to SQL without sending sensitive data over the internet. Still, thanks so much for taking the time to give me a ballpark here, this is what i was looking for.

I will leave the question open for further comments and close out in a bit
What I specified was role based. That's the point of using the WP backend.
It also can pull up the database from a local SQL server. (That's also built into the WP backend, and only requires we write queries specific to your DB).
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Gary, awesome info, thanks. However, you're stating the obvious regarding "... it seems inappropriate to me to bill a client for days or weeks of learning curve..." since i've already specified that this is precisely what i intend not to do. the links are cool though and could be useful in future projects; however for reasons perhaps not clear here these types of pre-built solutions simply wouldn't work for my client. the only way to go was a custom solution--although i did use as many pre-built gems as possible to avoid recreating the wheel (i.e. I used well know prebuilt solutions for authentication, authorization, the calendar and web design template.) all in all, thanks for the advice; the answer seems to be somewhere in the ballpark of 10-40 hours for a comparable project. and even this range helps me out a lot. thanks!