Live data from Hacker News

Ask HN: Developers, how do you estimate projects and write proposals?

news.ycombinator.com

61–70 of 109 posts

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#61
post #13

(about estimating - I don't tend to write proposals) You could have a look at https://www.estigator.com (NB it's a half-finished side project right now) I'm no longer a contractor, although I have been, and I'm frequently asked by my new employers to provide estimates for dev tasks. Trouble is, businesses/clients tend to see an estimate as a promise, or a target. From the developer's point of view it is hard to do an…

Great tool! One bug: As soon as I remove the last `div.item` the whole `div#root` becomes empty hiding the whole UI but the `nav.navbar` (Chrome 70)

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#62

Somewhat heretical, but I generally don't. I usually explain that development is an iterative process, and that I generally deliver work as soon as it's done. We talk about the knobs that are available to tune the work to the goal, and how to measure goals. We talk about containing costs, and working together to deliver good value. I find that in general, estimates are rarely, if ever, accurate to any significant deg…

I think you can usually say if something will take hours, days, weeks, months or years. Anything more detailed runs into problems.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#63
This is my approximate proposal and estimation process:

1). This is a new and unproven client, and if so, I go with the gut feel estimate e.g. 3 months, 2 weeks, 6 months to see if they understand how expensive software development (or any custom professional services) could be.

2). Understand if a rough or precise estimate is required. Are they looking for a fixed-price bid? Convince them that fixed-price is not in their interest. If the client insists on the fixed bid and the project is large and undefined, bow out. If the client is looking for a rough estimate, or the project is smallish (3). The client relationship is existing or the client and I are on the same page with the rough costing. If the project is large, explain that the estimation task is large and time-consuming, and ask to be compensated for the task. If the project is small (4). a). Gather understanding and very rough requirements over several meetings, and create a document capturing this information. b). Procrastinate and then break down larger system areas into "epics" c). Create a set of releases that each deliver value to the customer d). Estimate each "epic" and assign reasonably buffered estimate to each release. 5). Walk the customer over the document, timelines, budget estimates.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#64
Within my company, we list tasks and assign a duration and cost to them (could be fixed, hours or days). We use this to generate a quote. Our software of choice is the projects module of https://usebx.com/app (we built this, and it's a glorified to do list, but it really works for us, even on large complicated projects).

We make it clear to the client that the quote is indicative, and may go up if their requirements/operating environment turns out to be more complex than originally described.

If they try and pin us to a fixed cost, we generally refuse the project, just because people are very bad at keeping track of what they originally asked for, even when it's in writing.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#65
post #13

(about estimating - I don't tend to write proposals) You could have a look at https://www.estigator.com (NB it's a half-finished side project right now) I'm no longer a contractor, although I have been, and I'm frequently asked by my new employers to provide estimates for dev tasks. Trouble is, businesses/clients tend to see an estimate as a promise, or a target. From the developer's point of view it is hard to do an…

Nice tool!

It would be really nice to be able to save the estimate to send to clients. Don't necessarily need backend for that - we can store data in the querystring for a fast & easy hack.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#66

You need to separate the R & D. The research is unknown and you can't estimate. The development is known, and if you can use prior experience to estimate. Give estimates in DURATION never as a date. Treat it as a stop watch, anytime interruption happens, the stop watch stops. So 2 weeks can actually take 6 actual weeks. If there's no research and interruption, then you should be able to give a +/- 10% estimate.

Love the "treat it as a stopwatch" idea; do you do anything specific to convey that to the customer? Even if you avoid and "end date", I assume they'll infer it from the start time and duration, and consider that internally. Do you have any experience/advice for R&D estimates? This is something I struggle with alot. We try to bill per _project_ rather than per _hour_, but I'm thinking R&D perhaps necessitates hourly…

You have to put a cost to the interruptions. If they can interrupt you for free then they will. So let's say you agree to a one hour meeting per week, any extra time must cost extra. At the beginning of every meeting, you announce that the time will be adjusted due to the meeting.

If there are new features that are a must have, assuming they are well known problems with solutions. You must state that the complete date is now undetermined till these are sized. You must charge for these features, you must communicate this verbal and in writing. You must be like a lawyer. Imagine how a GPS always re-calibrates any time you diverge from a trip, this is how vocal you must be.

