TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Planning and estimating large-scale software projects

328 pointsby kallethalmost 4 years ago

25 comments

ColinHayhurstalmost 4 years ago
&gt; Estimates are one of the hardest parts of software development.<p>And also fundamental. When I was directly estimating big software projects the key, for me, was to trust developers recommendations but apply a different multiplier for each developer. Multipliers ranged from x1 to x3. Those rare devs with x1 were, of course, a blessing. And those with x3 were not necessarily bad; they were often the ones working on the really hard problems. Of course, it meant getting to know those developers and a prior (which we set at x2, for new starters).<p>Individuals were remarkably consistent in terms of their actual performance; so a x1 developer would almost always be a x1; a x1.5 would almost always be x1.5.
评论 #27909712 未加载
评论 #27909686 未加载
评论 #27915927 未加载
评论 #27915373 未加载
评论 #27911979 未加载
评论 #27909842 未加载
评论 #27910117 未加载
评论 #27911698 未加载
评论 #27913240 未加载
评论 #27913830 未加载
评论 #27909263 未加载
评论 #27909619 未加载
评论 #27913254 未加载
评论 #27909187 未加载
kallethalmost 4 years ago
Author here. I&#x27;ve been lucky enough in my career to hold some senior positions, and I thought I&#x27;d give a step-by-step on an approach I took with an &quot;enterprise-scale&quot; software project, and how I stole some techniques from university project management courses to meet with some success. Happy to answer any questions :)
评论 #27909492 未加载
评论 #27911725 未加载
评论 #27914134 未加载
评论 #27911732 未加载
评论 #27910599 未加载
评论 #27909533 未加载
mumblemumblealmost 4 years ago
&gt; you should expect to be held accountable if your estimates are too far off the mark because you failed to do your due diligence when coming up with them.<p>In a perfect world, I agree.<p>In the real world, which has a remarkable knack for failing to live up to expectations, what I find is that companies are rarely willing to allow the development team adequate time to do their due diligence. Answers, in and of themselves, are cheap. I can give you those all day. If you want to be able to hold me accountable for their accuracy, though, then you need to be looking at my <i>correct</i> answer rate sheet.<p>For me, the magic of #noestimates is the magic of open, honest cynicism. If my realistic options are silence and blowing smoke up my boss&#x27;s ass, I&#x27;d really prefer it if they would allow me to choose silence. That way we can both keep our dignity.
antonddalmost 4 years ago
This brings back memories from the days of my early career (an ex-PM survivor here). I would be curious to see some data, even anecdotal, on the success of this approach. Here&#x27;s some interesting statistics from the industry (not specific to software, but you can extrapolate): <a href="http:&#x2F;&#x2F;apepm.co.uk&#x2F;project-management-statistics&#x2F;" rel="nofollow">http:&#x2F;&#x2F;apepm.co.uk&#x2F;project-management-statistics&#x2F;</a><p>In my view, traditional software project management is ineffective. I would put it somewhere between the Myers-Briggs personality test and modern day astrology.
评论 #27908105 未加载
lifeisstillgoodalmost 4 years ago
- Projects only become official and tracked once someone has hacked together enough of a prototype to prove it works.<p>- at this point all project management is pretending it takes 100 managers to land something one girl &#x2F; guy got flying.<p>- stop project managing, stop estimating, and just start treating companies as VC firms. Hire good devs, make them care about your mission, invest in those that take off. Don&#x27;t take the control away from the original devs
agentultraalmost 4 years ago
This is a great breakdown of your process. I&#x27;ve seen many quite like it and have also been asked to make these kinds of estimates myself on projects for many of the same reasons: someone made a promise to another person, signed a contract, planned a release date for something they just made up, etc.<p>What I find frustrating about the whole situation is that no matter what process you use for making these estimates you have a roughly 30-some-odd percent chance of being right. It almost never has anything to do with the process you used when it does go well. If it did estimating software projects would be trivial, wouldn&#x27;t it? Everyone would use this process and we wouldn&#x27;t have 60-some-odd-percent of large enterprise software projects going over time and budget.<p>In reality people have used this very process, I&#x27;m sure, and have been in the 60-some-odd-precent. People have been studying this phenomenon since before I was a nerdy kid hacking on my Amiga.<p>Having a roadmap or a <i>plan</i> to get from A to B is good. It will need to be readjusted as you explore the problem space and navigate the waters so to speak. But the only real guarantee we can make as engineers is that we&#x27;ll make progress in my experience. I&#x27;m only giving really rough estimates in the beginning and those estimates improve as we get closer to our end goal. I only start talking about actual release dates when we get close to being finished and are mostly polishing out the rough corners and have already done a few iterations internally.<p>If someone makes a promise they can&#x27;t keep or have no business making -- in my books -- that&#x27;s their mistake and they&#x27;ve made it a problem for everyone else.
评论 #27910147 未加载
评论 #27909515 未加载
christophergsalmost 4 years ago
Great post. A key point you don&#x27;t bring up is the aftermath, even if you do deliver. Especially in non-tech companies there still remains the tendency to view these projects as &quot;done&quot; after the end of the project&#x2F;MVP etc., with no understanding that sites need ongoing maintenance and improvements. And that this work is still considerable.
评论 #27908150 未加载
评论 #27908081 未加载
ngrillyalmost 4 years ago
&gt; It also tells us how many team-weeks this fictional, idealised project would require [...] by adding all the estimates together.<p>I would be wary with just &quot;adding all the estimates together&quot;. That&#x27;s because we tend to estimate the median or the mode of the task duration, and not the average. Means can be added together, but not medians.
评论 #27909043 未加载
sarks_nzalmost 4 years ago
How to make developers want to hit their deadlines with quality? Startup land.<p>There was no feedback loop that rewarded developers to meet the estimates. Stock options weren&#x27;t an option, and I didn&#x27;t want them to do a sloppy job just to hit the &#x27;deadline&#x27;.
评论 #27912064 未加载
评论 #27911729 未加载
meeslesalmost 4 years ago
The more projects like these I plan and execute, the more I find the need to account for external parties affecting timelines.<p>In the case of the author&#x27;s payment system, say they go with a vendor. At that scale, there may be weeks of contract negotiations for fees, rates, minimums, etc. What if some piece of documentation is flawed and you need to have a back-and-forth with their support? What if they need time to onboard you into their systems?<p>It makes me appreciate Apple&#x27;s supply chain mastery that allows them to deliver exactly on time because they own their whole process inside and out and demand similar rigor from any vendors that supply them. If we could imitate that in software, we could eliminate a huge source of uncertainty in many projects.
评论 #27915676 未加载
pphyschalmost 4 years ago
There are arguably two major phases here, and its only the second one that most folks here find controversial.<p>* Steps 0-2: determining &quot;what&quot; the project &quot;is&quot; (design, architecture, ontology)<p>* Steps 3-6: procuring and allocating resources to complete it (economics, management, politics)<p>It is tempting to decouple the two phases, and as a technologist focusing solely on architecture while leaving the economics up to leadership. However, social factors (the real people involved with the project) are an integral part of actually getting anything <i>done</i>, so I agree with the author&#x27;s premise that the whole process should be viewed holistically (and ideally run by one technologist).
评论 #27910797 未加载
tikhonjalmost 4 years ago
Seems like there&#x27;s a structural issue at play here: the team is accountable for building a specific set of features at a specific time. High-level functionality is fixed and the timeline is fixed. If the estimate is off or something unexpected comes up, what&#x27;s going to give?<p>Answer: everything else. Anything that the planners and executives didn&#x27;t consider ahead of time. Other aspects of the work: code quality, product design, accessibility, performance, robustness, edge-case-handling... Team learning, culture and satisfaction. At the limit, the team will compromise on anything that you don&#x27;t need to claim a feature is &quot;done&quot; with a reasonably straight face.<p>It&#x27;s simply not a good system <i>even when the estimates work out reasonably well</i>—and, empirically, they usually don&#x27;t.<p>To be fair, this isn&#x27;t entirely the fault of estimates in general or this estimation approach in particular; I believe those contribute, but it&#x27;s primarily a reflection of how the company and culture are structured. If you&#x27;re already in a system like that and you can&#x27;t change it, trying to do estimates well might be the best option forwards, but only because you&#x27;re already in a corner.
dpwebalmost 4 years ago
I found it really fluctuates based on the team members. We definitely had 3x 4x differences in productivity between the worst and best on the team. Our estimates had to be good as it determined the size of the sales deal. Most everyone on the team was there for years, so we knew each other well. We could give a solid estimate but with a new team member is more challenging.
grayclhnalmost 4 years ago
Call me crazy, but if we&#x27;re going to call these goals, &quot;estimates,&quot; they should actually be based on real data. Otherwise we&#x27;re just making up numbers.<p>If the relevant data aren&#x27;t tracked or stored anywhere, that kind of tells you how serious the org is about making accurate estimates.
igouyalmost 4 years ago
<a href="https:&#x2F;&#x2F;rightingsoftware.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;rightingsoftware.org&#x2F;</a><p>&quot;Based on first principles in software engineering and a comprehensive set of matching tools and techniques, Löwy’s methodology integrates system design and project design. First, he describes the primary area where many software architects fail and shows how to decompose a system into smaller building blocks or services, based on volatility. Next, he shows how to flow an effective project design from the system design; how to accurately calculate the project duration, cost, and risk; and how to devise multiple execution options.&quot;
dls2016almost 4 years ago
Project management is hard. I wrote and won an SBIR award this year. A much different scale than the article, but I spent a lot of time writing the plan and budget and sourcing components and estimating software tasks. Two months in and a big chunk of that is out the window… haha. Finding connectors and other components has been a big source of pain, especially if purchasing in small quantities. Another example: I bought a consumable product which then immediately became unavailable… so do I try to make do with what I have on hand or make the decision to switch to a replacement?<p>Stressful, but I try to have fun. And extremely satisfying when things work out!
galaxyLogicalmost 4 years ago
Doesn&#x27;t this assume you have the &quot;spec&quot; before you start implementing it? But then how do you estimate how long it will take to come up with that spec?<p>If you have a very good detailed spec you have already done much of to work to make the implementation easy.<p>If the spec is high-level and &quot;fuzzy&quot; it leaves the work of &quot;resolving the spec&quot; to the programmer.<p>So trying to estimate the time it takes to code a system depends on the quality of the spec, and therefore is difficult if there is no standard on how detailed the spec is to be.
评论 #27911902 未加载
28304283409234almost 4 years ago
I&#x27;ve started estimations by their true name: Assumptions.
评论 #27910990 未加载
Aeolunalmost 4 years ago
&gt; Engineering does not work in a vacuum, and there are commercial contracts that will be signed, at a high level, without your involvement. Deals that will have been agreed before you joined the organization.<p>Indeed. And they’ll have been built on lies, damned lies and wishes.
mtippettalmost 4 years ago
I like how he says little-a agile - what most teams use. big-a Agile I reserve for specific Agile methodologies. Most companies aren&#x27;t willing to invest in the rigor and effort for big-A Agile, and so you end up with this weird-ass hybrid.
jussyalmost 4 years ago
From what I&#x27;ve seen the biggest problem is that the estimates are done as part of a sales cycle or to get approval to spend money of some sort.<p>Which is a different motivator to actually getting it done.
iamgopalalmost 4 years ago
I would divide the projected total task in to 5 equal part and again each part in 5 equal part, and just worry about first of the first, after every part completion we can revise the target
dave1999xalmost 4 years ago
No seriously, no.<p>Dive straight into debunking #noestimates but don&#x27;t get to the fact that no one ever really knows what they want.
henningalmost 4 years ago
Bullshit. You can make guesses about the future, but since that is going to inevitably change, it&#x27;s a guess and can never be anything but a guess. At most companies, the scope is going to be radically expanded and looking too far in the future is a complete waste of time.<p>Other people in other fields are held accountable for deadlines because their work does not completely change and is not severely under-specified. If it is, then they are also just guessing.
评论 #27909018 未加载
评论 #27909395 未加载
hnbadalmost 4 years ago
I have to admit I popped a monocle when I saw the estimate for what is described as a rudimentary ecommerce website without even basic features like authentication and payment come down to 43 team-weeks, or in other words 12,040 team-hours. Even at one person per team being billed as $20&#x2F;hr this works out to almost a quarter million dollars.<p>I understand the numbers are given as an example but I think the problem is that the scale of the task hardly justifies the complexity of the planning and using &quot;teams&quot; and &quot;weeks&quot; as sizes instead of &quot;developers&quot; and &quot;hours&#x2F;days&quot;.
评论 #27907616 未加载
评论 #27907758 未加载
评论 #27907618 未加载
评论 #27907538 未加载