Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question is something that's been bugging me for the past 3 months since I switched from being a freelancer to working at a Web Design firm.

Our sales people often ask us something similar to the following series of questions:

  • How much does it cost to program a widget
  • How many hours will it take to convert this website to this software.
    (Without knowing what the website currently runs)
  • etc

  1. How can we give a quote without any information? (No, I can't ask for more info!)

I have another question if a project goes over budget it's bad. Recently, I missed an entire menu when calculating the cost of transferring a website over to a new platform so the project went over budget. My boss was not happy at all, and it's my opinion that some things like this can't be avoided.

   2.  What is the general practice for dealing with going over budget
        and do projects like web development often go over budget?

If you work at a web development/design/similar company:

   3.  How does your billable hour system work?

For me, we have a time tracking application that we record how many hours we spend on which project and if they are billable or internal (AKA non-billable). If don't meet xx billable hours a week we can get in trouble/fired eventually. Work you do for the company or for clients that isn't billable isn't part of this system, and we often have to do internal work, so I'm wondering if any alternative systems exist.

EDIT: Ok I am a developer at this firm not a designer :)

Second, I am paid salary, but here is how management looks at it. You have 35 hours a week that you must work. You could be doing work that they bill to clients in that 35 hours and you should. If they figure out a project will take 50 hours and I take 55 hours, that 5 hours could have been spent on another project that wasn't over budget so we just "lost" money.

Another example is that if I only have 1 project, that is due in two weeks and I spend a day doing internal work, some how we lost money because I wasn't working. If I worked that day, I would finish a day early and still have no work. Either way, the work is contract so we will get paid the same amount regardless of which days I work!

share|improve this question
4  
A common misconception is "I cannot ask for more info!". You usually are told you can't, but if you go at it enough you end up being able to. –  Vinko Vrsalovic Sep 26 '10 at 9:09
2  
I find it a bigger problem when I do accurately estimate and they arbirtrarily cut it back becasue the client won't accept that and then I get blamed for not being within the hours I told them were too low. –  HLGEM Sep 27 '10 at 15:32
    
Turn it around. Ask your sales people for an accurate answer to "How long will it take to close a sale?" :) –  CraigTP Oct 11 '10 at 15:28
    
Must be nice to have to only work 35 hours. –  Rig Aug 27 '12 at 15:47
    
@HLGEM That's why you use "Scotty" estimates. Like Scotty from Star Trek, you always overestimate how long something is going to take/how much it's going to cost so there's room for the client to try and talk the time/money budget down. If you tell them what you think it will actually take and they demand less, you're stuck. –  GordonM Aug 27 '12 at 18:52
add comment

6 Answers

up vote 4 down vote accepted

Our sales people often ask us something similar to the following series of questions:

How much does it cost to program a widget How many hours will it take to convert this website to this software.

Why are your sales people asking the designers? Sales should have a prestocked list of quotes and system for estimation that has little, if any, correlation to your actual costs. I'm assuming you are salaried.

How can we give a quote without any information? (No, I can't ask for more info!)

Short answer? You can't, don't try.

The long answer is still short. If I call you up and say I have a website were people can login, post messages to other users, upload pictures, and make friends, what would it cost to build, what would you say? I could have described the worst social network imaginable, or Facebook. You don't have enough information so you can't give an accurate assessment.

I have another question if a project goes over budget it's bad. Recently, I missed an entire menu when calculating the cost of transferring a website over to a new platform so the project went over budget. My boss was not happy at all, and it's my opinion that some things like this can't be avoided.

Define "over budget." Again, I'm assuming salary not hourly. If you went over your time budget, pull some long nights and don't make the same mistake (of missing something) again.

For me, we have a time tracking application that we record how many hours we spend on which project and if they are billable or internal (AKA non-billable). If don't meet xx billable hours a week we can get in trouble/fired eventually. Work you do for the company or for clients that isn't billable isn't part of this system, and we often have to do internal work, so I'm wondering if any alternative systems exist.

I'm not sure how I would set that up if I had to create a record of "billable" hours. You would probably wind up with a hundred hours +/- a few ever week. I don't stop thinking about code, should that count?

share|improve this answer
    
Thanks for your answer, it was quite helpful, however I think I wasn't clear about a few points in my original question. I'm a developer, not designer. We are a web design firm yes, but all our sites use a CMS, and have some degree of programming involved. I am paid salary, but we can still go over budget, I'm not exactly sure how it works. If we quote x amount of dollars we assume it will take y amount of hours. Somehow my boss assumes if I take y+1 hours that 1 hour could have been spent on another project so we lost money. –  Brandon Wamboldt Sep 26 '10 at 11:40
    
@Rouge: Get better with your estimations. If you find yourself continually going over your allotted time then start increasing the number you hand to them when they ask how long. –  Josh K Sep 26 '10 at 17:03
add comment

Do what Scotty does: come up with a reasonable estimate, and double it.

Your doubled estimate will a) usually be more realistic, because humans are crappy estimators, b) give you a little bit of slack, so that you have room for sudden features and other emergencies, and c) allow you to occasionally come in under time and under budget.

Never mention the fact that you are doubling your estimates to your boss, or to sales. Businesspeople are delicate creatures, and often can't handle the hard truths we engineers have to deal with.

Good luck.