As for research, don't do it. Do only what you know, unless you are being made crazy amount of money and you can't lose. Replace the unknowns/research with knowns.

Someone wants an ML system but you don't know it? Well, maybe you will figure it out in 2 weeks or maybe you won't. Replace it with a expert system if you know that. Perhaps you don't know that, replace it with simple SQL queries and rules if that's the best you can do.

They want a cassandra store? But you have no experience? replace it with MongoDB. They want kafka but you have no experience, and you know RabbitMQ? Use rabbit. Being optimistic almost always comes back to bite you, be paranoid. Abstract away the unknowns with clean interfaces so when the first version is done and the research is done, the new components can hopefully be plugged in with less friction.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#67
post #13

(about estimating - I don't tend to write proposals) You could have a look at https://www.estigator.com (NB it's a half-finished side project right now) I'm no longer a contractor, although I have been, and I'm frequently asked by my new employers to provide estimates for dev tasks. Trouble is, businesses/clients tend to see an estimate as a promise, or a target. From the developer's point of view it is hard to do an…

> Trouble is, businesses/clients tend to see an estimate as a promise, or a target

Even worse, they tend to treat the date/cost line as a promise, but the scope as infinitely flexible.

One other thing that makes me crazy is that a lot of places determine the date by a process that yields the first non-impossible date. (E.g., "Can this be done by Thanksgiving?" Developer yelps and says, "Well, maybe if everything goes right it could be done by Christmas." The PM responds, "Great! Christmas it is! I'll tell the CEO.") But if non-impossible means, say, 5% chance of success, then the developers look like goats 95% of the time.

These days, except with highly trusted partners, I basically refuse to estimate anything over 3 days without formal estimation and a self-calibrating process where any date is a function of product manager choices. (E.g., points, velocity, burndown.) But I find that less and less valuable, as interesting projects typically have requirements volatility too high to make dates actually predictable. Instead I prefer a release-early, release-often approach, hitting any non-artificial deadlines by being ready well in advance and iterating.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#68

I believe only a small niche of IT projects can qualify for "accurate" estimates, and that is tasks such as install Wordpress, swap image, etc, although even in these isolated cases there might still be factors that could easily throw you off with the estimate. For real software development, where you develop a solution to a business problem, estimates are worthless. The thing is, solutions to business problems are v…

Exactly. An estimate is only reliable if you expect to learn nothing during the course of the work. But if we release early and often, we are almost certain to learn things as we go which changes scope.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#69
If this is the first time you estimate a set of work, you will not have the experience to provide an accurate value. You may guesstimate, but then you'll have to multiply that value 2-4x to make sure you don't under-bill. Now, that multiplier is key, it's your buffer.

If you don't have a multiplier, expect to work overtime or divide your revenue.

As you get more comfortable with your estimates and your tools, you can reduce the value of that multiple. I've been able to get it down to 1.5x but the scope of the work was limited and our team was very familiar with the code.

As for the proposal document, there may be templates online. Some agencies create an exact list of features, and wireframes so that there is no scope creep. I recommend you do the same if you have time (some agencies with a good reputation bill for this work). Also, allow your client only two small changes to the design. Anything more, and it's extra money.

Your main problem with quoting will always be properly estimating the amount of work it takes to complete a project. The same project, with two different clients, may go from profitable to a loss. It's very important to pad the work and to gain a lot of experience in a small number of tools so that you may get better at estimating. Specialization is key.

You'll hear some people say that they bill iteratively. It's possible but not every client wants to hear that their project has an undefined cost. You'll still have to cap it at some value in which you can deliver the work.

Re: Ask HN: Developers, how do you estimate projects and write proposals?

#70
post #65
post #13

(about estimating - I don't tend to write proposals) You could have a look at https://www.estigator.com (NB it's a half-finished side project right now) I'm no longer a contractor, although I have been, and I'm frequently asked by my new employers to provide estimates for dev tasks. Trouble is, businesses/clients tend to see an estimate as a promise, or a target. From the developer's point of view it is hard to do an…

Nice tool! It would be really nice to be able to save the estimate to send to clients. Don't necessarily need backend for that - we can store data in the querystring for a fast & easy hack.

A CSV export of the graph data should be fine too.
Post reply on HN