5 ms·
I cannot identify with this article. Personally I know that my estimates are wrong before and after I make them and I never believed any estimate that I made .
by bad_user 14y ago
I cannot identify with this article.
Personally I know that my estimates are wrong before and after I make them and I never believed any estimate that I made ... I only make estimates because on every project I worked on, either managers or clients wanted those estimates. So it was for their peace of mind.
On the other hand I always make estimates good enough to have something working, like a proof of concept, because in case the shit hits the fan, you at least want to show the client or the manager that some progress has been made.
This is yet one of those articles that speaks about the pitfalls of the Waterfall model, hinting on the virtues of the various Agile methodologies and it's kind of nauseating. On one hand I feel some arrogance on the part of the writer, on the other hand it reminds me of how awful consultancy work is, because consultancy only works well when you're doing the same thing over and over again.
My favourite development methodology is easy to explain. It's a simple cycle: hack <-> ship. I also lie when giving estimates.
- obviouslygreen 14y agoI also lie when giving estimates. This is the only part I disagree with. You can't lie about something you don't know, and it's the nature of an estimate that you cannot possibly know whether it's right... if you did, it wouldn't be an estimate. You may present part or all of an estimate that's just not what you actually believe, but it might still end up being right if the right things go wrong. Estimates suck. I'm pretty good at estimating, and doing it still sucks; they are never exactly right, for too many reasons to enumerate. Unfortunately, in many situations (e.g. consultancy, as you mention), they are important sales tools... I'd venture to guess I'm not the only small business owner that considers estimates one of the many good reasons to move from a consulting to a product development model once the means are available.
- vinceguidry 14y ago> You can't lie about something you don't know Sure you can. You can use made-up regulations, bring up something scary-sounding that actually has no bearing, anything that the client can intuitively grasp that isn't, "I don't actually know this particular python library and I know it will take me 2 weeks before I can adapt it to the app."
- vinceguidry 14y agoLying in estimates is pretty much a necessity, there are always a lot of unknowns going in. One of those essential people-management skills is to lie and fudge with enough art so that you don't lose too much face when they turn out wrong. I never deliver an estimate with any measure of confidence in my words/tone, and I always have a short list of things, made up or no, of things that might push it back. If someone were to try to nail me down and is expecting me to put my credibility on the line with a hard estimate, I'd say, "let me get back to you on that after I do some research," then promptly forget about them and look for another project. There are enough reasonable people in the world to work with that I don't have to put up with unreasonable ones.
- calinet6 14y agoI, too, cannot identify with this article. Maybe it's the fact that I'm really not overconfident about my abilities; in fact I usually underestimate them. Secondly, I'm quite a good estimator of all things, including project timelines. In fact, I've been asked to make timelines of various projects because I have a good grasp of all the factors. I think that's the key. You need to understand most of what goes into the project—as well as how long it will take to learn and execute on the things you don't know. You learn all this from experience doing your work, but I think more importantly, I am good at estimating timeframes because I have a broad knowledge of not only programming, but also human psychology, collaboration, motivation, social factors, and unknowns and doubts. It takes a little bit of the entire human experience to accurately paint a picture of what someone (or a team) is able to do. You need to understand the complex nature of the problem, and then use the facts rather than trusting your gut. I have a good liberal arts education and fantastic parents to thank for this viewpoint (one of the reasons I still detest the insufferable anti-university movement—if you only learn what you need or want to know, you get a horrible education). Am I overconfident in my ability to estimate? Probably. But no one cares, I'm usually right.
- rwallace 14y agoIf you read the linked Kahneman article, it actually addresses your comment. It's like the stock market: some percentage of traders will get lucky, and inevitably they will attribute their success to their judgment. No, wasting yet more years of your life sitting in classrooms does not confer the ability to predict the future. What does confer that ability, is being lucky enough to be handed a series of projects where the hard parts are relevantly similar to your previous projects and, fortunately, nothing went very wrong on the novel parts. And it's great that it worked out for you that way, but that doesn't mean the OP was wrong.
- spiffytech 14y agoWhile some people attribute their luck in the stock market to skill, it is still possible for someone to have actual skill in making money in the stock market. Some high-profile billionaires and numerous quants have demonstrated this. The fact that you made money doesn't mean your income is solely, or even primarily, attributable to luck. Likewise, it's possible the grandparent has been lucky that the projects they've forecasted aligned well with their areas of knowledge and hit no problematic snags. It's also possible, however, that one can develop the ability to make mostly-correct predictions about project timelines. Being a rarity doesn't mean it's flat-out impossible, or even unbelievably improbable.
- kevinxue 14y agoActually I never make a good estimation, so i just multiple 3 now. I also believed in hack/ship cycle, but after several rounds i found the product became unmaintainable and it's harder and harder to add new feature. Does this mean I need to improve my coding skill to make this cycle works ?