Evaluating Programming Hours
Sensiva
Posts: 211
I am curious, How do you guys evaluate programming hours??, on what basis?? , is it related to hardware purchase amount??
So what about you?
So what about you?
0
Comments
And don't fool yourself, numbers are numbers. Doesn't matter if you knock off $500 in programming, or $500 in parts . . . it's still $500 that you're not getting. It just looks different on paper.
Ok, let's forget about parts, after finishing a project, how do you evaluate programming hours?
They basically attach a labor phase, labor rate and labor hour to each part. So, for example, if you have a DVD player in the data base, it might have the typical wires and terminators attached to it, the rack tray and any other accessories, the labor hours to burn it in, install it in a rack, hook it up, program it for AMX or (insert other controller here), installation on site, customer training, etc...
All this might seem a bit much, but you only have to enter it once and tweak it after you have a few of them out the door.
So, for our mythical DVD player the values might be
DVD - Price $399.00
Labor - $65 / hour installation 1 hour
Programming $150 / hour - 1 hour
An AMX Touch panel has much more programming / graphic design labor attached to it.
Here again, one might think that is too much information. But believe me, you already do spend the time doing all this stuff. You just don't get paid for it and hope to make up the differnence in profits.
As you build a bid for a client, all this labor and parts gets thrown in automatically and by the end of your bid you actually have a fairly accurate estimate of the labor for the project. As we've repeated the process and examined the data afterward compared to reality, we've found that we needed to tweak a few things. but overall, we've been pretty pleased with the end result.
We've also noticed having a better handle on misc parts. As you know, the 'trunk-slammer' method of making an educated guess on how many BNC or RCA terminations, but then having that guess be totally worng, can eat up profits from the project. With the data base managing just how many BNC/RCA/whatever terminations you need, we can usually generate a report that has the exact amount of gozintahs and gozoutahs we need. we typically tack on a couple extra to accomodate goofed crimps or whatnot.
We go further with our bids and break up programming into 3 distinct sections.
Graphical User Interface design
Application programming - (the bit that talks to the other system)
Graphical interface programming - the bit that makes the GUI work with the Application programming.
This way the client sees exactly where the time (and therefore costs) are spent.
We deal with each distinct system separately in our bids and apply the above to each and we charge for every minute it is going to take.
At the end of the bid we give a summary that indicates the total labor - application programming - GUI design - installation etc etc for the job.... This way there is absolute transparency with the client - I have to say mostly they are very surprised and impressed to see the detail - as most others in our industry tend to want to group and combine stuff together to mask what's really going on in regards the pricing.....
We never ever discount our software - this guys, is your intellectual property - it should not be something you give away or give cheaply. It is in fact the one area that you can make up for the little margin you make on the hardware. If your client wants a discount - ask him what area of the bid he want you to discount - in the labour - cheaper goods ?? Does he want a cheaper installation with discounted materials and cheap labour ? Software - well ask him what part of control system is he happy to have work marginally well or sometimes for his discount ?
Don't sell yourselves short - don't sell this industry short. There is too much down selling going on already - and for gods sake don't sell the one thing you have that is truly your own - you intellectual property.
Phew got that off my chest - I feel better now....
Once I have a fair idea how long a jobs should take me to do, I round it up, then double it. The doubling part goes in because the way my company contracts jobs, I know for an absolute fact there will be last minute changes (sometimes big ones); there will be time spent hand-holding the end user and instructing them, there will be annoying little unforeseen glitches that refuse to die quickly. We also put as part of every contract a clause that allows them free changes for a month and free service for a year, so all that has to be accounted for. If we know going in it's going to be particularly quirky, the number is raised accordingly.
Once in a while, we get a large project that defies all estimation. I have one that has been running for five years now ... the client always wants to add this, take away that, change something else; it is constantly evolving. For him, we bill it time and materials as we go along.
Ah, time and materials...
Tis the fairest situation of all. Customer can be as picky as they like. I can't complain because.. "It was a great gig. I got paid."
Agreed. But, if you have to quote a job _to get_ the T&M contract... How do people like to estimate their projects?
There are a few considerations that we make, echoed from above:
1 Full custom GUI graphics or AMX standard graphics?
2 AMX Programming: to make GUI work
3 AMX Progamming: to make system work
Anyone got a good rule of thumb?
I try to under-promise and over-deliver as best I can. I generally come up with a good guestimate, then double it. I give them that with about 200 lbs of "This is just a guess and has nothing to do with reality. Don't hold me to this." type stuff. My real time typically ends up somewhere between what I guessed and about twice as much. IT's a win-win situation in my book.
I also have to remind them that I cannot bid a Time&Materials. That's the whole point.