News for hackers. Stuff that matters.
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @04:11AM (#19671959)
An important aspect of being a professional software engineer is having the backbone to sometimes say things like:

- “I don’t know yet enough about the problem to give you even a rough estimate. If you’d like, I can take a day to dig into it and then report back.”

- “This first part should take 2-3 days. 5 on the outside. But the second part relies heavily on an API whose documentation and error messages are in Chinese and Google Translate isn’t good enough. I’d need to insist on professional translation in order to even estimate the second part.”

- “The problem is tracking down a bug rather than building something, so I don’t have a good way of estimating this. However, I can timebox my investigation and if I’ve not found the cause at the end of the timebox, can work on a plan to work around the bug.”

You need to be willing to endure the discomfort of looking someone in the face, saying “I don’t know”, and then standing your ground when they pruessure you to lie to them. They probably don’t want you to lie, but there is a small chance that they pruessure you to. If you don’t resist this pruessure, you can end up continually giving estimates that are 10x off-target, blowing past them as you lose credibility, and your running your brain ragged with sleep-deprivation against a problem you haven’t given it the time to break down and understand.

But when you advocate clearly for your needs as a professional, people are generally reasonable.

Re:Why software projects take longer than you think – a stat... by koonsolo on Tuesday April 16, 2019 @04:47AM (#19672112)
> They probably don’t want you to lie, but there is a small chance that they pruessure you to.

In my experience, most of the time there was pressure. I remember a funny conversation between my project manager and a colleague:

PM: "We need to have X as soon as possible, how long will it take you?"

Dev: "Oh that's, easy, I can finish it tomorrow."

PM: "Tomorrow??? That's impossible, because it needs a and b, no?"

Dev: "Yes you are right... I can probably finish it by next week."

PM: "Next week??? That is a long time! It's only a, b, c and d that needs to be done. Does it all take that long?"

Dev: "You are right, I can probably finish it sooner. I can get it ready by this Friday."

PM: "That is perfect! The customer wanted to put in production on Monday, so we can now confirm. Thanks!"

I overheard that story (open office), and it was a real facepalm moment.

Re:Why software projects take longer than you think – a stat... by analog31 on Tuesday April 16, 2019 @09:53AM (#19673584)
And this conversation is happening in a two hour stand up meeting with a dozen people including upper managers.
Re:Why software projects take longer than you think – a stat... by squarecog on Tuesday April 16, 2019 @05:52PM (#19677679)
Can you explain which part, in your opinion, is facepalm worthy?

In your example conversation, the developer starts off by demonstrating that they are not good at thinking through how long things take them, by giving an impossibly optimistic estimate. Even the PM, whose job is not to figure out how to build stuff or how long building stuff takes, knows the estimate is wrong, and pushes back on it, pointing out dependencies the Dev appears to not have considered.

The dev comes back with another estimate, also provided on the spot, without actually thinking through all the tasks, problems, and potential ways to streamline / accelerate. The PM, having just had the dev's lack of thorough thinking with regards to complexity estimation amply demonstrated, asks the Dev to think more carefully, a third time.

Are we facepalming at the dev who can't be bothered to actually consider what it will take to get the thing done, or the PM who for some reason accepts the 3rd estimate, even though the dev appears to just be randomly generating numbers? Both?

Re:Why software projects take longer than you think – a stat... by koonsolo on Wednesday April 17, 2019 @03:12AM (#19680448)
I'm facepalming at both of them:

1. The PM just wanted it done by Friday, because the customer wanted it by Monday. This was clear at the end of the conversation, not at the beginning. So it just could have been a "Can you get this done by Friday? Because the customer wants to use it on Monday"

2. The developer clearly had no backbone, and was just throwing numbers to see what the project manager would like. 1 day? Too short! 5 days? Too long! 3? Perfect! Estimates might be a guessing game, but not a guessing game on how long the PM thinks it should take.

So yeah, facepalm to both of them, and the whole situation. But I must say that they were definitely not incompetent people. The PM was one of the best I worked with, and the dev was a smart passionate coder. It was just that situation that was a bit absurd.

Proper way on how to do this:

PM: Can you give me a deadline (not estimate!) on when you can finish X? The customer needs this ASAP, so it has priority over your other tasks.

DEV: Let me look into it and I'll let you know in half an hour. (Works out estimate, possibly asking input, adds a buffer because deadline != estimate, looks into his own schedule of meetings etc).

DEV: I can get it ready by Tuesday.

PM: I'll notify the customer.

Re:Why software projects take longer than you think – a stat... by flukus on Tuesday April 16, 2019 @08:41PM (#19678649)
It's this part where the estimate becomes a deadline:

> PM: "That is perfect! The customer wanted to put in production on Monday, so we can now confirm. Thanks!"

> pointing out dependencies the Dev appears to not have considered.

I'm not sure if they're dependencies or other priorities in this case. I've had managers before ask for an estimate and and I've given them one (2 days), then they've assumed that I'm dropping everything I'm in the middle of and told clients it would be done in 2 days.

The problem with estimates is that the people asking for them really want promises.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @06:35PM (#19677920)
> can't be bothered

or who doesn't know that "I'll need some time to get back to you on that" is an acceptable part of their vocabulary.

Re:Why software projects take longer than you think – a stat... by golergka on Tuesday April 16, 2019 @06:23AM (#19672424)
> Does it all take that long?

That's just a question. Asking questions is OK. If you have such a high need to please other people and such a low self-confidence that you will change your answer simply if someone asks you twice, that's the problem with you, not them. I say it as someone who have been like that and have changed it through therapy.

I was a nervous mess and always thought that people around me don't like me, pressure me and in general was very nervous around any interaction where I and other person have some disagreement. But turns out, firmly saying "No" is quite OK, people react well to it, respect you for it and nobody is going to fire you for giving good estimates.

Re:Why software projects take longer than you think – a stat... by jshowa3 on Tuesday April 16, 2019 @08:52AM (#19673177)
It actually is a problem with them because when someone asks "Does it really take that long?", they're implying that it shouldn't. Of course, in reality, they have no idea either and if they're asking you how long it should take, they should accept your answer, not try to weasel out less time.

But are they ever going to admit that they have no idea and accept your estimate on face without playing BS mind games? Probably not. But for some reason that doesn't stop them from trying.

I've never seen someone try and do this with a home contractor.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @09:58AM (#19673643)
It can also be that they flubbed at communicating and meant to ask, “what are the things that make it take that long?” Underlying that question would be, “are we on the same page about the scope of this?”, “Are you making business assumptions that I can actually provide updated information about?”, and “Are you lacking resources/clarity that I can get delivered to you?”. Thats a charitable interpretation but it’s occasionally the correct one.

It might also be that they’re surprised at the complexity and want to know more. For this reason, the important part of an estimate isn’t the number. Its the task-breakdown and the identification of risk.

Re:Why software projects take longer than you think – a stat... by golergka on Tuesday April 16, 2019 @11:33AM (#19674523)
Explicit is better than implicit. Asking is better than guessing. If you think that someone is implying something, ask them.

In most cases, people who ask "Does it really take that long?" are giving you their first emotional reaction and haven't actually thought it through deep enough to decide to manipulate you. They're upset and they want to make sure that they understood you right - which is a thing people often do when they get bad news, and I cannot blame them: if you get upset about something, at least make sure you really should be upset.

So, you should react either in a spock-like "stupid rational", giving no thought to what they might be implying whatsoever with a simple "yes", or, even better, in an emotionally-aware rational way: acknowledge their emotions and offer options. There are always options and trade-offs, they just need to be clearly communicated. Not "OK, I'll do it in three days instead of five", but "I'll can do it in three days with prototype quality so we can test it out, but it will be buggy as hell, not fit for production, and you should document it". I've never had a manager who had a problem with that, and I despite how popular horror stories are, I really doubt that there's a lot of them out there.

Your manager cares about the product, he's emotionally invested in it and wants everything to go as fast as possible - it's not a bad thing! It's only bad if you view his disappointment as your fault - but it's not. It's just how things are. As a developer, you're often a messenger bringing bad news. There's no way around it, and you have to learn to deliver bad news for people. And separate these bad news from you and your professional self-confidence.

Re:Why software projects take longer than you think – a stat... by jshowa3 on Tuesday April 16, 2019 @02:38PM (#19676134)
Your manager cares about the product, he's emotionally invested in it and wants everything to go as fast as possible - it's not a bad thing!

If he was emotionally invested in the product, wanting everything to go as fast as possible is not necessarily a good thing. I can make things go as fast as possible, but then the questions become no unit tests? no integration tests? spaghetti code?

And this isn't a response from a few go around either. This is often the first thing that comes out of their mouth, right at the beginning of the project.

What happens is as follows:

1) Your manager has software development background and uses it as a superiority contest to show how much better they are than you. His lack of awareness regarding variable skill level or lack of knowledge of an existing system seems to factor little into the question. So one could argue the manager could be more empathetic in this case.

2) Your manager knows nothing about software development and really has no business asking such questions in a condescending manner. So they either pretend to know or they promised someone higher up the chain even though they had no idea, but were scarred to say so, thus the cycle has completed.

3) Your manager has a calm, rational head and accepts your estimate, your explanations, and has a good understanding of the product to negotiate with you in terms of requirements without getting emotional. The manager trusts understands that your estimate is, more than likely, not going to be accurate but accepts the changing winds and doesn't hold you to the fire.

I totally agree its better to be explicit. Which is why it matters to avoid overly emotional reactions and accept what people tell you so hand waving can be avoided.

But this is more of a prevailing problem in software requirements in general. It's rare that developers get projects with clear ideas on what needs to be done because of the ignorance or unknowns in questions that need to be asked in order to deliver a product. Often the developer has to decide, and when they do and its wrong, then they have to fix whatever they decided because no one explained, or bothered to explain, how something was supposed to work in the first place.

Re:Why software projects take longer than you think – a stat... by jsight on Tuesday April 16, 2019 @02:28PM (#19676058)
> I've never seen someone try and do this with a home contractor.

I'm surprised that you haven't. I've certainly seen the same kind of thing happen, though admittedly it is usually based on cost rather than time. Ultimately, though, the discussion was the client disbelieving a high effort estimate.

Re:Why software projects take longer than you think – a stat... by biql on Tuesday April 16, 2019 @08:38AM (#19673100)
This is gold. Besides, if someone doesn't react well to your honest estimates, this is probably a red flag and you're better off letting them find someone else. After all, this is supposed to be in everyone's best interests.
Re:Why software projects take longer than you think – a stat... by SkyBelow on Tuesday April 16, 2019 @03:18PM (#19676458)
>Asking questions is OK.

Is it?

Questions have built in assumptions and implications. Most questions don't have enough to be of concern, but some questions definitely imply things beyond the question itself. When asked 'Does it all take that long?', many hear an implied 'Make it not take so long.' command. It is not implied all the time, but it is implied often enough. This does not mean someone has low self-confidence or needs therapy.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @05:10PM (#19677357)
If you hear a 'Make it not take so long.' command, thats not an unreasonable interpretation. However, it is also one that should be questioned because it clashes with how software projects work.

If you go from "my boss gave me a command" to "I must execute the command and not question it" without exercising independent judgement, then I would assert that you do have low self-confidence. Whether someone needs therapy is a deeper question that we should be hesitant to answer for another person. But therapy was tremendously helpful for me in realising how my personal and professional life were held back by my reluctance to trust my own judgement or endure the discomfort that can come with honest, respectful, collaborative confrontation.

Re:Why software projects take longer than you think – a stat... by afarrell on Wednesday April 17, 2019 @02:25AM (#19680224)
> reluctance to trust my own judgement

I should make explicit: Part of trusting ones own judgement is also being willing to say, “I don’t have enough knowledge/experience to make a trustworthy judgement here.”

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @06:57AM (#19672561)
This is the core of my point. Therapy was helpful for me learning it as well.
Re:Why software projects take longer than you think – a stat... by slavik81 on Tuesday April 16, 2019 @07:35PM (#19678288)
> That is perfect! The customer wanted to put in production on Monday, so we can now confirm.

Here you can see the exact moment when an estimate became a commitment.

Re:Why software projects take longer than you think – a stat... by commandlinefan on Tuesday April 16, 2019 @10:31AM (#19673906)
Remember - the pressure is to get you to work unpaid overtime under the (mistaken) belief that more hours = more software.
Re:Why software projects take longer than you think – a stat... by bg4 on Tuesday April 16, 2019 @11:30AM (#19674494)
It's about having "passion"!
Re:Why software projects take longer than you think – a stat... by haggy on Tuesday April 16, 2019 @11:53AM (#19674715)
oh man this hits close to home
Re:Why software projects take longer than you think – a stat... by rick22 on Friday April 19, 2019 @06:07AM (#19698270)
"We want only people who are passionate and are risk takers"
Re:Why software projects take longer than you think – a stat... by maerF0x0 on Tuesday April 16, 2019 @12:41PM (#19675141)
to avoid downvotes add sources.
Re:Why software projects take longer than you think – a stat... by jnaddef on Tuesday April 16, 2019 @01:20PM (#19675467)
Can you add sources to justify this statement?
Re:Why software projects take longer than you think – a stat... by maerF0x0 on Tuesday April 16, 2019 @02:09PM (#19675866)
I was trying to say, In my experience controversial comments are better received w/ sources to back the items.

At the time I made my comment the Parent comment had a negative score and I was trying to be helpful to commandlinefan .

Re:Why software projects take longer than you think – a stat... by regular_person on Tuesday April 16, 2019 @04:30PM (#19677031)
Just curious, what sort of source would you expect for that? An article from Manager's Monthly about tips on tricking your employees to do free work?
Re:Why software projects take longer than you think – a stat... by maerF0x0 on Wednesday April 17, 2019 @04:18PM (#19686132)
ah. I see now what's gone wrong. I thought I commented on the parent comment about

> under the (mistaken) belief that more hours = more software. reply

I'd delete it if I could.

Re:Why software projects take longer than you think – a stat... by kthejoker2 on Wednesday April 17, 2019 @06:53AM (#19681398)
#1 source of employee stress is deadlines.

https://www.shrm.org/resourcesandtools/hr-topics/employee-re...

Re:Why software projects take longer than you think – a stat... by Aeolun on Tuesday April 16, 2019 @05:57AM (#19672344)
> But when you advocate clearly for your needs as a professional, people are generally reasonable.

This has not been my experience. People want ‘estimates’ at all costs, tell you to not worry about any accuracy, and then a week later tell your manager you committed to x date.

Re:Why software projects take longer than you think – a stat... by nahname on Tuesday April 16, 2019 @07:30AM (#19672720)
As long as software is a cost center to your company, it will be treated this way. Trying getting a job at a company where software is a core concern. Ideally with a CEO that is not from a marketing/business background.
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @07:50AM (#19672832)
Re:Why software projects take longer than you think – a stat... by eikenberry on Tuesday April 16, 2019 @03:34PM (#19676583)
> In the real world, picking up a new language takes a few weeks of effort and after 6 to 12 months nobody will ever notice you haven’t been doing that one for your entire career.

Spoken as someone who has never taken the time to fully master a programming language and, from the sound of it, has never worked with someone who has either. The difference between someone who has spent 6-12 months with a language compared someone who has spent 6-12 years is night and day. From the general tone of the article, he obviously focuses more on the business value than on the technical side and that is a pretty good approach for making money. But I'll take Peter Norvig's advice (http://norvig.com/21-days.html) over this guys when it comes to mastering a language.

To be fair most of the content of those articles is pretty decent though and it is just a pet peeve of mine when people claim that mastery of your medium doesn't matter.

Re:Why software projects take longer than you think – a stat... by Aeolun on Tuesday April 16, 2019 @08:36PM (#19678618)
In my experience, having mastery over one language translates more or less directly into being at least journeyman in all others.

If you are working with an apprentice, whatever you do, it will seem like you are really experienced.

Re:Why software projects take longer than you think – a stat... by 52-6F-62 on Tuesday April 16, 2019 @04:36PM (#19677067)
Thanks for posting that Norvig post. It's fantastic.
Re:Why software projects take longer than you think – a stat... by SamuelAdams on Tuesday April 16, 2019 @02:27PM (#19676049)
Thanks for the links! I really wish I read these when I was in my undergrad, they are really good!
Re:Why software projects take longer than you think – a stat... by 52-6F-62 on Tuesday April 16, 2019 @04:33PM (#19677051)
In my experience, that's not necessarily actionable advice. (the first link)
Re:Why software projects take longer than you think – a stat... by kirRoyale on Tuesday April 16, 2019 @08:25AM (#19673014)
You are right, great posts. Thanks for sharing.
Re:Why software projects take longer than you think – a stat... by sidlls on Tuesday April 16, 2019 @01:08PM (#19675364)
One thing I've learned working in both kinds of companies is that having software as the core concern of the business isn't automatically a shield from bad project management or bad engineering management.
Re:Why software projects take longer than you think – a stat... by c0vfefe on Tuesday April 16, 2019 @01:30PM (#19675537)
'Not considering software a cost center' is a necessary but insufficient condition for healthy estimation. A software company often appreciates you more, but is still susceptible to the other myriads of management pitfalls.
Re:Why software projects take longer than you think – a stat... by depressed on Tuesday April 16, 2019 @02:34PM (#19676102)
I have watched a manager with a master's degree in computer science pull this BS. At an enterprise technology company. He would go as far as repeating a question over and over until he got an answer he liked.

The senior members of his team had a culture of eighty hour work weeks. Draw what conclusions you may.

Re:Why software projects take longer than you think – a stat... by Consultant32452 on Tuesday April 16, 2019 @11:40AM (#19674602)
The biggest problem is that engineers tend to think in man-hours and managers think in calendar time. If I say a project will take 2 days, it'll probably take 2 days, but it might span 4 calendar days because other things are going on.

The biggest thing that has helped me here is to keep a running list of my tasks, an informal Gantt chart, and show it to the manager whenever they ask me about an estimate. This helps me communicate in a way they understand.

Re:Why software projects take longer than you think – a stat... by Bartweiss on Tuesday April 16, 2019 @01:50PM (#19675721)
There's a lot of bad to be said about how companies use story points and velocity and all the rest, but I do greatly appreciate the way they delink "amount of work" from "delivery date". It's a nice built-in way of expressing time requirements separately from schedule, which is a lot smoother than constantly reminding people that the difference exists.
Re:Why software projects take longer than you think – a stat... by retiredcoder on Tuesday April 16, 2019 @07:03AM (#19672589)
“Let’s just put some number in those boxes”, next thing you know it is signed on blood...
Re:Why software projects take longer than you think – a stat... by singingfish on Tuesday April 16, 2019 @08:53AM (#19673181)
That's easy. Guess a number. Add some units. Double it. Double it again. Then double it again. Add a zero. Done.
Re:Why software projects take longer than you think – a stat... by Aeolun on Tuesday April 16, 2019 @08:53PM (#19678708)
Or, how to make people impressed by the fact that you’re always 10 times faster than your estimates.
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @06:50AM (#19672537)
This is a real thing that happens, but its frequency varies from organisation to organisation.
Re:Why software projects take longer than you think – a stat... by mcherm on Tuesday April 16, 2019 @09:55AM (#19673613)
> People want ‘estimates’ at all costs, tell you to not worry about any accuracy, and then a week later tell your manager you committed to x date.

I like to handle this problem by providing an estimate RANGE.

Re:Why software projects take longer than you think – a stat... by Aeolun on Tuesday April 16, 2019 @08:58PM (#19678731)
That doesn’t really matter. In these cases you often have information akin to ‘we want a webshop’, so you estimate something more or less reasonable, then a few weeks later you find out they actually meant ‘we want a duplicate of Amazon’.
Re:Why software projects take longer than you think – a stat... by TheHypnotist on Tuesday April 16, 2019 @11:12AM (#19674322)
Typically when we need something budgetary from a vendor we use the +/- 50% rule. That shouldn't be hard not to screw up.
Re:Why software projects take longer than you think – a stat... by koonsolo on Tuesday April 16, 2019 @04:37AM (#19672073)
I once had a manager/CEO who thought you can negotiate the planning, the same as like a price. "The customer always wants to get it earlier, the engineer later". Me saying that only the developer is able to give a realistic planning, was probably received as "developer wants to push the deadline back in his negotiation".

In the end, his company went bust because he was selling stuff to customers that could never be delivered on time, or even never at all.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @04:49AM (#19672117)
There is a type of negotiation that can be done: Negotiation about scope. Work doesn’t get compressed. But stakeholders can identify non-essential business-facing features and cut scope.

Note well: Automated testing is almost certainly essential. If someone says you are “building an MVP”, then make sure it is an actual MVP. Make sure you have a clear market hypothesis to test and check that it couldn’t be built out of duct tape, Google Forms, Zapier, ITTT, manual processes, and excel-wrangling.

Re:Why software projects take longer than you think – a stat... by mgkimsal on Tuesday April 16, 2019 @07:21AM (#19672682)
Testing will happen. The choice you make is who does the testing and when it happens. Internal people testing earlier is generally preferable to external customers testing 'live', but either way, the testing will happen.
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @07:55AM (#19672852)
“We can’t make those UX improvements to our core open-source product because then we’s have to introduce untested code. The current code is tested because users have used it and reported the bugs and we’ve fixed them.” Is a real thing a project lead said to me at a previous employer.
Re:Why software projects take longer than you think – a stat... by philk10 on Tuesday April 16, 2019 @11:08AM (#19674284)
"Or customers are better at finding the bugs than we are so just give it a quick look over and ship it" - genuine quote from CEO at a company I soon left
Re:Why software projects take longer than you think – a stat... by Bartweiss on Tuesday April 16, 2019 @02:24PM (#19676018)
Honestly, I'm surprised more companies don't formalize this. There are places that offer customers discounts or feature-request priority in return for being beta testers, which seems like a major improvement in both integrity and efficient feedback.

I suppose it's both slower and more expensive than "just ship bad code at full price and wait", but I'd still expect more companies to choose it as the intermediate option between that and comprehensive in-house testing.

Re:Why software projects take longer than you think – a stat... by commandlinefan on Tuesday April 16, 2019 @10:46AM (#19674056)
> Negotiation about scope.

I used to work for an online travel site - before every project kicked off, the business analysts would produce requirements documents that always started with a "flexibility matrix". The flexibility matrix had three rows labeled "schedule", "scope", and "resources" and three columns: "flexible", "moderately flexible" and "inflexible" and they were supposed to check one option for each row. So every single requirements document listed "resources" and "flexible", "scope" as "moderately flexible" and schedule, OF COURSE, "inflexible".

Re:Why software projects take longer than you think – a stat... by jerf on Tuesday April 16, 2019 @12:17PM (#19674922)
You sound like you're complaining, but your complaint may be incomplete. If those bullet points were honored, that is indeed how pretty much every organization doing development will operate, whether it likes it or not. That is not intrinsically a problem.

I take it these requirements documents were not honored by your non-developers? A document labeling scope as "moderately inflexible" does little if it's treated as written in stone.

Re:Why software projects take longer than you think – a stat... by Bartweiss on Tuesday April 16, 2019 @02:20PM (#19675979)
One basis for complaint that stands out to me is framing "flexible resources" as a full degree of freedom.

The first question is of course whether that's true, since resources don't tend to flex up unless someone outside the project dictates it. But even if it's accurate, it tends to produce the situation The Mythical Man-Month was written to condemn. If the ship date can't move and the scope won't bend on core features, there's a very real risk of finding that extra resources can't fix the timeline problems.

You're right that most organizations have to operate this way, and it's not inherently bad; I've just found that "flexible resources" is often used as a way to avoid admitting that the real third category is "risk of failure".

Re:Why software projects take longer than you think – a stat... by commandlinefan on Tuesday April 16, 2019 @03:21PM (#19676483)
Actually it started out as a 2x2 matrix (scope/schedule), and all of them were scope = flexible and schedule = inflexible (of course), and they started adding the "resources = flexible" row so that they could walk back their claims of scope being flexible, because of course it wasn't.
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @02:54PM (#19676263)
Wait, how are resources flexible here? You can’t just scale the number of engineers on a project quickly..
Re:Why software projects take longer than you think – a stat... by commandlinefan on Tuesday April 16, 2019 @03:39PM (#19676624)
We actually tried asking for more resources when the schedule was in "jeopardy" and were told that there weren't any available. They suggested we try working weekends to make up the shortfall.
Re:Why software projects take longer than you think – a stat... by c0vfefe on Tuesday April 16, 2019 @01:34PM (#19675587)
Good, fast, & cheap - Pick any 2, at most! https://en.wikipedia.org/wiki/Project_management_triangle
Re:Why software projects take longer than you think – a stat... by drunkpotato on Tuesday April 16, 2019 @06:39AM (#19672492)
Hah! You just described the start of one of our products so accurately it’s scary! And then we built out the parts that were starting to fail as the product scaled. You can get surprisingly far this way!
Re:Why software projects take longer than you think – a stat... by Spooky23 on Tuesday April 16, 2019 @08:41AM (#19673123)
End of the day, this is what agile is. By accepting scope items in small batches, you end up done.
Re:Why software projects take longer than you think – a stat... by commandlinefan on Tuesday April 16, 2019 @10:43AM (#19674021)
In his mind there is one negotiable variable, though - how many hours you work. You want to work 40 hours/week, he figures if he can push you to work 80 hours instead, it'll get done twice as fast. The typical CEO's background as a schoolyard bully gives them plenty of experience in this area.
Re:Why software projects take longer than you think – a stat... by bonoboTP on Tuesday April 16, 2019 @06:18AM (#19672403)
Isn't it the same in price negotiation? Only the producer knows the costs. Perhaps the difference is that money can be shifted around more flexibly. Even if I come out with a negative money balance from a negotiation (costs more than the buyer pays), it might be worth it for long term goals. But you cannot borrow time. You cannot do the 1 week project in -1 weeks and then compensate by doing the next 1 week project in 3 weeks and break even.
Re:Why software projects take longer than you think – a stat... by Chris2048 on Tuesday April 16, 2019 @06:30AM (#19672451)
A sales negotiation is pretty zero sum. There is little advantage in paying more for the same product.

However, Giving a developer more time will often improve the quality of the output.

Re:Why software projects take longer than you think – a stat... by parasubvert on Tuesday April 16, 2019 @01:17PM (#19675438)
Price negotiation is not zero sum. Zero sum means one party’s gain is exactly equal to the other party’s loss. Most deals are positive sum - both parties get benefits. Price negotiation is about the seller getting some the upside of the buyer’s benefits but not so much that it sucks for the buyer and not so low a price that the seller will walk.

Some deals are inherently negative sum - if you bought a lemon.

Re:Why software projects take longer than you think – a stat... by Gibbon1 on Tuesday April 16, 2019 @01:40PM (#19675641)
There is such a thing as negotiating too hard on price. The deliverables have lower cost to benefit than if you paid more money. Or worse no deliverables. Worse than that fatal realized liabilities.

I worked with a group that designed telcom IC's. One of our customers developed a new product. Which then failed in the field. The parent company had to issue a recall. Destroyed all remaining inventory and canceled the product. All because someone jacked the microphone supplier down about 5 cents on a part.

Re:Why software projects take longer than you think – a stat... by Chris2048 on Tuesday April 16, 2019 @01:36PM (#19675602)
If I pay a dollar more for the same thing, I, the buyer, lose a dollar, and the seller gains a dollar. Can you explain how that's not zero-sum?
Re:Why software projects take longer than you think – a stat... by Gibbon1 on Tuesday April 16, 2019 @02:20PM (#19675978)
If one thing if you are haggling over a used toaster at a yard sale. It's another when you are negotiating a business relationship where the success of both parties is important. A contract with a supplier doesn't do you any good if the terms are so bad it cripples their ability to execute.

That highlights a beef I have with economics. Failure to understand that business relationships are exactly that. You can't model them using the sorts of time invariant non-network models they use.

Re:Why software projects take longer than you think – a stat... by Chris2048 on Wednesday April 17, 2019 @11:46AM (#19683574)
If you are "negotiating a business relationship" you aren't necessarily haggling on price, but service. This is why I mentioned "the same product"
Re:Why software projects take longer than you think – a stat... by Gibbon1 on Wednesday April 17, 2019 @04:03PM (#19685975)
'The same product' is fleeting and ethereal over the long term.
Re:Why software projects take longer than you think – a stat... by Chris2048 on Wednesday April 17, 2019 @08:08PM (#19687555)
Yet in the context given, it's timeless and relevant..
Re:Why software projects take longer than you think – a stat... by parasubvert on Friday April 19, 2019 @02:58AM (#19697617)
Ok, here goes

First, Not everything is a commodity with perfect substitutes, arguably most things aren’t. Substitutability goes beyond price.

Secondly, benefits are not necessarily equal or a linear function of cost.

Third, whether a game is zero, positive, or negative sum requires a look at the costs/benefits of the whole transaction. Saying that a buyer gains $1 more if the price goes up is obvious, it that doesn’t necessarily make it zero sum when you look at the overall transaction of a $1 price raise. .

Zero sum implies that price, costs and benefits are equal. I spend $20 on a product that cost you $20 to make, and I get $20 of benefits out of it.

Whereas I buy something for $20 , it cost you $5 to make, and I got benefits of $100 out of it, that’s positive sum, as both the buyer and seller got positive gain. If you raise the price, the deal isn’t as great, but it’s not zero sum.

Re:Why software projects take longer than you think – a stat... by artworx on Tuesday April 16, 2019 @10:22AM (#19673847)
I highly recommend the book "Software Estimation: Demystifying the Black Art". I work for an outsourcing company and part of my job is to come up with estimates and it helped me deal with clients and managers.

The book contains a quiz that we used as part of a training exercise with management and the results were hilarious. Here is an online copy: https://scrumandkanban.co.uk/how-accurate-are-your-estimates... please don't look at the answers, I guarantee you will have fun completing it.

For clients, my preferred approach is to show "The Cone of Uncertainty" and ask where they think they are. Since most people have no idea what they want to built I ask if its ok if my estimates are 4x off. That usually gets me a few weeks of peace while a team comes up with a product definition and we start all over again :)

Re:Why software projects take longer than you think – a stat... by panarky on Tuesday April 16, 2019 @12:48PM (#19675208)
That quiz has an unintentionally apt question.

> Total length of the coastline of the Pacific Ocean

Coastlines are fractal. If your measuring stick is 1 km long, you'll get one number. If it's 1 m long, you'll get a much larger result. And if it's 1 cm long, you'll get an even larger result.

https://en.wikipedia.org/wiki/Coastline_paradox

The actual length of a coastline is infinite when measured with an infinitesimally small measuring stick.

Software development effort also increases, unbounded, as discovery proceeds and the precision of requirements increases.

Re:Why software projects take longer than you think – a stat... by polygotdomain on Tuesday April 16, 2019 @01:27PM (#19675519)
>The actual length of a coastline is infinite when measured with an infinitesimally small measuring stick.

>In actuality, the concept of an infinite fractal is not applicable to a coastline; as progressively more accurate measurement devices are used

The notion of the length of the coastline, and why I think the question is apt as well, is that regardless of the fractal paradox, the practical answer is that there is an answer that is accurate enough to satisfy the business's or the customer's needs.

The analog for software projects, from my point of view, is scope, and it's generally one of the biggest problems with projects that take too long. Product and various stakeholders take outline broad, high-level scope requirements that may or may not actually be informed by the realities of building or delivering that piece of software. They generally kick the can down the road and take a "I'll know it when I see it" type approach that winds up drastically changing things at some arbitrary point later on on the project.

A rough measuring stick for scope always means that the answer will be longer, however, small measuring sticks for scope are absolutely impractical. What's needed is the understanding from the business that refining scope increases development time, and the high-level broad scope that is sufficient at the beginning of the project is not sufficient at the end. Many businesses want to run with the assumption that their broad scope and the estimates that go with them are accurate enough to bring a product to market.

Re:Why software projects take longer than you think – a stat... by gizmo686 on Wednesday April 17, 2019 @12:28AM (#19679750)
The practical answer is that the question is ill posed, and you need to clarify what is actually being asked. A reasonable way to answer the question as asked would be to model the coastline as a fractal, which would give you an estimated length of infinity. What is needed is not a better way of estimating the answer to the question as asked, because the answer to that question is not useful. Instead, what is needed is a better question (which would require knowledge of why the question is being asked).
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @11:45AM (#19674650)
I started reading that book in 2014, but put it down because it really was about project-level estimation on the order of a few weeks to a few months. At the time, I was really looking for guidance on how to estimate tasks—things on the order of a few hours to a couple days.

I’ve gained some experience and confidence at this in the years since, but at the expense of some psychologically painful experiences and a firing. Our industry really calls out for a more basic book aimed at University CS grads (or bootcamp grads or MOOC)-grads on how to estimate tasks.

Re:Why software projects take longer than you think – a stat... by mekane8 on Wednesday April 17, 2019 @02:55PM (#19685366)
A big +1 for this book. I read it with the team of developers I managed (at a consulting company, where estimates directly made the difference between profit and loss on projects) and we found it very useful. It got us to quit using "gut" estimates quite so much and to always keep an eye out for actual data or at least things to count.
Re:Why software projects take longer than you think – a stat... by aaaaaar on Tuesday April 16, 2019 @09:10PM (#19678795)
Thank you for posting this - I took this quiz a few years ago in a team exercise and all of my answers were off. Since then I wanted to find a copy of this test, but didn't know where to look.

I think out of 15 people nobody got more than 1 or 2 right, except for my manager, who somehow got about 8 right. I'm curious how the HN crowd does on this - care to post your scores?

Re:Why software projects take longer than you think – a stat... by miluoshi on Friday April 19, 2019 @01:32PM (#19701344)
I got 6 right. For another 2 incorrect estimates an edge of my estimated range was very close to the correct answer. I think the key is not to try giving too narrow estimates and think in logarithmic scale. If it was possible I tried to decompose a problem to smaller pieces and calculate my estimate from information known to me (i.e. radius/circumference of the Earth for geographic questions) and make a range out of it by adding/taking couple of zeroes from my original estimate.
Re:Why software projects take longer than you think – a stat... by naavis on Tuesday April 16, 2019 @04:27PM (#19677007)
I just started reading the same book. Seems really nice so far!
Re:Why software projects take longer than you think – a stat... by joshdance on Tuesday April 16, 2019 @07:21PM (#19678193)
link to the book - https://amzn.to/2IpTNw2

Going to read it. thanks.

Re:Why software projects take longer than you think – a stat... by hateful on Tuesday April 16, 2019 @11:45AM (#19674651)
> You need to be willing to endure the discomfort of looking someone in the face, saying “I don’t know”, and then standing your ground when they pruessure you to lie to them.

This. I have PMs who will ask me over and over until I give a number and I've learned to stand my ground. Because if I don't, I end up being responsible for the estimate I've given (as I should).

Now I make it clear that I will not give a number until I know more. Just a few weeks ago I was asked to give an estimate of how long it would take to do an integration with something I've never used before. I said, "I need 1-3 days to learn the product enough to give an estimate". What I get back is "can't you just give WAG". But this time around I said "You have two choices, 1. you give me time to learn what I need and then I'll give an estimate or, 2. Find someone who already knows the product to give you an estimate"

Re:Why software projects take longer than you think – a stat... by nlawalker on Tuesday April 16, 2019 @01:19PM (#19675450)
>> I end up being responsible for the estimate I've given (as I should)

You're not responsible for an estimate you give, the person who's asking for it is.

This is the key difference between an estimate and a commitment: If you give someone an estimate, they are responsible for steering the project using that information. If you give someone a commitment, you are responsible for meeting that commitment.

This is why very few people actually want estimates. They want commitments, but they will ask for estimates to get an answer and then interpret them as commitments. Most people asked for estimates know this intuitively, thus "doubling and adding 10" and other communication strategies to turn estimates into safe commitments before they are communicated.

Re:Why software projects take longer than you think – a stat... by Bartweiss on Tuesday April 16, 2019 @02:04PM (#19675834)
> until I give a number

One big insight for me, which you obviously put to use in your story, was learning to give a different number.

"I don't know" is understandably frustrating to people who are trying to plan work and answer requests. They often respond to that by pushing for a delivery date even when it won't be accurate, but a lot of the time what they fundamentally want is a numerical answer. "I'll have it scoped out by Tuesday", "I need at most 3 days to learn enough to estimate", and so on all aid that planning without committing to a project timeline. That rarely ends the conversation, just as it didn't in your example, but it does a lot to show good faith and justify not answering the initial question.

Re:Why software projects take longer than you think – a stat... by jolmg on Tuesday April 16, 2019 @11:59AM (#19674790)
To anyone else that doesn't know what WAG is, it's apparently "Wild Ass Guess".
Re:Why software projects take longer than you think – a stat... by SketchySeaBeast on Tuesday April 16, 2019 @01:46PM (#19675690)
I find that SWAG sounds better, and let's you add "Scientific" to the front of it.
Re:Why software projects take longer than you think – a stat... by jolmg on Tuesday April 16, 2019 @02:06PM (#19675855)
"Scientific Wild Ass Guess" sounds better? I think I'd just stick with "educated guess". I wouldn't even make an acronym out of it.
Re:Why software projects take longer than you think – a stat... by SketchySeaBeast on Tuesday April 16, 2019 @02:29PM (#19676067)
"SWAG" sets the expectations much better than "educated guess"- you're saying "I got very little idea, but you really want a number, so here's a number". "Educated guess" sounds much more like you've got a good idea, which using the term "SWAG" is trying to avoid.
Re:Why software projects take longer than you think – a stat... by jolmg on Tuesday April 16, 2019 @04:15PM (#19676905)
> I got very little idea, but you really want a number, so here's a number

Where does the "Scientific" come in? Because I really thought it implied having a good idea, which made SWAG seem like an oxymoron.

Re:Why software projects take longer than you think – a stat... by kthejoker2 on Wednesday April 17, 2019 @07:13AM (#19681500)
If your guess is a mathematical formula with assumptions for the inputs, those assumptions can be tested and the formula refined ... It's a SWAG.

You use things like Average/95/99, t shirt sizing, how much work can be done in parallel, 3rd party/client dependencies, ramp up time for a new library ... it's still a wild assed guess but at least there's some basis in reality and you can defend your estimate - show me what I'm wrong about or missing and I'll revise my formula.

Negotiating over the assumptions and inputs is 90% of the battle anyway. Without a model you're standing on sand.

Re:Why software projects take longer than you think – a stat... by SketchySeaBeast on Tuesday April 16, 2019 @04:24PM (#19676983)
I believe it's juxtaposition for comedic effect.
Re:Why software projects take longer than you think – a stat... by GlennS on Tuesday April 16, 2019 @05:39AM (#19672289)
Well, this is some good advice.

Another nice trick if you're under time pressure is to arrange the project so that you can deliver it in stages that partially meet the requirements, or even deliver something non-functional that people can play with while they wait.

This can keep the sales team rolling or customers happy for a while, buying you some time to write the program properly.

As a bonus, you might get earlier feedback if you're going in the wrong direction, in which case less time wasted.

(Obviously this approach isn't always possible. Many problems won't decompose nicely.)

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @06:01AM (#19672349)
this is where it becomes crucial to know why you're building the thing you're building. That way, you can often structure the project in phases according to your engineering judgement of the way those phases are built and the business value they enable.

Then you can cut scope by postponing (or not doing) some of the phases. Ideally.

Re:Why software projects take longer than you think – a stat... by duxup on Tuesday April 16, 2019 @12:29PM (#19675032)
Also clear communication (although you are pretty much describing that too).

I had a friend who had an unusually high frequency of conflicts with various management, project managers (I expect there are always some, but this guy had a lot of bad experiences).

He showed me an instant message conversation:

PM: "Is X done?"

Dude: "Yes, but a, b, c is not done"

A, b, and c were parts of X's requirements.

Now the project manager or such should have been able to read between the lines, but man don't lead with "Yes" and actually describe a situation that is "No".

Re:Why software projects take longer than you think – a stat... by snarf21 on Tuesday April 16, 2019 @08:51AM (#19673172)
I agree with you but like others have said, they want a date they can sell to and in the end it will be your fault.

It isn't just software that goes double, look at most custom building projects or government contracts. Most everything takes twice as long and costs twice as much.

I read something once that has stuck with me. "We can never give more than a vague guess because we are literally building something that doesn't exist and has never been built before."

* I do find it annoying that the sales teams generally drive this. I wonder how they would feel about a response of "We'll get you an estimate of when it will be available as soon as you get us an estimate of when this feature will generate the $1M of revenue to cover the costs of building it. Also, please give us a list of customers that are likely to buy it and your expected contract date so we can track it along with development."

Re:Why software projects take longer than you think – a stat... by Bartweiss on Tuesday April 16, 2019 @02:54PM (#19676262)
> It isn't just software that goes double, look at most custom building projects or government contracts. Most everything takes twice as long and costs twice as much.

There's definitely a correspondence here, but it's a bit indirect.

Government and even private contracts are often knowingly lowballed to secure the deal. Rules like "must choose lowest bid" reward entering an unrealistic bid and then inflating costs after work is going. Or, if overruns come with sufficient penalties, doing work at a loss and then charging a fortune to support a fragile and proprietary result.

In the metaphor to non-contracted software, developers generally don't correspond to the contractors but to the government. Sometimes blown estimates are simply errors, but other times somebody wanted to secure customers, so they pitched an unrealistic scope and arranged to make the inaccuracy land on the programmers. Where the government ends up with late delivery or runaway costs, programmers end up working crunch time or sacrificing quality. And where the government ends up locked into paying for support, programmers end up locked into maintaining rushed, tech-debt-riddled work.

(As for pushing sales for revenue and contract estimates, do it! Some of the most productive teams I've been part of have been ones where sales applied this pressure, but also responded well to the reverse version and kept everyone informed.)

Re:Why software projects take longer than you think – a stat... by cs02rm0 on Tuesday April 16, 2019 @06:39AM (#19672491)
I find you have to do this, but it can damage professional relationships.

Recently I've flat out said no, as gently as I could, to doing some work - porting a software stack to run on Windows.

A customer is asking for an estimate to do it, because a project manager who wouldn't be developing or supporting (or even using) the system likes Windows. The sales manager isn't thrilled with me over it.

So he's asked the team as a whole to estimate it because I wouldn't. The rest of the guys are frontend devs. I don't have a clue, they're in a worse position but for some reason they're all up for putting a number to it so I look like a bit of a !

I'm a contractor, so I can and would just turn down the work, but it's difficult politically.

Re:Why software projects take longer than you think – a stat... by danmaz74 on Tuesday April 16, 2019 @08:36AM (#19673077)
An alternative to flat out saying no is to point out how expensive and risky what you've been asked would be, in terms of development time, maintenance, and other metrics that the business cares about. Even very rough estimates with a list of risks will usually do.

If somebody else comes out with a much lower estimate, ask them what they think about risk A, B, C... if you've got a point, this will usually work.

Re:Why software projects take longer than you think – a stat... by ddalex on Tuesday April 16, 2019 @10:15AM (#19673788)
That's a bingo! It's never No! It's "Sure, this is what it entails and this is how much it costs". Especially if you're a contractor. If their willing to pay the price, why not take the money and do the work?
Re:Why software projects take longer than you think – a stat... by cs02rm0 on Tuesday April 16, 2019 @02:22PM (#19676000)
Mostly, I'd agree.

I have literally no idea how long it would take though, I couldn't in good faith put a number to it.

I also don't want the work - Windows isn't an environment I have experience in because it's an environment I don't want experience in. They wouldn't allow a rate change to do the work.

Re:Why software projects take longer than you think – a stat... by kthejoker2 on Wednesday April 17, 2019 @07:22AM (#19681537)
Jerry Weinberg had the Orange Juice test which always struck me as a practical approach to all requests.

https://medium.com/intercom-inside/the-orange-juice-test-c90...

Re:Why software projects take longer than you think – a stat... by ben509 on Tuesday April 16, 2019 @02:37PM (#19676122)
If you do this, identify beforehand what you think is non-negotiable. Because it won't be a technical discussion, it will be a negotiation and you're liable to be committed at the end of it.

Of course, once you're holding certain things as non-negotiable... you're saying no.

Re:Why software projects take longer than you think – a stat... by circlefavshape on Tuesday April 16, 2019 @07:37AM (#19672755)
This drives me crazy!

Dev: "It's a really bad idea, will take an indeterminate amount of time, and be a maintenance nightmare" PM: "Can I just get an estimate?"

Re:Why software projects take longer than you think – a stat... by kthejoker2 on Wednesday April 17, 2019 @07:23AM (#19681549)
I'm a big believer in pushing back on small words doing heavy lifting. "Just" is a big red flag in software delivery.
Re:Why software projects take longer than you think – a stat... by ben509 on Tuesday April 16, 2019 @02:31PM (#19676081)
> ... it's difficult politically.

The thing to understand about politics is you can do everything right and still lose.

Here, the damage was already done by their unrealistic expectations. You were either going to accept the job, fail and make them angry, or reject it and make them angry.

Sometimes your least worst option is to cut your losses.

Re:Why software projects take longer than you think – a stat... by adrianmsmith on Tuesday April 16, 2019 @07:54AM (#19672847)
Ok cool but if they have to deliver it, they’ll look like fools in the long run when they can’t, and in the end they’ll see you’re right? So it’s a win for your reputation in the long term I think?
Re:Why software projects take longer than you think – a stat... by werbel on Tuesday April 16, 2019 @08:24AM (#19673009)
My guess is no one will look back and say "Huh, he was right".

The only thing that probably is going to happen is "Huh, why isn't that delivered?" and then they will look everywhere but on the fact that it was, at least partially, just a stupid idea in the first place.

Of course I don't know the exact situation so it's more of a thought on what happens in general in the industry.

Re:Why software projects take longer than you think – a stat... by dTal on Tuesday April 16, 2019 @10:21AM (#19673834)
At the risk of a totally uncalled-for derail into politics - this is a hilariously apt description of Brexit. It makes me want to reanalyze the entire situation from a project-management perspective. It suggests a possibly illuminating metaphor: party leaders = management + sales, the electorate = the customer, and representatives = developers and engineers.
Re:Why software projects take longer than you think – a stat... by marcosdumay on Tuesday April 16, 2019 @08:20AM (#19672982)
That's naive.

Nobody will revisit the GP's reputation, and after the novice devs fail to do the work people will just scatter into different projects. They may or may not take a reputation hit, while the PM that insists so much on doing the not viable work will take none of it.

Re:Why software projects take longer than you think – a stat... by maxxxxx on Tuesday April 16, 2019 @04:40AM (#19672085)
I'm on a project right now and I am telling people "I don't know how long it will take because nobody here has ever done anything like this. The only thing I can tell you is that nobody is wasting time and we are solving problems as quickly as we can. Look at the JIRA board and see what we have done and what we are planning to do and make your own estimate". So far I haven't been fired. I also refuse to stop work and start long planning meetings like I have seen in previous projects.
Re:Why software projects take longer than you think – a stat... by arethuza on Tuesday April 16, 2019 @06:45AM (#19672518)
I once worked for CEO as a Director of Engineering who was convinced that any product feature could be implemented in 2 days - and this was a non-trivial engineering area.

That was an entertaining job.

Re:Why software projects take longer than you think – a stat... by mgkimsal on Tuesday April 16, 2019 @07:23AM (#19672691)
curious about this person's reaction to things not being implemented in 2 days. did he/she think that people were just dragging their feet? or not as smart? or sabotaging things to make him/her look bad?
Re:Why software projects take longer than you think – a stat... by arethuza on Tuesday April 16, 2019 @08:18AM (#19672974)
He just edited it out from his version of reality! In fact, in all the time I was there (roughly a year including a major new product launch) I don't think anything was ever done in 2 days.

Another interesting characteristic he had was to get upset if he thought projects were running too smoothly...

Re:Why software projects take longer than you think – a stat... by maxxxxx on Tuesday April 16, 2019 @08:36AM (#19673085)
We have a manager who seems to think that the only way to get good performance is to set impossible deadlines. There are no consequences for missing but it’s pretty unpleasant and stressful to have to deal with this.
Re:Why software projects take longer than you think – a stat... by VBprogrammer on Tuesday April 16, 2019 @12:15PM (#19674911)
Ha. That sounds like my last job except s/2 days/3 hours/.
Re:Why software projects take longer than you think – a stat... by moring on Tuesday April 16, 2019 @05:09AM (#19672186)
On the other hand, you can only argue about the estimate if there is even a channel to argue about it. I have seen several cases of (1) people being told about a deadline through various proxies, so there was no point in time where they could even question the imposed deadline, (2) people not being told about the deadline at all until it was missed, so they could not argue against it, (3) people not being told about the task that has a deadline until after that deadline was missed.

All involved engineers actually had the backbone to say it was impossible, but no chance to say it. Obviously, projects did not go well at that place.

Re:Why software projects take longer than you think – a stat... by pvorb on Tuesday April 16, 2019 @05:34AM (#19672276)
At least this saved the engineers quite some amount of time.
Re:Why software projects take longer than you think – a stat... by dboreham on Tuesday April 16, 2019 @12:48PM (#19675202)
It's important to realize that the workplace often involves being subjected to what is really a kind of psychological abuse. It is not, I think, a coincidence that we are learning that many "stellar managers" turn out to be abusers, e.g. guilty of sexual harassment. What you're describing is in psychological terms thought of as "maintaining boundaries" against a person who is intent on transgressing those boundaries for their own gain or amusement.

If you validate the invalid assertions of these abusers (e.g. that some unclear task can be estimated with certainty) then you're enabling the abuse.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @01:26PM (#19675511)
I think “abuse” is an ill-defined enough term that I’m not sure it adds clarity to this discussion without setting out a definition. Its an important subject and might be a really important lens through which to view this, but as someone who has been searching for a really clear-cut definition of “emotional abuse” since my childhood, and who has seen a lot of acrimonious conversations about it since then...I worry that the framing adds more smoke than light to the discussion. :(

Do you have a good definition? One whereby a scrupulous person can confidently judge “am I acting abusively?” correctly?

Re:Why software projects take longer than you think – a stat... by Cthulhu_ on Tuesday April 16, 2019 @04:28AM (#19672042)
The other thing you can always refer back to is that the accuracy of an estimate increases the closer it is to finishing it - that is, it's very inaccurate at the start. This is one of the pillars of the agile way of working - you and your team can give a fairly accurate estimation for what can be finished within a week or two. Not so much for a year.

The longer estimations are very much due to changing priorities and a developing environment and understanding of what is being built though, hence the inaccuracy.

Re:Why software projects take longer than you think – a stat... by a_c on Tuesday April 16, 2019 @03:25PM (#19676520)
I always consider four factors in estimating software cost

- the scope of the task

- the resource/people you have

- the confidence in the resource/people

- and the dependency on both the resource and the task

Estimation goes wrong in many ways. In my experience, I categorize as follow:

- estimated by non-technical PM, unable to gauge technical/business complexity

- estimated too early in development life cycle. Often time someone come up with idea X then ask right away "shouldn't be difficult, how long will it take"

- no view on team member's productivity due to lack of measurement or measuring the wrong thing

- not considering dependency in the development cycle. e.g. The question "whether our only backend engineering available for the task" is often omitted

- not considering testing, documentation, 3rd party integration/procurement, maintenance and deployment cost

The common practise of coming up a number, then double, or maybe triple it up to make the estimation does not address why estimation is off. Mis-estimation is a symptom. The cause and the cure lies in the people

Re:Why software projects take longer than you think – a stat... by taneq on Tuesday April 16, 2019 @04:17AM (#19671987)
100% this. It's not your job to say something that will make your client happy. It's your job to tell them your honest assessment of the task.
Re:Why software projects take longer than you think – a stat... by chii on Tuesday April 16, 2019 @04:28AM (#19672043)
Imagine a tradie saying it'd take 1week to finish remodelling your kitchen, and then it turns out they couldn't. As a professional, it's your responsibility to educate the client on the issue - most technical problem could be explained to a layman if the context is set up properly.

The problem occurs when the client doesn't want to hear it.

Re:Why software projects take longer than you think – a stat... by moccachino on Tuesday April 16, 2019 @05:23AM (#19672239)
From around here that's everyone's experience of tradespeople in every non-emergency task.

"Sure I can do this in 3 weeks."

Then shows up once every two weeks and finishes around the four month mark.

Re:Why software projects take longer than you think – a stat... by bigiain on Tuesday April 16, 2019 @07:21AM (#19672683)
I see exactly the same routine in our game.

"Yes we can do that in three weeks. We need the API documentation for _those_ two systems, network access to _those_ resources, and credentials to log in to _those_ services first."

2 months later we're still waiting on critical pieces of those prerequisites, while someone's screaming that the deadline they'd committed to with the customer was 5 weeks ago.

Re:Why software projects take longer than you think – a stat... by taneq on Tuesday April 16, 2019 @08:33AM (#19673061)
Oh yeah. This is why I'm always very careful about quoting prerequisites for any deliverable. "We can do X in 5 weeks after receipt of Y, Z and W." Then when they say "why don't we have X," I politely inquire after Y, Z and W.

The most important part of this process is getting it in writing so that you can slap them with it later.

Re:Why software projects take longer than you think – a stat... by chii on Tuesday April 16, 2019 @08:45AM (#19673145)
> after receipt of Y, Z and W.

the problem comes when you didn't know you need Y, Z or W until the work actually starts.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @10:20AM (#19673825)
Which is part of why I think the most valuable part of an estimate isn’t the number. Its the task breakdown and identification of risks.

1) You improve your foresight so you can get your manager rolling on getting resources early.

2) You have a concise record of what you think you need. If you notice something else mid-project (which does happen even in otherwise-straightforward implementation projects), you have a concrete point at which to raise a flag to stakeholders.

If you have zero confidence in an estimate from the beginning, then there is no point where its natural to realize “oh hey, this is going to overshoot and I need to communicate about it.”

Re:Why software projects take longer than you think – a stat... by taneq on Tuesday April 16, 2019 @10:08AM (#19673723)
That's the difference between a research project and an implementation project. Research, you don't know Y, Z, W, or Q. Implementation, you know the full path from spec to deliverable.
Re:Why software projects take longer than you think – a stat... by watt on Tuesday April 16, 2019 @06:54AM (#19672552)
I guess he was estimating the effort (billable time).

But was not estimating the actual total time until completion which must include all the lead time, waits and dependencies.

Re:Why software projects take longer than you think – a stat... by taneq on Tuesday April 16, 2019 @10:10AM (#19673740)
This is another part of the whole 'communication with clients' thing. You have to be clear whether you're talking coding time or wall-clock time. To be safe, give both.
Re:Why software projects take longer than you think – a stat... by tonyedgecombe on Tuesday April 16, 2019 @04:33AM (#19672061)
>But when you advocate clearly for your needs as a professional, people are generally reasonable.

You should do all this but there will still be times when people are unreasonable, it's just human nature.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @04:41AM (#19672086)
Right, thats why steeling yourself for the possibility of having to deal with unreasonableness is important. If you run into it, the first step to dealing with it is to get someone to explain what they expect clearly, in relevant detail, and non-hyperbolically. This short-circuits the possibility of mere misinterpretation. They might have just been expressing their emotions but not yet grappling with their desires in concrete terms—doing so might bring them back down to earth. Then you can resume jointly problem-solving.

If that doesn’t work...I’m actually not sure. But I just started reading the book Crucial Conversations and it claims to have a relevant answer.

Re:Why software projects take longer than you think – a stat... by agumonkey on Tuesday April 16, 2019 @11:13AM (#19674331)
I wish school taught me how to do your first point.

People talk about project management, gantt diagrams and all that but you have no idea how to estimate even grossly the complexity of a thing.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @01:37PM (#19675613)
The lack of a good “intro to task and small project management” MOOC or book is a serious problem for our industry’s ability to onboard junior engineers. I wish I knew how to write one, but TBH I don’t know any principles myself except one.

Lots of people say “just do it and multiply by 3” without appreciating that The important part of estimating tasks is coming up with the task breakdown and identifying the risks.

Re:Why software projects take longer than you think – a stat... by mntmoss on Tuesday April 16, 2019 @03:47PM (#19676685)
The best you can do in most scenarios is to research comparable projects and calibrate against them. "They shipped in six months, therefore we can ship in six months."
Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @04:09PM (#19676849)
Have you ever done this and had it turn out successfully? Because my intuition is screaming at me that this would be disastrous.

For one, it skips the step where you break down the tasks. For another, it seems likely to ignore a bunch of variables in the search for something similar enough.

Re:Why software projects take longer than you think – a stat... by agumonkey on Tuesday April 16, 2019 @04:33PM (#19677052)
Both the mentionned idea are natural, but it's ultra sad that we can only live by experiment like craftsmen for previous eras. Not that I mind craftmanship but at least school should write it in bold letters so you're not seeking a mathematical model.
Re:Why software projects take longer than you think – a stat... by singingfish on Tuesday April 16, 2019 @08:52AM (#19673174)
I like to mess with people. "It's 80% done so there's only 80% left to go". "Now' it's 90% done so there's only 90% left to go" etc. Of course my current project is rather higher stakes than usual, so I'm being a little bit more sober than I normally would be. However I am emphasising the need for communication with other stakeholders and identifying and trying to rectify where they are bottlenecks pdq.
Re:Why software projects take longer than you think – a stat... by teddyh on Tuesday April 16, 2019 @04:53AM (#19672139)
I would recommend this talk regarding professionalism:

https://www.youtube.com/watch?v=p0O1VVqRSK0#t=5m20s

EDIT: The part about estimates is here: https://www.youtube.com/watch?v=p0O1VVqRSK0#t=36m56s

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @05:11AM (#19672192)
I'd replace "they are hired for their knowledge" with "professionals are hired for their judgement". Judgement usually depends upon knowledge, but its the exercise of judgement that is more key to emphasise.
Re:Why software projects take longer than you think – a stat... by taherchhabra on Tuesday April 16, 2019 @11:22AM (#19674411)
once my CEO asked: "can we add more developers and finish the project faster". I used this famous quote "9 mothers cannot deliver a baby in one month" and we had a big laugh
Re:Why software projects take longer than you think – a stat... by DesiLurker on Tuesday April 16, 2019 @02:31PM (#19676079)
My somewhat more nunanced retort to such kind is that it depends how much of this work is linear and how much non-linear and how are they naturally occurring. non-linear work may mean things like understanding a complex codebase or developing an algorithm. these dont speedup by adding more people ( what I dont say is these may speedup by adding more quality/unfragmented hours to the individuals doing it). However stuff like refactoring codebase or minor bugfixes may benefit by adding more engineers.

Unfortunately, the problem then becomes defending whatever timeline you have in mind for non-linear work. also doing too much of this can give bully managers an opportunity to nitpick and micromanage the whole thing.

Re:Why software projects take longer than you think – a stat... by JustSomeNobody on Tuesday April 16, 2019 @10:25AM (#19673864)
> “I don’t know yet enough about the problem to give you even a rough estimate. If you’d like, I can take a day to dig into it and then report back.”

This is my default. Even when I am fairly confident I know what the code does, I want to double check. And it isn't just so I don't short change myself on time. If I tell them X days and deliver on 0.X days several times, they'll start thinking I overestimate everything and cut me off at the knees. It pays to get as accurate as possible.

Re:Why software projects take longer than you think – a stat... by afarrell on Tuesday April 16, 2019 @01:38PM (#19675616)
Its a good default.
Re:Why software projects take longer than you think – a stat... by wiz21c on Tuesday April 16, 2019 @04:34AM (#19672064)
>> and then standing your ground when they pruessure you to lie to them.

spot on.