So a slightly more flexible sprint? I personally hate sprints - they tend to be inflexible and sometimes force you to make the wrong compromises. They are typically filled with many disparate tasks that often require you to context switch back and forth repeatedly. If you under estimate the time some tasks take, the numbers paint you as a weak performer. Those who game the system by over estimating every task are viewed as super achievers, even if their actual value contribution is far lower. I think if you take away the metrics aspect of sprints, it actually becomes more useful.
Product manager and engineers decide together when a feature/project is ready to be launched or when scope needs to be cut or changed.
In almost every Scrum team I've worked with, they get close to the end of the iteration and start doing bad things - just to fit their interpretation of Scrum.
At the end of the iteration, they have a unfinished tasks and one of two things happens.
The ScrumMaster/Product Owner/Manager starts berating them for "not being committed to completing tasks within the scrum" (regardless of the fact the task will take as long as it takes, and same SM/PO/Manager has been ignoring the problems mentioned in the daily stand-up).
Or, they mark that task as "complete", but make a new story for the remaining testing/bug fix/additional requirements work. They eventually have to deal with the fact their burndown chart is almost flat, since they're creating a half point of work for every point they close.
They also have people who complete their tasks early, but don't want to bring in another story, because that's "a violation of Scrum". Or they're worried about not being able to complete it by the end of the iteration and going through the previously-mentioned problem.
And no amount of bringing this up in retrospectives will change anything. In the scientific method, if your hypothesis fails in reality, you reject the hypothesis and search for another. In IT project management, when your process fails in reality, most people apparently prefer to reject reality.
Just admit you're doing Kanban and stop causing the problems created by arbitrary deadlines created by your iterations.
My team tried ad hoc meetings. We wound up not having the meetings. We now just stick to the sprint schedule, at the behest of our manager.
This isn't a post about scrum vs kanban. It's primarily about the value of using a specific definition of milestone to encourage incremental delivery. And to highlight some of the benefits of delivering in this way.
If you estimated the lowest on multiple things - you got the one where you deviated the most.
If you overestimate everything - and you never finish things close to the mean estimate - that's a sign you're a low performer...
This is but a different kind of a rat-race?
It's very hard to find axiomatic statements like those, that actually work in the possible multitude of contexts.
Which assumptions are behind that statement?
Does the team have uniform experience working in a single product? That statement feels more applicable here.
Or are there multiple work streams that aren't even touched by a few members and everyone is involved in estimations for everything? That statement feels less applicable here, and trying to enforce it could lead to experts in one workstream to be considered low performers, which motivates a consulting style lowest bidder environment, probably ending in overworked people and low quality code reaching prod.
We had 1 mission at a time that we were gunning down— the outcomes of which were motivating, in/validating and gave us closure on an swath of planning and theory.
I see some similarity between these properties and the author’s idea of a milestone.
To my mind there are products and milestones as maybe a point releases within a product - Agile/Scrum. I've suffered many systems over the years, but this is the one that makes the most sense - and maybe most importantly demarcates responsibilities.
Projects are something external to this procress, product management (i.e. me) need to deal with it - a spanner in the works of what we were all happily orchestrating.
"A project" is a demo we need to make next week, or a customer requirement the next release needs to address. It's something the product needs to deal with - and PM decides whether this should impact dev.
It's the job of PM to sort out the backlog/timeline of the product so it hits the new eternal "project" requirement. Dev shouldn't even have to be aware the project exists - they'll maybe see their backlog change and just have to deliver on that as normal.
Obviously the reality is that they're aware of the project once PM has accepted it, and you ask them to change their course - but dev shouldn't directly care.
A PM should bring the team together, collaboratively work on what should be in the backlog, and provide enough context to the whole team so they can self organize and holistically deliver maximum value to the consumer. 10 heads are far better than a single godlike PM sorting everything out.
As PdO I see my job (and also that of my partner Dev Manager) as sheltering dev from the shit churning shit above and my sole purpose as providing backlog/semi-coherent guidance. My downward job is to make sure every 2 weeks some contiguous stories get created and I sign off on their completion on the way back up - and if my requests match what I get back, I have the joy of absorbing any corporate wrath. I'm a "shit-umbrella"
Positive part of the job is when something hits me I can't deflect, I can cash in a few of my 'hopefully not-a-cunt' credits from the team, explain why I'm changing backlog mid-sprint, throw myself at their mercy, explain the issue etc etc - and collectively provide a better result than'agile' could officially provide.
Agile processes definitely provide some of the structure mentioned here, but I've found that they lack sufficient guidance on the optimal size of work chunks- this article provides a compelling case for work chunks (milestones) of a specific size, and that alone is quite valuable to me as a concept.
People were doing milestones decades, generations, centuries before "Agile" came along.
https://en.m.wikipedia.org/wiki/Milestone
I think the term is rather unimportant. You could also use the term epic.
I do tend to focus on milestones first, because even if you're focusing on problems, using milestones to focus on what's next can sometimes be helpful. But if you can get to focusing on problems directly, that's even better.
For many organizations, there isn't the latitude to do so, so I've found this works within project-focused cultures better.
The idea is that if you put a bunch of great engineers in a room they'll make a brilliant product. Except they never do. They make something very clever, that does something brilliantly, but it's almost always the wrong thing. Engineers don't like talki g to customers, or discovering requirements, or running user focus groups. They want to build what they believe people need, which is very often not what people actually need. And they take far too long to do it because they're focused on perfecting the tech things instead of shipping.
Engineering teams need product managers, a QA team, technical writers, customer success people etc. Some engineering teams also need project managers too if they're no good at self-organising.
A great team is defined by what it actually, in fact, creates (which is determined by many factors). Not by the sum of the potentials of its contributors.
The article says great teams does X. And implies that you should do X as well.
But is doing X the necessary and sufficient requirements to become a great engineering team? In this case, no, it is not
A program (representing a strategic goal) can contain multiple projects big and small. Perhaps the author wants to convey programs which map to company or divisions strategic initiatives.
I think his advice suffers from the same problem Scrum does, which is that it's simultaneously too generic and too constricting for anyone to perform it correctly and get good value out of it unless they just happen to be really excellent at their jobs or have a great team leader.
Milestones, unless they look "project like" are a harder (though not impossible) sell. They complicate the narrative.
When I'm moving on, the thing I want to be able to talk about is what I accomplished or helped accomplished that delivered value.
At the end of the day when you're being hired you're basically selling one of two possibilities: things will get done and you will profit, or I will keep things earning you profit.
Or companies that had no support/customer service, so engineers are constantly getting interrupted. We get cranky real quick when this happens too many times.
Or companies with poor product management, so engineers waste time building the wrong thing. This goes on despite our objections, only to have it thrown all away in a month or two.
Great engineers are necessary, but not sufficient, for a great tech company.
So what I'm hearing is that that wasn't clear. Since a few people said that here, I'll make some edits to clarify. If you have any suggestions as to where the confusion is, I'd love to hear it. Thank you!
Is that something that should've been caught in integration tests? Why did it pass review then?
As long as it's not a pattern, it's not a problem.
If something super severe happens - that's an organization-wide problem...
If you could share this responsibility with the team so they know the context and outcomes desired by the business, you’ll have a larger pool of good ideas, including from folks who deeply know the code and push the roadmap from that perspective.
E.g. creating a holistic thinking environment: https://headheartbrain.com/resources/creating-a-thinking-env...
Opportunity Team meetings (or stakeholder chats - lead devs, architects, support peeps etc) always cover the general direction we want to go and are where the ideas for the backlog come from.
Example of easy benefit is if we have two things we want the product to do - this is where you learn what the options are and more importantly the rough costs/impacts. If something's going to cost 10x as much and require refactoring, I suddenly decide I don't want it as much as the other option.
Can also come up from mid-sprint from dev. (Real example) I had a US to add a new button. Dev noticed there was an internal 'button framework' already in place (as somebody had some a good job in the distant past). She asked if I could add a new US for next sprint to continue this work, so she could extend this framework and allow us to publish it. i.e. Focus on adding new controls to the config tool, and then delivering on the original US with a bit of config. I had no idea this untapped potential even existed - but for 2 weeks effort of one person, my product now has a configurable UI. Lost count of the number of issues where a customer query can now be answered with - Just add a new button/tab/menu (and then over time it's been easy to add contextual controls, make more tokens available to the target builder etc etc)
"Technical Debt" is often mentioned (hidden cost of a hacked together mess, increasing the cost of the next feature to be piled on top). What's satisfying are the "Technical Assets" like this - not just for me as I get a better product, but for the dev who can take pride in building something elegant and knowing this feature is theirs.
The product manager should be the overall decider, but the best products do not germinate out of a single person’s head.
They are saying the PM is responsible for collecting information from the customer and bringing that information to the team in an efficient manner so the team can make decisions based on that information.
If the PM brings incorrect or inadequate information, the resulting product will be poor because the team will have made its decisions on the basis of that poor information.
It should not, but the PM is accountable. GP put it nicely, effective PMs know better what customers want than customers themselves. This keeps iterations fast as PMs can immediately answer questions on trade offs instead of going back to the customers (who don’t know).
The PO is an always available customer.
And here's the wonderful thing about agile - if you happen to have an always available customer, you don't need a product owner
Redefining "complete" or letting a story roll over, e.g. the estimate for finishing it was wrong, seems to indicate something doesn't work as it should.
Breaking down a project into milestones sounds like a great idea, i totally agree that project management could use an alternative.
Besides undercommitting for the sprint, I've seen a lot of point inflation. Developers start padding their story point estimates to allow for extra time.
The worst case I ever saw was a team of five developers breaking down a feature request into very small stories with total points that would require the whole team's workload for two sprints. I completed all those stories by myself in three days. I'm good, but not that good. I suspect the team was so tired/afraid of being admonished by the Product Owner, they just kept padding and padding their estimates.
Of course, no one bothered to look at the cause of the problem behind the developers massively over-estimating required effort. "The Process" is always right, and the people are always wrong. Isn't that the first principle of the Agile Manifesto (sarcasm intended)?
The moment estimates are no longer without consequences you get this kind of behavior. I've done it too, in a place where I personally had to be present in a call with the customer to explain why I went 2 hours over the (someone else's) estimate. Your behavior changes after such a call.
The main point I was trying to get across is that team morale appears to be very important for the velocity. You don't get high morale by stuffing too much work into a sprint or making any single story important.
My main objection with Scrum is that people tend to take the rituals as gospel. Which is why I mentioned Agile rather than Scrum.
Please don't attribute superhuman skills to any particular team member.
For modern products valuable enough to be worth building deliberately, nobody knows what the market wants.
The team has hypothesises which they validate with software releases. The PM is accountable for these experiments.
Also, the use of the word "effective" in the quoted sentence is a setup for a No True Scotsman.
I did not say that a PM will understand any customer issue, and yes sometimes new research is needed, which is expensive and time consuming.
I do not see the link to the true Scotsman argument as in my view my description of a PM is not mythical or heroic but quite common at least in my area.
I agree to most of this. The team - by virtue of building and operating the software product catering for many customers - can often understand the customer usecases and solution better than any one customer. But it is the team, as a whole, where this expertise resides. Not one member of the team who happens to have a particular role and title.
> I do not see the link to the true Scotsman argument
By adding the word "effective" in:
> effective PMs know better what customers want than customers themselves.
you seemed to imply that any counterexample of a PM who is not doing this as not a true effective PM, and hence, not worth discussing.
The PO reduces that inadvertent gatekeeping by being always available with customer insights so the devs don't twiddle their thumbs or worse, build thr wrong thing, because they were guessing what the customer wanted in the absence of actually talking to them.
The PO reduces gatekeeping because they are an always available customer.
Which is why I made the distinction between accountable and responsible. I totally agree that it’s the team as a whole that’s responsible for the output of the team, and that it’s essential that everybody on the team has a customer focus.
> you seemed to imply that any counterexample of a PM who is not doing this as not a true effective PM, and hence, not worth discussing.
In my opinion, the better a PM understands their customers, the more effective they are in their role. I had thought that this would be relatively noncontroversial. It certainly wasn’t a dig against a some subset of my profession. Virtually all PMs that I’ve worked with see this as core to their role.
Now I am curious, was there anything in the wording of my reply, or in your past experience working with PMs, that caused you to reply?
No, it is not anything you said specifically, Geert. But I have direct and indirect knowledge of PMs who adopt the "All the shipped features were my ideas, the bugs and tech debt were added by engineers" attitude. This thread too gave my that vibe.
I have written more of my opinions on the PM orgs at [1] and [2]. Happy to chat more, if you are interested - my email is on my profile.