Defense against the dark art of estimation bargaining (2014)
dunkelheit 2021-08-18 13:34:07 +0000 UTC [ - ]
The thing is most of the time these deadlines are totally artificial and simply a psychological trick to induce a sense of urgency. Moreover, PMs know that deadlines will slip and are prepared for this , they just want them to be slightly unrealistic so that you feel pressured (even better if you yourself suggested the deadline under their intent stare, then the pressure is higher).
mathattack 2021-08-18 13:52:53 +0000 UTC [ - ]
How this gets handled says a lot about an organization. (Priority conversations vs “suck it up”)
ryanianian 2021-08-18 13:44:13 +0000 UTC [ - ]
A PM doing that would be a red flag for me.
Clearly the PM isn't trying to manage the project in a tranparent, sustainable manner. They're trying to politic, manipulate, and pull the wool over everyone's eyes. This will only erode trust on all sides over time.
I've seen this poison tech orgs in the past. It turns them into a soured marriage where nobody seems to understand the other side and feels like actual communication is impossible.
Fix the incentive for the PM to play the games. TFA somewhat addresses this (bargain scope, not time), but it doesn't really address the underlying political forces the PM is acting under.
cushychicken 2021-08-18 15:59:04 +0000 UTC [ - ]
What do you do when eyelashes get batted?
Seems like you'd get accused of "not being a team player" or some such bullshit if you say the truth, which is: "The PM set that deadline after consulting with us, and us telling the PM that 2 weeks wasn't feasible."
majormajor 2021-08-18 16:42:20 +0000 UTC [ - ]
That's what middle management is for. The PM isn't your boss (I'm assuming). And they have a boss too who's job is to keep them in check, and the other middle managers are supposed to have relationships with each other. If there's any sort of middle management at the company yet things like that still either fall on the individual developer or dev team, that's a pretty bad environment (which then falls on the CTO, for having a tech management team that can't navigate the company, but in a different way that it would be on them than in a tiny company with devs reporting directly to the CTO.)
908B64B197 2021-08-18 18:39:10 +0000 UTC [ - ]
AnimalMuppet 2021-08-18 19:14:04 +0000 UTC [ - ]
(I mean, you might be able to limit the damage to the company, too, but that would take exposing and undermining the PM now, rather than once the damage shows up. This is difficult, for two reasons. First, upper management really wants to believe what the PM is telling them, because it sounds better. Second, it's a political battle, and most coders aren't equipped to fight those successfully. One reason not to bother is the "nobody bats an eyelash" - if everybody knew it was a BS estimate, so there wasn't any damage to the company because nobody relied on it.)
PaulHoule 2021-08-18 17:19:29 +0000 UTC [ - ]
Just as a good estimate requires some modelling, so does a good requirement. By July they might not need an overhaul of the whole billing system, but there might be a few small things that would have a huge impact that could be done. Maybe you can deliver 60% of the functionality in June and another 30% in August.
My experience is that this kind of thinking plays well with upper management, C-level kinds of people. That is, they make trade-offs on this level all the time and are glad to be engaged in this way. In fact, if everybody thought this way, the company wouldn't have any problems.
My experience also is that some middle-managers are highly offended by this approach for reasons I can't understand, other than they feel like they've lost control. It seems like a small price to pay for "getting things done" for the business, but they don't like to get bypassed.
Guthur 2021-08-18 11:22:02 +0000 UTC [ - ]
Deadlines are just lazy management, we feel we need to set deadlines to motivate people and drive delivery, the problem is that the motivation is built on fear and are very poor at actually achieving quality outcomes.
One of two things is likely to happen with deadlines as your main motivator (a) they are ignore completely with very little impact on a workers motivation, this is likely a very disengaged workforce or (b) they are feared and drive an individual to try to hit the deadline not matter the cost either in quality or their well being, both are ultimately bad in the long run. Also we're also susceptible to Student Syndrome [0] which can exasperated scenario (b).
I believe that we are constantly stuck in rewrite cycles because we are forever rushing to meet arbitrary sprint deadlines.
Leadership should be using development metrics to try to estimate delivery velocity and understand the selected priority order for delivery, but don't turn those into deadlines, keep the system in control so that you can be accurate to your projection.
geewee 2021-08-18 13:20:59 +0000 UTC [ - ]
funkymike 2021-08-18 14:33:14 +0000 UTC [ - ]
Guthur 2021-08-19 01:34:49 +0000 UTC [ - ]
8note 2021-08-18 17:36:42 +0000 UTC [ - ]
chasd00 2021-08-18 13:57:42 +0000 UTC [ - ]
funkymike 2021-08-18 14:49:02 +0000 UTC [ - ]
TFA advocates for bargaining on scope, where I prefer to start the conversation by asking about both scope and timelines to understand which parts of the overall request are negotiable. This is also a great opportunity to make sure the business context is well understood so everyone understands what success means from the perspective of the business
You might then find every single feature really is necessary and the timeline can be relaxed. Audit compliance can be an example when it is something new to an org. You are either going to pass or fail the audit, so there isn't really room to reduce scope. But you may be able to negotiate on the timeline.
peterkelly 2021-08-18 11:24:27 +0000 UTC [ - ]
"Look, there's two ways I can respond to this. I can be honest with you, and tell you the truth about how long I think it's going to take. You might not like the answer, but at least you will be in a position to make properly informed decisions about what to do, such as reducing the scope or adjusting the launch date.
Alternatively, I can lie to you and give you an answer that will make you feel satisfied when you leave the meeting, but is inevitably going to cause trouble for both of us a few weeks/months from now when the expected deadline is missed.
Tell me which kind of response you'd prefer, and we can proceed from there."
ornornor 2021-08-19 08:05:38 +0000 UTC [ - ]
nlawalker 2021-08-18 15:32:12 +0000 UTC [ - ]
Very few people want estimates, they want commitments. They just frame the conversation around estimates to get people talking.
> At this point you might think, “Okay, just double your estimate”. Don't, this just leads to an arms race of deceit, and encourages more bargaining in the future.
It's not deceit, it's conversion of an estimate into a commitment.
DennisP 2021-08-18 16:29:08 +0000 UTC [ - ]
So after a few years I started giving estimates that I was at least 90% likely to meet. And, as you say, I committed to them. In the minority of cases when I ended up on the bad tail of the bell curve, I worked extra to meet my commitment. Management was much happier.
In compensation for those occasional bursts of extra work, on average I had some free time. I used that time to learn stuff, or clean up code, or automate some of my work. That made my work easier, allowing me to shorten my estimates while still maintaining the 90% rule.
andy_ppp 2021-08-18 08:41:01 +0000 UTC [ - ]
Essential I feel this stuff only works when results are a by product of earned trust from management on delivery. If there isn’t that trust built up people are likely to try to appease whoever is going to give them a raise.
avereveard 2021-08-18 11:39:52 +0000 UTC [ - ]
netghost 2021-08-18 20:55:23 +0000 UTC [ - ]
I don't think it requires perfectly spherical humans in a frictionless office, but it does require everyone to have the same incentives in place.
When I wrote this, I worked on a pretty well aligned team with a very short power distance. If you're in a truly adversarial position, you probably need to take a different tact, or find a new role.
avereveard 2021-08-18 21:10:34 +0000 UTC [ - ]
then whatever management style would likely have worked; where I work I've the ultimate word on who works with me and I only allow hires that are well motivated and aligned and just set them in the direction of the goal and they barely need anything but some technical guidance every now and then. the downside is that we have a interview failure rate of about 98%, we're short of people and I'm under immense pressure from above to grow my team with whatever fit the job advert keyword.
> you probably need to take a different tact, or find a new role.
that is great personal advice, but to management, the golden egg is how to make dishomogeneous people work, even in face of adversarial behavior.
they managed to do it on the factory floor, and there's good money for whomever manages to bring some of the line working hell to creative workers, money which is currently being scooped up by scrum masters and the like, so the bar isn't even that high
AnimalMuppet 2021-08-18 19:02:02 +0000 UTC [ - ]
throw394024 2021-08-19 01:49:42 +0000 UTC [ - ]
- You start with a PM/PO/Someone handing out tasks
- You learn the system
- You start doing more work
- They start giving you harder work
- They start asking you to manage the tasks/trace down AC for new tasks
- They start asking you to fix bugs or change AC mid-sprint
- No amount of logic gets through
We can have discussions all day about the three variables, or agile, or maintenance, but at the end of the day if it's just a free for all it's up to how much they like you/how much you can delegate/how much you can say no effectively (and on an ongoing basis) to.We have agile/jira/all these systems. Why not use them? Why not plan 2 weeks of work... and do 2 weeks of work? Why do they always need to try to squeeze more? It's exhausting and unnecessary and annoying.
Edit: I've worked extremely hard to do everything management asks, and I think this is the problem. I always do. How do you say no? Is it in private? Does the "scope talk" work? Do you do it for every story? Do you end up doing a lot of the planning work and always know what's on your plate as things are added so you aren't overloaded?
I really don't want to be the "make a ticket" guy, but it seems management can handle little less.
djmips 2021-08-18 09:09:18 +0000 UTC [ - ]
dagw 2021-08-18 09:57:59 +0000 UTC [ - ]
Way back, the company I worked for and this other company where bidding for a job. They wanted a lot of work done on a ridiculously short deadline (3-4 month), we said "can't be done", the other company said "sure". Anyway the other company completely failed to deliver on time, but since they already had the contract and had already started the work the company that hired them figured it was easier to just renegotiate an extension to the contract than replacing them. Long story short, the other company got a solid 18 month of good steady work out of their 'failure'.
crispyambulance 2021-08-18 10:55:05 +0000 UTC [ - ]
Keep in mind that the quote you're responding to was from an IBM old-timer.
That context, back then, was that IBM was well-past having its foot in the door and was walking around in all your business! There's wisdom in "not accepting an invitation to failure" in that context.
You're right though, estimation is all head-games, especially when bids are involved.
CraigJPerry 2021-08-18 10:23:23 +0000 UTC [ - ]
He also addresses the common push backs - e.g. “you don’t understand, i can’t say no in this position right now”
throw394024 2021-08-19 01:45:33 +0000 UTC [ - ]
CraigJPerry 2021-08-19 04:20:57 +0000 UTC [ - ]
He rounds out the short chapter with an appeal to professionalism.
throw394024 2021-08-19 13:31:46 +0000 UTC [ - ]
Unfortunately people usually don't work like the team they purport to be (managers shielding their ICs, POs tracking down AC)-- they just see your willingness to work and exploit it for as much as you'll do, rather than trying to make a system that hums forward quickly. They demand speed, but don't want to improve process to get that, they just want you to work more and harder.
Is there a way to build trust or consistently set boundaries or protect your time? Some of my co-workers say "I'm almost out of hours for this week", which I think is one of the only things they understand, but then you really have to close the chat client and not help other devs, lest you miss your "estimates".
YeGoblynQueenne 2021-08-18 13:47:04 +0000 UTC [ - ]
You: Oh, I didn't realise how important it was. Let's say 10 months then, to make sure everything is alright.
Peter: Ten months!
You: You're right, it's really critical work, let's make it 12.
(Wish I had the balls to do that :)
123pie123 2021-08-18 13:23:39 +0000 UTC [ - ]
Peter) how long will it take to do "an action that you don't know how long it will take"
me) I don't know, at a complete guessminate X weeks
Peter) ok, you can do it in X/2 weeks then
me) I'll need to triage the request and understand the requirements then at a guess it "may" least Y days to investigate what's needed - that's if It can be done, assess the amount of work needed, governance to go through, assess the priorities and get back to you with the order of magnitude costs for you to sign off - How soon can you set up the triage with all the relevent SMEs to answer my questions?
watertom 2021-08-18 16:51:46 +0000 UTC [ - ]
What I mean is that the role of demand hasn't fully defined exactly what they want, it's nebulous, once the demand role accepts the responsibility for developing a timeline for a non-defined project it also accepts the responsibility to develop the requirements.
I simply never accept shift in responsibility.
netghost 2021-08-18 20:59:17 +0000 UTC [ - ]
Having been on a nebula project with a timeline once or twice, you're right, this is definitely a trap to avoid.
I'd love to hear an example of how you've negotiated it.
gosukiwi 2021-08-18 15:19:42 +0000 UTC [ - ]
Managers seem to love estimates, but IMO it's better to just have priorities, sprints, and just do as much as you can in those sprints.
I understand sometimes you need to know how much sometime takes in order to prioritize stuff, in which case you can just say it takes a lot of time, a little time, or "medium" time.
Estimating is particularly annoying when you have to read someone else's code first in order to estimate.
netghost 2021-08-18 21:03:42 +0000 UTC [ - ]
It's been a long time since I wrote this, and I've come to appreciate that there are a lot of nuances, a lot of different teams, and a lot of different ways incentives are aligned in different environments.
I'd love to hear some illustrations of ways y'all have navigated these issues. What factors made it successful? When would it not have worked?
Sil_E_Goose 2021-08-18 15:04:59 +0000 UTC [ - ]
[0]https://www.lesswrong.com/posts/CPm5LTwHrvBJCa9h5/planning-f...
commandlinefan 2021-08-18 17:52:02 +0000 UTC [ - ]
I've tried that before, many times, and found it similarly futile. They just start negotiating what the "scope" means until they've negotiated it back up to what they were originally asking for... because that's what (they think) they actually needed in the first place. Scope is just too vague to be used this precisely.
gringoDan 2021-08-18 13:42:34 +0000 UTC [ - ]
It's taken me so long to realize that people just want to know you're on top of something. Simply saying "This was deprioritized this week/month/quarter in favor of other work, but I'm still on top of it" buys you a lot of trust.
My inclination is to deliver either good news or no news at all – I have to work to fight this.
ryanianian 2021-08-18 13:46:39 +0000 UTC [ - ]
If you already have trust from those who enforce the deadlines. As you point out, a deadline is an accountability mechanism. But if you're otherwise accountable and trustworthy, the deadline isn't really the metric that matters (most of the time).
recursive 2021-08-18 14:16:37 +0000 UTC [ - ]
I don't work on tax software, but I do work on software that has to support externally specified processes that come into force on Specific Dates.
lushdogg 2021-08-18 11:46:51 +0000 UTC [ - ]
sumnole 2021-08-18 13:05:19 +0000 UTC [ - ]
lushdogg 2021-08-18 13:19:59 +0000 UTC [ - ]
Even more important is not letting your team get boxed into fixed scope and fixed time as you can increase velocity some but increases to velocity are usually the most over-estimated in my experience.
Igelau 2021-08-18 13:03:21 +0000 UTC [ - ]
WastingMyTime89 2021-08-18 14:28:12 +0000 UTC [ - ]
lushdogg 2021-08-18 18:08:50 +0000 UTC [ - ]
spaetzleesser 2021-08-18 18:48:21 +0000 UTC [ - ]
Tade0 2021-08-18 08:45:09 +0000 UTC [ - ]
I've started applying this and it's amazing how well this works.
Of course sometimes it's just not possible to reduce the scope any further, but the key point is that the stakeholders just want something, anything and as soon as possible at that.
You give them that and suddenly there's much less pressure and you can focus on delivering the rest, or sometimes dropping it entirely because in hindsight it wasn't that important.
There's a similar phenomenon occuring when playing planning poker - often the estimate is not what anyone wanted, but the one that the most could agree on, which is usually way off. I thought of solving this by having a single transferable vote, but I hadn't had a chance to play planning poker for over a year now, so I have no data on its effectiveness.
eastbayjake 2021-08-18 11:08:33 +0000 UTC [ - ]
1. Help your development team make explicit the assumptions in their estimate. This is part of bargaining scope instead of time -- when you make explicit that your estimate includes e.g., authentication and responsive design and reusable component development, your business stakeholders will sometimes say "No no no we don't need those things now, we only need X and Y" and suddenly the team has a much more feasible effort in front of them.
2. Don't argue beyond a certain point, occasionally resolve disputes by giving the story to the person with the lowest estimate. Sometimes it's a learning experience for the developer who underestimated. Sometimes it's a learning experience for the rest of team that overestimated. I have taken 1 point stories that the rest of the team swore would be an 8 point story, then used it as an opportunity to pair program with one of my developers to show my approach. (If the business wants an unstyled link to open an email message to your support address, that's not a reflection of your skill as a developer -- you don't need to solve for the full-function feedback popup modal with input validations and error states, it's work you can do as iterative enhancements later, if ever at all.)
vincnetas 2021-08-18 10:02:22 +0000 UTC [ - ]
Tade0 2021-08-18 10:38:14 +0000 UTC [ - ]
One other trick I have up my sleeve is to do an, ahem, quick sort of tasks with the stakeholders. There's a degree of cunningness required to pull this off, but it works.
Hilariously enough insertion sort is less effective, because it's too obvious.
charlieflowers 2021-08-18 11:32:43 +0000 UTC [ - ]
SimonPStevens 2021-08-18 12:26:46 +0000 UTC [ - ]
With a quicksort you take one item and compare it one at a time to every other item by just asking this question "does this come before or after". Then you repeat that process with each side.
But with insertion sort you take each new item and ask the question "where does it go in this already ordered list".
Although these are logically essential the same thing, and certainly have the same result, it's the way the question is framed that makes the quicksort approach often the easier question to answer when trying to decide on a priority order.
Both require a little cunning because you have to get the other person to "forget" that they are essentially prioritising a large list and focus on the easier question of the individual step in the sort algorithm. That's easier with quicksort because the question is very small and isolated, but with insertion sort you are constantly looking at the larger list in order to find the insertion point.
SonOfLilit 2021-08-18 12:33:52 +0000 UTC [ - ]
This doesn't really feel like a full sort of tasks. Insertion-sorting the tasks does, and so would trigger the "oh no all of these are important" reflex sooner.
Tade0 2021-08-18 13:35:05 +0000 UTC [ - ]
I usually do one comparison per meeting - regardless of the topic at hand.
mathattack 2021-08-18 11:24:00 +0000 UTC [ - ]
Igelau 2021-08-18 13:09:50 +0000 UTC [ - ]
mcherm 2021-08-18 18:01:58 +0000 UTC [ - ]
[1] https://en.wikipedia.org/wiki/Brooks%27s_law
ornornor 2021-08-18 21:47:51 +0000 UTC [ - ]
Tade0 2021-08-18 13:27:16 +0000 UTC [ - ]
I don't envy anyone put in such a situation.
kaiju0 2021-08-18 15:57:53 +0000 UTC [ - ]
1001101 2021-08-18 15:43:47 +0000 UTC [ - ]
Scope = Time x Resources
and could add people to the project when scope and time were sticky (say a project had to be ready for a trade show, or stuff had to be at distribution by August to be in stores by Christmas).
[1] https://en.wikipedia.org/wiki/Project_management_triangle