share|improve this answer
1  
Don't tell, but I actually do at least a x4 because I'm like most programmers who seriously overestimate what I can get done in an hour. Problem is, my manager complains that my estimates are too long (A week! I can't tell them it'll take a week! I'll tell them a day...). Even when the estimate is accepted, I find that development tasks are like goldfish - they grow to the size of their tank - so I still don't get time to play Tetris. For some reason, however, I wouldn't have it any other way... –  Kramii Sep 26 '10 at 5:51
    
Double is leaves too small a margin. I always go by the rule of multiplying with pi. –  bjarkef Sep 26 '10 at 15:42
    
What if the estimate is too high then and we start losing clients, wouldn't that also be bad? –  Brandon Wamboldt Sep 27 '10 at 10:00
    
@Rogue Coder: It's usually best to give sales accurate estimates (and by accurate, I mean doubled, or even pi'd or quadrupled estimates). If sales is pressuring you to lie about the amount of time it is going to take so that they can pack in more work, they are creating problems for themselves. But I think that you're making assumptions about what sales wants to hear -- try the higher estimates; if you start delivering stuff on time, and on budget, you might find yourself with a very happy boss, and happy salespeople. –  Patch Sep 27 '10 at 18:05
    
@Rogue Coder: If it will take x amount of time, then that's how long it will take, even if sales try to talk it down. If you start losing clients, reduce your rate (or rather, offer them a "discount" on your rate). –  Chris Buckett Sep 27 '10 at 19:51
add comment

I think the best thing you can do is make an itemised list in your quote. Putting times next to each "task". Breaking it down like this will not only help you think about what needs do be done, but will also tell your boss and/or client the scope of your quote. It would be great to get this scope/quote signed off before you begin work by your boss/account manager/client. This way, if you forget something, the blame can be spread, and it doesn't all fall on the developer.

I think if you can't get any extra details about the project, you have to show the people evolved, exactly what you assumptions are.

This is also good because one you have done a few of these quotes, you can refer back to old ones when you are creating a new one.

You can attempt to take in Hofstadter's Law, but that will never work.

share|improve this answer
1  
We do this to an extent. I create a list that says: CMS install 1 hour, events module 4 hours, blah blah 6 hours, content conversion 10 hours. The two problems with this is they are estimates and the sales guy converts these to completely different things when sending out the contract. This causes an issue where clients some times will remove a part of the project because the sales guy listed "Core Functionality IV" as "Useless feature XII". The client doesn't want it, but it's actually required work and so I lose required budget. –  Brandon Wamboldt Sep 26 '10 at 1:06
2  
The items should be listed at a level where each takes at most one hour. "Events module 4 hours" can easily mean 40 hours if you don't drill down in it enough. The idea isn't to send the client the detailed plan, but to be able estimate better via having chunks your mind can comprehend whole, not to mention the fact that such a detailed plan will help the design and implementation afterwards. –  Vinko Vrsalovic Sep 26 '10 at 9:08
add comment

This is really only an answer to the first part of your three-parter, but it's a BIG question.

Here's what I've recently started doing. And this is after a LOT of soul-searching about this very sort of thing.

I reply to a request from a prospect or client with what I call a "Good-Faith Estimate". It's a dollar figure that is padded nine ways from sunday for total CYA. I tell them this number is based on my experience of projects of roughly the scale of the one being considered here.

I tell them their first invoice, due at kick-off, is 25% of the estimate. For that price, we will perform a complete requirements-gathering effort and write full, detailed specifications. Depending on the size of the project, that might be several weeks of work. At the end of that, we'll have a complete set of documentation, AND we'll know how we did on that estimate. If at that point we need to fine-tune the price (and it could go up OR down), we'll do that and let the client know.

If the price goes up and the project is now unsustainable, it's called off at that point with no further payment due. This is obviously an undesirable outcome, and should be considered the last-resort outcome. Plan B is to rework the project requirements to bring the scope down into the project budget, etc. There's a lot we can try before we call the whole thing off, but if we NEED to, right there is where we can.

Assuming we don't, we'll go forward with the (possibly revised) total price, 50% of which is billable at that point, and the final 25%-or-so at delivery and acceptance. Everybody is on the same page, nobody is feeling like they had to pay money for an intangible like "analysis", and everybody is (ideally) happy.

So far I've had pretty good results with this. It certainly beats hitting the client up for a separate billable for analysis/specification work. Nobody wants to pay for that. But if you hide it in the first 25% of a total project price, it becomes instantly palatable and understandable.

share|improve this answer
    
This answer apparently didn't get much attention, but it gets an upvote for me because 1. It offers specific, actionable advice, 2. It is pragmatic, and 3. It is based on real-world experience. –  Robert Harvey May 11 '13 at 18:09
add comment

You must find your way to more information. I've never given even the estimation of any project if the requirement has not been stated clearly. If they persist you can't have that, you better just quit.

share|improve this answer
add comment

You are in a very common scenario. Sales don't have a clue and rely on technical people to do their job. You will fail again and again to give accurate estimates because it's impossible to know.

What you actually do is called empirical estimation.

You get better at that with time and experience.

Is there any other we designer in the company ? If yes, I highly suggest you to do Planning Poker. It's a very powerful collective estimation technique.

Planning Poker is a consensus-based technique for estimating, mostly used to estimate effort or relative size of tasks in software development.

It will helps you getting more accurate estimations by using knowledge and experience of more people, and the estimation responsibility will be spread across the team instead of one single person. The sales will be happy since they will get more accurate estimations. And it's easier to say "we can't estimate" when you are 4 or 5 than when you are only yourself.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.