Forum: Ruby on Rails OT -- billing and estimating, good resources?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Ce8b03e5750097942c58e12b46724312?d=identicon&s=25 Giles Bowkett (Guest)
on 2006-04-27 19:26
(Received via mailing list)
OK, so for most of my career, I've done everything on an hourly rate.
Recently somebody kind of pointed out that if you bill by the
milestone you can work on multiple projects simultaneously without any
ethical problems, so you get increased efficiency. Does anyone have
any good advice/URLs/books on how to do cost estimates on a project?
I've really always kind of avoided the issue as one of those boring
"business" details, but it's looking as if I should really sort of
figure it out.

Giles Bowkett
89d967359903c639d31e4cad4569f537?d=identicon&s=25 Charlie Bowman (Guest)
on 2006-04-27 19:29
(Received via mailing list)
Estimating time frames is the hardest thing I have to do.  I wish I had
an answer for this question, but I don't.
6993d6b4b6d882f421e1b45ac147f3e0?d=identicon&s=25 Scott Barron (Guest)
on 2006-04-27 20:24
(Received via mailing list)
On Apr 27, 2006, at 1:23 PM, Giles Bowkett wrote:

> Giles Bowkett

The one thing i really learned from consulting is to bill by the
hour.  For reasons Chris mentioned, the milestone thing never really
pans out, and can leave you in periods with little to no income
should a problem arise that prevents you from reaching that milestone
on time.  There is no ethical problem with billing multiple projects
hourly, just as long as you're not billing every project 8 hours/
day.  Bill what and who you work for, keep track of everything.

Also avoid fixed cost if possible.  This is a hard thing to sell to
many clients, especially if it's the first project you're doing for
the client.  Software development is very dynamic and it is nothing
like buying a loaf of bread from the store.  Make your clients
understand this and you'll both be happier at the end of it all.

I also did the multiple projects at once thing,and found that it
wasn't a great fit for me, personally.  It might work for you, so I
wouldn't discourage you from trying it, but keep in mind that it can
create pressures that you may or may not be willing to tolerate.  It
also would depend on the size and scope of each project, I'd probably
avoid doing multiple "large" projects at once.  Sometimes you might
have to shelf one for a few days or a week to reach a goal in another
(this problem could be exacerbated by milestone based payments), so
make sure you take that into account when making bids.

Most of all, have fun!

5301cef77ec4942463fae0ba820b6b57?d=identicon&s=25 Tim Case (Guest)
on 2006-04-27 21:15
(Received via mailing list)
455ac2a64d06dc8461f4d258d7f7e980?d=identicon&s=25 Michael Trier (Guest)
on 2006-04-27 21:55
(Received via mailing list)
I'll just say +1 to all the above.  For almost my entire career I've
worked for my own businesses and although there is an allure to fixed
price projects, the end result is that you rarely end up in a
situation where you're ahead.

If there's no pain to be felt on the client's side, there's rarely a
reason for expediency, which means you have to manage your money very
well to make it all work out in the long haul.

I work on many projects at once, currently too many, but it's rarely a
problem when it comes to billing.  The biggest issue is time lost due
to "getting your head around" the project you're on at the moment.  To
help with billing, I run a screen capturing utility, TimeSnapper, that
tracks what I'm doing and when.  This is mainly just to cover myself,
because you don't want to get to the end of the week and say, "Now
what was I doing on Tuesday between 2 and 4PM." I've also had
situations where the client looked at an invoice and said "You wrote
the same thing twice, are you double-billing me by mistake here." I've
been able to look back and say, "Ah, no I didn't communicate that
well, blah blah."

This is really outside of your original question, but since I'm
discussing it. I prefer an agile approach and most of my clients are
agreeable to that.  I make sure it's clear upfront that I prefer to
work that way. I tell them look, let's do this for a month.  After
that time we'll reevaluate where we are.  If you like what you see
we'll keep going.  that sort of flexibility doesn't work well on a
fixed bid situation.  I also involve them early on in the project.
Keeping the client involved is huge for me.  It helps their confidence
level high and it forces them to make a personal comittment to the
project as well.  They'll help you push it along a lot better if they
feel involved.

Good luck.

Ce8b03e5750097942c58e12b46724312?d=identicon&s=25 Giles Bowkett (Guest)
on 2006-04-27 22:28
(Received via mailing list)
I've actually been reading every post as they came in, just didn't
want to say too much because the responses have been very good, wanted
to let the stream continue. Chris' comment about the negative effect
billing by the milestone can have on agile processes seems especially
relevant, and I'm reading that pricing blog right now.

In terms of my situation, I've been doing this for a long long time,
but usually through various agencies, partly because they find the
work for you, partly because I didn't want to deal with paperwork or
taxes. Recently though agencies have flat-out sucked at finding work
while I'm getting more offers than I can handle through personal
referrals. Also, one personal interest I want to explore, the company
only provides developer information to actual companies (even though
licensing is free). So it's looking as if forming a company might make
some sense.

Giles Bowkett
Ad7805c9fcc1f13efc6ed11251a6c4d2?d=identicon&s=25 Alex Young (Guest)
on 2006-04-28 14:51
(Received via mailing list)
Michael Trier wrote:
> well, blah blah."
It's funny...  I took a look at that, thought "That's a bloody good
idea...  I wonder how I can do that in Linux?"

I'm now running this script every minute, in a cron job :-)  Hope
someone finds it useful...

#!/usr/bin/env ruby
require 'fileutils'

save_dir = '/home/alex/Desktop_Snapshots'

time =
day_dirname = sprintf("%d-%02d-%02d", *time[3..5].reverse)
time_filename = sprintf("%02d:%02d:%02d", *time[0..2].reverse)
day_dir = File.join(save_dir, day_dirname)
time_file = File.join(save_dir, day_dirname, time_filename)
time_img = "png:#{time_file}.png"
time_ps = time_file + '.txt'

if !File.exist?(save_dir)
   FileUtils.mkdir save_dir
if !File.exist?(day_dir)
   FileUtils.mkdir day_dir
`import -display :0 -window root #{time_img}`
`ps euU alex > #{time_ps}`

Change constants to suit, obviously...  Apologies if this has drifted
too off topic :-)
803eac0530e08b2b141a87e1280dea0b?d=identicon&s=25 Christoph Sturm (Guest)
on 2006-04-28 18:15
(Received via mailing list)

On 4/27/06, Michael Trier <> wrote:
> help with billing, I run a screen capturing utility, TimeSnapper, that
> tracks what I'm doing and when.  This is mainly just to cover myself,
> because you don't want to get to the end of the week and say, "Now
> what was I doing on Tuesday between 2 and 4PM."

Sounds like a great idea!
Is there an application for osx that can be used for that?

E28c35323f624b8b9ed8712e25105454?d=identicon&s=25 Ray Baxter (Guest)
on 2006-04-28 18:46
(Received via mailing list)
Christoph Sturm wrote:

> Is there an application for osx that can be used for that?

ActiveTimer is one.


455ac2a64d06dc8461f4d258d7f7e980?d=identicon&s=25 Michael Trier (Guest)
on 2006-04-28 19:01
(Received via mailing list)
Not a Mac guy, not yet anyway, but:

* TimeSnapper - indicates they're coming out with an osx version.

* Spector ( - Will do what you want but pricey.

* WebPeek ( - Inexpensive
and looks like it will do what you want.  It's positioned for
uploading via ftp, but you can just do that locally I'm sure.

Good luck.

This topic is locked and can not be replied to.