Hacker News new | ask | show | jobs
by strictfp 2354 days ago
Sprints exist so that both management and devs can realize that there is more work than there is time. It forces devs to be focused and scope their work. It forces management to prioritize and scope down as well.

Keeping the deadline of the sprints is supposed to force management and devs to agree on reasonable scopes, such that the output of the dev team becomes predictable with time.

This enables devs to get trusted by management, breaking the poisonous relationship.

4 comments

Yeah, in my experience this is “boundary setting” — and it’s absolutely critical to a healthy dev culture.

When I was a baby manager, I focused hard on Agile process and deadlines / roadmap commitments. And you’re right; it completely ruined my relationship with my team. They saw me as a representative of the oppressive corporate overlords, which is totally fair because those were the people I was trying to impress.

It took a few failed projects for me to get it through my thick skull that “doing things right” meant protecting my team from this behavior pushed down from above. It meant giving them space to do the job we paid them for. I realized I was letting my anxieties overrule people who knew way more about the issue than I did. It meant listening more and pushing back on unreasonable requests.

And it turned out my boss didn’t care about missed deadlines for the most part — he cared way more about production incidents. The best way to reduce production incidents is to work deliberately and not take unnecessary risks. A side effect of this was that we had way more power to say “no” to other teams, which made maintaining the code base a lot easier.

> protecting my team from this behavior pushed down from above

OT, but it's super common to hear in management circles about how managers are supposed to "protect" or "shield" their teams from the nasty CTO or CEO or some powerful stakeholder. IMO this is just not sustainable.

A CEO or any powerful person pushing a manager too hard accomplishes absolutely nothing at best, and is a disaster at worst. This kind of thing really hurts the morale and culture of the whole company.

Glad to know your boss is one of the good ones. My current CTO is like this and compared to the company I was in before it's night and day.

Tbh this is exactly what the article is talking about :)

If an organization has the right customer focus, internal deadlines should be meaningless. Customer-focused orgs are generally better places to work overall because there is a shared sense of what is important.

+1

Sprints also have the pleasant effect of forcing some coherence onto work.

In the Old Days, teams might build software like a layer-cake: All the lowest layer, then the next layer, then the next, and so on to the top. So at the beginning, we’d be building infrastructure based on projections (a fancy word for “wild-ass guesses”) of what the subsequent layers would need.

You can, in theory, do that in sprints, but with an emphasis on delivering “working software,” sprints would help devs and stakeholders pick very small end-to-end increments and build whatever was needed to make them work.

This kept everyone focus on work that was known to be needed, and since you were building a complete increment, the team would be building the infrastructure at the same time it was designing and building the functionality relying on the infrastructure.

This kind of thing has its own failure modes, of course, but it eliminated a number of catastrophic project failure modes without even getting into the value of delivering working software sooner and revising priorities based on feedback.

> This enables devs to get trusted by management

I am curious about that “trust” part. In your model what happens when management doesn’t trust devs ? do devs trust management ?

When management doesn’t trust devs, they micromanage. Often on things they’re way out of their depth on.

Though in my experience, devs do not trust “management” writ large. But they will trust individual managers who see their job as representing their teams within the management hierarchy and protecting them from the suits. That trust isn’t automatic and usually has to be earned.

Having a steady stream of deliverables and seeing that the devs can deliver on their promises, enables management to shift from control to guidance. That's not to say that it always happens, but I've seen it work.

Getting development done has traditionally been a game of getting developer attention. Scrum is one way of clarifying the contract between the stakeholder and the development team. I'm sure there are others too.

Define "trust". As an industry I think we often talk about the wrong things here. People look at this from the point of view of controlling IT & developers (controlling costs, deadlines, functionality, etc.) when really everyone should be looking at it instead from the point of view of maximising value to the business. That's what Agile is really all about - it should really be about trusting that people will make good decisions based on the currently available info (which will likely be different than when you started the project), do good experiments, and find good compromises. This is especially true if unforeseen delays to a team's work has a knock-on effect on other people (which a good manager will try hard to decouple and avoid, deliver incrementally to lower the risk, or at least include healthy contingency for).

IMO, you should only really care about imposing deadlines as an answer to the question "how much time is it worth investing in solving this problem?" If the scope of the solution becomes larger than expected, and it starts to look like it won't pay off, abandon it and start doing something else instead. You had a good experiment which was entered into in good faith based on the data available at the time. That's the nature of experiments. Learn your lessons and try the next one.

Trusting that your teams have good plans that fail early and incorporate fast feedback loops is generally the only real way to make sure that they have realistic scheduling/deadlines for those plans and that they are likely to generate real value. It amazes me how many people in management seem to put their efforts and emphasis mostly on scheduling the plans, rather than the plans themselves. I guess it's easier to come up with estimates for things, than it is to come up with good strategy and business value propositions/justification.

I really recommend reading "A Seat at the Table" by Mark Schwartz (ISBN 9781942788119) for a good exploration of how agile meets management trust issues, budgeting and longer term planning, and how to try to break down the barriers between "IT" and "the business" (when in most modern companies, IT is the business).

Very good points.

Reading the comments, I think what I was bugging is the notion that would give a task not trusting it would be done.

People point at micro-management as an effect, because it basically means providing more limited tasks with limited risks.

But I think in the long term the direction we tend to take for people we don’t trust is to set penalties (bad evaluations, demoting, firing included).

In that sense, in average there should only be people you trust at the appropriate levels of an org, so I am not sure it is important to focus on gaining trust as it builds up just by doing ones job.

That’s where I like your idea of management trusting a plan, more than focusing on the team.

If you can't manage 2 weeks of work, you can't manage 6 months worth.
but it is very possible that you can create 'something' in 2 weeks vs. 'nothing' in 6 months.

and in most cases, 'something' * 12 > 'nothing'.

(although that 'something' might not be very changeable, or complete, or 'good')

and thus agile, getting things done with people that haven't done things before. (not meant to be snarky. long design iterations require experience in the problem domain. now days, no-one has experience. or the problem domain is new).