Agile consulting - hours or tasks? 4

Posted by Pelle Fri, 21 Oct 2005 11:06:14 GMT

Now I am starting back doing consulting on a freelance basis, I really want to reexamine the business model of consulting.

I have always felt that the hourly charging is a pain. I don’t think it is fair for neither the client nor the consultant. The agencies of course like it as that is their main way of making money.

Let say there is a task. Build up a simple CRUD web page to go into a database. If you put a inexperienced guy on it you will probably end up paying less of an hourly rate, but more hours.

If you put an experienced guy on it he will charge you more per hour, but do it in fewer hours.

So who is cheaper? An inexperienced guy is at probably at the maximum going to be 1/3 the hourly price of the experienced guy. If you are talking the same regional area probably its more like half the price.

An inexperienced guy though may not know the short cuts or may have to spend an awful lot of time in google, where the experienced guy can do it quicker.

With something simple like a CRUD system like we mentioned above, an experienced guy can probably do it around 5 times faster than the inexperienced guy if we are talking something like Java.

With Rails the difference on CRUD wont be as much (can you spell scaffold ??), but in other areas the 5 times faster is probably also true.

So in other words the client ends up paying more if the client choses the inexperienced programmer and the experienced programmer probably is not paid his worth if he gets picked.

Iterative development to the rescue

My idea is that if you are developing using agile methods anyway you have a nice iterative process you can use.

An iteration is such a small complete task that a developer should be able to estimate how long it would take him. How about if one or more developers bid on each iteration? If accepted he has to do the iteration for that price.

This gives the client a certainty and makes it easier to budget. It also lets the experienced consultant push himself and do the work quicker.

It’s obviously not everything that can be done this way. There are certain more traditional consulting tasks that are better suited to hourly rates.

I would like to work with a client with maybe a couple of other developers on a rails project using this method. Have a look at my Bio for more info about me. You can also email me at pelle@neubia.com for more.

Also if you would like to be part of a small team of rogue agile coders with Rails, Ajax, CSS or other applicable skills that could work on projects together, send me a shout out as well.

Share your confidential code safely with a Source Code Confidentiality Agreement on our free web service Agree2

Trackbacks

Use the following link to trackback from your own site:
http://stakeventures.com/articles/trackback/74

Comments

Leave a response

  1. Avatar
    Juha Pohjalainen Fri Oct 21 12:52:23 +0000 2005

    Two questions.

    First: with iteration, do you mean like “2 week period of time [as in XP]” or do you mean specified set of usecases that can take any period of time? My guess is latter, but with that do we land at original position; experienced vs. inexperienced—and experienced wins?

    Second: if more than one developer bids on each iteration, what happens after first iteration? It seems to me that original winner [who got to do first iteration] has big advantage, since she know the code; others have to read and adapt their bids to that codebase, right? Even worse in third iteration?

    I would like to read more about your thoughts on these.

    +j

  2. Avatar
    Jon Wood Fri Oct 21 20:21:34 +0000 2005

    I’m doing something similar to this – although not really using XP, since I’m a one man shop.

    When bidding for jobs I rarely give hourly rates, but instead give a flat quote, “the job will cost you this much”. Clients like it because they know exactly how much they’re going to pay, and I like it because it’s easier to do paperwork when you just need to write an invoice at the end of the job.

    It also has the advantage that if I manage to get the job done quicker than expected I’ve effectively got a bonus for finishing early.

    I do have an hourly rate in the sense that I’ll estimate how long the job will take, and multiply that by how much I want to charge, but it’s more flexible than in most cases.

  3. Avatar
    Pelle Mon Oct 24 02:57:48 +0000 2005

    Juha, With regards to iteration. I think they should be kept as small as possible. 1-4 days. This way it is much simpler to manage as well as estimate for. Basically using XP methods an iteration would be a single user story. Eg. New user goes to site and signs up or User logs on to site. Those are two seperate (but related) iterations.

    As to your question about the developer winning the iteration having an advantage. Absolutely. However another developer, if we are working using bidding could theoretically lowball an offer to out bid the original developer. Practically speaking though, I don’t think that would be necessary.

  4. Avatar
    Pelle Mon Oct 24 02:59:41 +0000 2005

    Jon, Good to see you are doing it. Do you get to split your project into iterations or do you quote on bigger chunks?

    A friend of mine was doing consulting on a specialized product Arev(?) for years using this same approach. Clients were happy and he was happy.

Comments

(sorry javascript required)