Coming from old school 'non-agile' financial world focused on bottom line I was in a bit of a shock learning about this daily standup ritual.
Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress.
Do these extra bureaucracy layers, meetings, checkmarks and vague "man-points" estimates actually bring any value.
We have fast changing application and we use scrum and sprints to fend off business people. Because one day they want one thing, next day 10 things more.
With sprint I can tell them to go away and make priorities because team is not capable of handling those 10 more tasks. Which in turn makes it predictable for business people because they know my team will be able to put those 10 things in next sprint (if those are soooo important, which later always turns out not really) and have it ready in production in 4-6 weeks.
With product owner and "refinement meetings" I don't have business/sales people coming to me with stupid ideas and trying to force me to implement something. They have to put more work in it so that I get structured stream of work, of course it is not always perfect but better than random sales hitting you with something by your desk.
What is important I have my team "burn down rate" which helps to communicate it clearly and they cannot argue with the number.
Other important part is that estimations are done by dev team and I think important part is that our management is not arguing with the estimations. They show trust in developers and are not trying to push down estimations or improve burn down.
So in my view my team has more power over the process not the managers. What managers/sales get form it is clear information that they can use in their work. Unfortunately I don't think it is the case for much companies.
We just have a list of tasks we need to work on organised by priority and a quick estimate of the time needed to implement it. We don't need to meet every morning to follow that list, going through the list and re-arranging it once a week is fine.
If someone outside of our team wants to know what we're doing, they can look it up. And they trust us that we know how to prioritise tasks related to our own product.
I've worked within a scrum team before this and I prefer this approach so much more. Prior to this I never knew what I would face that day. It's whatever the project manager told me I should face in the morning meeting, even if it meant setting aside something I didn't quite finish yesterday but could finish within an additional hour or two.
> It's whatever the project manager told me I should face in the morning meeting
Just to be really clear - this is not "scrum". People can have a really difficult time with "agile" and related practices because they're often conflated with bad people/managers/teams. For most of my developmement career I've followed some sort of agile-two-week-sprint-scrum-with-daily-standup process and I've never been told what tasks I'm doing each morning. I've never experienced this problem you started (but ive definitely had other problems!)
At the risk of being a bit no true Scottsman, the best agile practicioners (and I don't mean the Deloitte/Thoughtworks paid-by-the-buzzword type) advocate for finding a process that works well for your team, picking bits from the larger "Agile Toolbox". That's True Agile.
The number one issue I've encountered in my area is companies that say they use Scrumm when they really don't. Scrumm is a very specific, defined process, and as they clearly state in their "handbook" if you're not following the process exactly as it's described then you aren't doing Scrumm. Period.
I accept that not everyone's like me, though.
Then you are using Scrum to obfuscate a core communications problem in your company. Either the business people are clueless about what they want and are flailing around in a panic, or they are not able to communicate their needs to you properly, or you are unable to understand their real business requirements, or they insist on micromanaging every aspect of your product. Or some combination of these factors.
You should not have to "fend off" your professional colleagues, you should be able to have an adult conversation with your peers and frame requirements and expectations accordingly. If your company culture prevents this then that's what you need to fix, not further burden the team with the demands of Scrum.
You're phrasing it as if OP is the problem but he isn't, at least not the most significant part about it. Have you ever been in an enterprise environment where people simply and subtly tell you to fuck off if you want to "have an adult conversation with your peers"?
Now you're stuck with the shitty situation and need to start fending idiots off because there is often ZERO interest to improve things like communication. It's often not a startup with 10 people where you can grab a coffee and go "Hey guys let's talk about our communication issues!".
These topics are highly political once a company is large enough and they are extremely rigid and hierarchical. Exceptions exist but they are, well, exceptions.
Sorry, but I felt this post was almost accusing OP of inaction when that's a pretty easy thing to say from the outside.
Communication overheard is an inherit trait of large organizations. To some degree we can improve this with digital technology, but it’s a fundamental problem.
If you need to rewire the communication pathways of 10 people, the complexity can be up to O(n^2) because you might need to make adjustments for how every individual is getting signal from other individuals. As organizations grow the old pathways of communication are less optimal, but it’s also more expensive to rewire communication. To some degree corporate communication overhead buys stability and consistency across the organization.
You should attempt to optimize communication with those nearest to you in a large workforce, but at a certain point all you can do is give feedback to corporate about the communication pain points. If you work in a large organization and you can optimize your local communications to be completely optimal you probably aren’t communicating with enough people to have a full impact on the organization.
What I am saying is that using Scrum to paper over a dysfunctional organization merely adds more dysfunction. It's a bit like the old joke: you have a problem, you adopt XML as the solution, now you have two problems. If you have a dysfunctional organization, then you either fix that if it's in your power, grin and bear it if you can't, or leave if that's an option. You're not going to fix it with Scrum (or for that matter, Kanban or any other off-the-shelf process).
Thus far, your position on this is too rigid and does not account for the spectrum of: org size, type, age, etc. It lacks maturity and awareness of the realities of many organizations.
If you’ve found a place where you can implement this stance: great! The vast majority of people are not in that position, and criticizing them for it is not a great look.
The implication that this is “the solution” is pretty naive.
No, they're using scrum to guarantee a minimum level of effective communication. Business people don't have to be "clueless" to be constantly shifting priorities: they are reacting to the day-to-day business realities of client requests and biz dev opportunities. They're acting professionally, and in good faith. But if the dev team constantly reacted to those shifting priorities, the constant context shifting would kill their productivity and morale. Scrum provides a minimal set of tools and practices to ensure stability for the dev team, so they aren't constantly in reaction mode and have space to think about the product and be proactive.
I'm constantly amazed by people who talk about the "burdens" of scrum, like it's a lot of work that wouldn't otherwise happen. Really? Let's look at all that "extra" work:
- talking to your teammates daily to share progress, but more importantly raise red flags if there are impediments
- demo-ing your work periodically to verify that the stuff the team says is done actually meets expectations
- periodically taking some time to design the software, maybe refactor stuff that isn't correctly modeled, and planning your work
And that's pretty much it. Do people really work in places where they don't do any of that stuff? They just wing it, test everything at the end, and hope for the best?
That makes the business people sound a lot like the guy in Office Space who takes the specs to the engineers. If they are just a secretary who will rapidly oscillate priorities based on what customer yelled the loudest yesterday that isn't very useful to the business. The purpose of a product team or anyone in that capacity is to try and understand client needs prior to the client actually having them, rapidly changing priorities is generally evidence of that not happening.
This is a gross mischaracterization, and depends greatly on the industry, stage of the product, nature of the customer, etc. I've seen major organizations shift an entire 6-12 months of roadmap to cater to one or two key customers with unique requirements, just based on the sheer size of the revenue from the deal.
Re-prioritization happens for many reasons, and while it's absolutely true that rapidly shifting priorities can be a major red flag and may be extremely detrimental, it's also true that sometimes this is just the nature of the beast. And when that's the case, having a good business/product/whatever you label it layer to shield the engineering teams is critical.
> The purpose of a product team or anyone in that capacity is to try and understand client needs prior to the client actually having them, rapidly changing priorities is generally evidence of that not happening.
Again, this depends on the kind of software shop this is. If you're building the next social media platform, you have an entirely different set of problems and concerns from a behemoth enterprise software platform trying to beat the other behemoth for that next $30M deal.
There are no perfect solutions to project management, and if you prefer to work in tiny organized communes without corporate direction then that is your prerogative. I’ll be right there with you. Otherwise, it sounds like some developers here are just annoyed that their team and departments don’t revolve around their individual desire to not be managed.
Plus not everyone has the privilege of a good base experience, or the option to just find a better cultured company.
Billy and Bob want different things for different customers.
Billie gets commission on solving stuff for his customers, Bob for his own.
Both of them promise their customers everything next month.
Now you have 10 developers and Billie convinced 5 of them that building his things is important.
Other 5 devs are convinced by Bob to work on his ideas.
Developers are not informed about how much each customer is worth, as they don't need it for their jobs (just as Billie and Bob don't have any access to source code, databases and servers). Remember you need to have "least knowledge/privilige" principle because you don't inform all employees on all details of company deals (because I am writing about B2B products).
For me professional way is to have a product owner who listens to both of them, knows how much each customer is worth for the company, checks with the team how much each feature costs and makes priorities. You create a single line of communication and defined process. You communicate in a clear way what can be achieved when, well maybe with a bit of a slip here and there. Billie and Bob get one person to communicate with, get clear forecasts that then they can communicate back to the customers.
Maybe that is different if you have B2C products because then you don't have such scenario there.
The benefit of having a single PO is that they reconcile the competing priorities and the developers don't have to do it themselves.
Yeah, this is ridiculous; Scrum actually changed the term from ‘Commitment’ to ‘Forecast’ back in 2011. But the industry didn’t pay attention to that minor but important change.
The drawbridge is lowered every two weeks and that's when the team delivers and demonstrates the stuff they did during that time. This is also the time the stakeholders get to present the prioritised list of work that needs to be done during the next two weeks (Product backlog).
During the two week period if the stakeholders need to communicate to the Fort of Scrum, they can shout from the other side of the moat and the Scrum Master is the only one with access to the only tower in the castle where the shouting can be heard. The team has complete autonomy and peace to work for the two weeks.
I don't feel like I am building a wall, I am building a structured approach to communication and software building that is predictable to deliver value to our business and our customers.
Using scrum/agile to fix a lack of trust, not sure how that's going to work out long-term.
How do you work as a professional autonomously without setting rules for work and setting up process for regular progress check-in?
Funnily enough, it's precisely this attitude which has led to the creation of the product owner role, and Scrum in general.
Most developers I know are emphatically NOT good product people (despite what they may think).
A good product owner is quite difficult to find, as they need to combine:
i) a user-centric view of what the product needs to be,
ii) a business-centric view of what needs to be released, and when,
iii) a developer-centric view to make the 'best' product, from a programming perspective, and looking towards the long-term.
> That means we are beating the product into submission until its good, even if it means rewriting the thing three times and missing deadlines
This is all well and good until a competitor launches before you (with an inferior product), takes all your market share, and when you eventually launch you're having to play catch-up trying to steal clients. Meanwhile the competitor is reinvesting their initial revenue in making their product better to match yours, which means they keep their clients, keep getting revenue, investment etc.
You may have a better product, but you'll end up going bust.
Maybe the answer is just 'hire better engineers'. Where better means they're good at the product decisions too.
- regular retrospectives, for improving the process
- regular demos, for having a continuous process showing value and that we are aligned with the companies goals (anybody who thinks the development team have done nothing for the last x months can simply be pointed to the demo recordings page on the intranet)
- some kind of short regular meeting throughout the sprint to update the PO ("daily standup", but does not necessarily need to be daily, or standing up), who can reset expectations, as opposed to announcing at the last minute it won't be ready.
- and a regular planning session with the product owner to work with them to figure out how to bring value to the business quicker, push back on things that aren't that valuable, etc.
But of course this really depends on how the process is implemented and the environment you're in. If retrospectives and demos are often cancelled because "we need to ship this feature to this customer now!", if the daily standups become all about "why is this not done yet, how much longer will it take" rather than an honest peer-to-peer "are we on track for delivering this, what does the PO need to find out/inform stakeholders of/what blockers are there" and the PO doesn't include development staff in the backlog refinement and just dumps tasks on the development team, then yes, you will have an experience that sucks.
So as a developer, I like doing scrum when it is implemented in a way that the dev team and PO are viewed as peers and we don't skip any of the meetings. And I hate doing scrum when it's essentially just being given a load of tasks that I have no say over, no retrospective to improve things, etc.
YMMV (depending greatly on the setup/environment you are working in, I think)
(edit for formatting)
The system is simple; the implementation is often shallow and ritualistic, imitating the how without understanding the why. But the way that the question was asked leaves a lot of room for interpretation. I think it is important to consider a technique as it was intended vs as it is implemented. It would be the same for TDD, or pair programming, or object-oriented design patterns, and so on.
When implemented properly, scrum is beneficial, because it makes it easier for the information to flow through the team and for the team to adjust to the reality. When implemented poorly, it is a hurdle, because it degenerates into a bunch of pointless rituals.
Yes, but do people then go around saying "this dieting thing is totally dumb and a complete waste of time", "I just don't get why anyone would go on a diet", etc.? And how do those who have managed to stick to a diet and think they have benefited from it look at such people? Because this is the attitude that I think I am seeing in many comments in this thread.
That character of enjoying being micro-managed as far as I can tell.
We still haven't established what is it about scrum that makes you say micromanagement. Do you regard all prescriptive statements as micromanagement? Is a software framework, such as Ruby on Rails, or Laravel, or Django micromanagement? Are code reviews micromanagement? Is version control with git micromanagement?
I like the analogy.
I have a lot of sympathy for this perspective.
I also notice that 90% of everyone does everything wrong.
I don't know how to reconcile those two observations.
Kids are using electrical plugs wrong when they stick a pointy object in it. That doesn't mean electrical plugs without child safety close to the ground aren't potential hazards.
Kids damaging their hands doing control-stick spinning minigames using a N64 controller without gloves are "doing it wrong", they could just wear gloves. Still, Nintendo lost that case, and such minigames were deemed problematic.
People browsing a website where the links turn invisible, the mouse doesn't turn into a pointer, the browser doesn't show it is loading and no loading icon is shown, are "doing it wrong" for not just waiting 10 seconds for the page to load. Despite that, UX practices rightly condemn this kind of behavior: at least add an "alive" indicator.
To some degree, you have to make things "stupid proof". That's part of this field. If for some reason, Scrum allows managers more power to micromanage, that's a potential hazard which has to be admitted. That's the problem with the "you're doing it wrong" argument. It doesn't acknowledge potential hazards. Instead, it tries to circumvent that discussion and blindly assumes that developers both can and should "just fix it" when managers are doing it wrong. There's no discussion to be had when everything goes back to "you're using the tool wrong", even if that tool is designed poorly.
What's worse, go and be the guy telling managers that Scrum should be getting them out of a job. The only people I see doing that are the people not dependent on managers, e.g. Uncle Bob and Allen Hobub, and anonymous reactions here. When you're the one who might lose their job making that statement, suddenly, suffering under misimplemented Scrum and whining about it on the internet doesn't seem so weird anymore.
Scrum is, for better or worse, an all or nothing if it is to reach its full potential. Once you have "real" Scrum, you can start adapting the overall process through retrospective. But if you start your scrum adventure with "Scrum but..." then it's not going to deliver of the promises.
In a way, scrum and its team-based mechanics form a kind of prisoners dilemma where the first team member to claim credit will gain much more of the value generated than their peers. These incentives need to be taken into account in any framework based on teams cooperating, because they have the potential to rapidly poison any team where people are jockeying for promotion.
Agile is vague and handwavey enough that you can never really be sure that you're doing it or not. I think that was by design - a badly written rulebook won't spread as easily as a religion you can project your own hopes and dreams on to.
Whether you're "Capital A-Agile" or not - following a bible down to the letter - is so completely irellevent. SCRUM is never the goal, developing software effeciently is. It's a means to an end. If you can think critically about what your team/company needs to do this, then you should.
I'm sorry, but the basis of scrum is the scrum guide, not the agile manifesto. The scrum framework is fairly rigid (three roles, five events, three artifacts), and I do not remember whether it allows for much flexibility (one role instead of three, two events instead of five, two artifacts instead of three, that kind of thing).
 - https://scrumguides.org/scrum-guide.html
Can you elaborate on what in the parent comment is not part of scrum?
He likes doing scrum when it’s actually scrum and not “scrum”
We use it to keep things short and focused, since everyone wants to get back to their work and can not do stuff while also taking part in the daily.
Alas, it seems many people don't - I think I've only been at one place in the last 10 years who actually cared about keeping standups short and focused. I've been at places where standup was 20 people and took an hour every day.
Mind you, I've been at places where standup was only 5 people and still took 30+ minutes every day...
A famous example of that trick is the UK's Privy Council: "Customarily the sovereign remains standing at meetings of the Privy Council, so that no other members may sit down, thereby keeping meetings short." 
The morning standup works great when it's all technical people. Keeps the team up to date with each others' progress and cuts down on "I spent three weeks being stuck" problems. Here's what I'm doing, and what I'm doing next, here's what I need a little help on.
When management get involved and the meeting starts with jira thrown up on the screen, sure, then it's terrible.
> If I want to spend 3 days learning a new framework that might do the product good, nobody cares. The only thing that counts is the endresult.
Here's the problem with that, not every schedule can take that 3 day lag, and someone has to make a decision about whether the product actually needs that new framework, or if it's going to be good enough without.
Maybe you're great at making those decisions, but I've seen many times when people end up going off down rabbitholes either just chasing something shiny, or through a sense of perfectionism that actually holds back release.
Plus some people don't know when to ask for help, or when they're (for instance) duplicating effort.
Informal gatherings are not an appropriate venue - if this stuff only comes up then, then lunch gatherings are now work, and they're mandatory.
This is the gist of it. Some people just have this (very sincere) belief that everyone else are clueless idiots and need to be nurtured, protected and helped. This is the spirit of our age, and Scrum in particular is just another manifestation of this belief.
If you have a small(ish) team of great people you can get a lot done with a very informal process. When you start to grow, or you're not necessarily hiring the best there are, you start to need this stuff.
And you don't always need the self-motivated, highly productive builders. Someone has to make small tweaks, pad out the automated test cases, maintain things, document etc etc.
Interesting that it's never mentioned that Jeff Sutherland and Ken Schwaber, the creators of SCRUM both come from the military.
In my experience SCRUM delays and systematizes everything and kills creativity. Kind of like the military.
Systematizing everything and killing creativity is an essential part of making software projects less risky for companies. One of the largest risks to many software projects is the "bus factor" risk, where one employee leaving will scupper the entire project because they were the only ones who knew how it worked. If you have large sums of money riding on the success of a project, it makes sense to invest some time in processes that can mitigate the effect of one team member leaving. It's no surprise that these processes mimic the military, armies are entirely built around the idea that anyone can die at any moment without much impact on the mission.
At the sharp end of a military I certainly see SCRUM/RAD/DSDM as analogous to the ww2 German style of pushing tactical decisions down to a lower level rather than rigid command from above ala the French.
Im sure there are ex-military people who are chill, but ive seen some insane ones running tech verticals in the past.
1) Non-technical people outside do not get the power. On the contrary its the team that gets much more power. The team is in charge of doing the planning, etc. If the team says: "we will deliver in 2 weeks", manager has no power to force them. Unless he says something like: "ok, in that case I do not need it and do this one instead - that will bring more money".
2) You do not have to stand for the daily. Some teams do it so it involves a little bit of exercise. But you can just as well lean or sit with your coffee and casually share your progress. Like a kitchen talk.
3) Product owner does not OWN your code you fool :D You are the owner. Product owner commands the product. So if you implement a message queue thats great, you can be proud. But was it really needed? Does it bring any money, stability, a value in general to the product? That is something that usually you cannot answer, because you are focused on the quality of the code and do not care about the bullshit numbers right? But in case you do, you are aware of the whole situation, the market, all the customers etc. and you engage in that part, then you are super senior team member, you are self-organized and you actually do not need a product owner. That is like endgoal for Scrum. To create such teams (with such great and senior team members).
4) Scrum does not prevents you from rewriting the code until its perfect. Like where did you get that twisted idea? Scrum even says that tech debt (bad code, needs refactoring, etc.) is incredibly dangerous and should be avoided!
Simply put, if you and/or people in your team and around are assholes that push just for the deadlines (and bureocracy) and do not care about the quality, that is completely 100% on you/them, not on Scrum. Scrum tells you NOT to do it and gives you the power to resist people that are trying to force you to do it like that. Scrum encourages you to share the knowledge and work with others to produce better quality and make your day more easier, comfortable without micromanaging, etc.
And when what they please is to micromanage or worse, the developers haven't suddenly gained people savvy because of these rules. They will have just as much trouble fending off the problems as before. Possibly more, in fact, because the (Scrum) rules can be used as cover. Or lead the developers to believe they're protected by the rules, so they don't need to be aware of politics.
¹"Sociopaths" if you will, but in the "Gervais Principle" meaning, not the DSM.
As for the PO being a "they" that's something that needs to be addressed. I'm not going to assume ill intent on your part, so let's assume this is again a symptom of a poorly performing team rather than you (or the PO) being unreasonable. But also bear in mind that the PO going off doing "stuff" is generally supposed to be all those things that get in the way of development, e.g. talking to stakeholders & customers, addressing prioritisation problems and trying to prevent the team being overwhelmed with too many goals at the same time.
I'm definitely not saying that micromanagement doesn't happen but I'm saying that you could take your new company's approach (no processes, just let the devs do anything) to the old company and you would have many more problems. It all, as ever, boils down to working culture and practices, and a company that is agile in name only. You can't fix that by splitting things into 2 week chunks and making people talk to each other once a day.
If you want something like Scrum or agile to work, you must have technical project managers that are independent and, quite frankly, they need to be assholes holding both the tech side and the business side equally accountable.
But more generally, even in the total absence of "managers" and non-techies, communication is a good thing? Teams not individuals create great projects. Adhoc comms are great, but catching up with other technical folk casually over coffee daily for a couple mins (not more!) seems like a good idea?
Perhaps it's more the pedantic _format_ or feel of most standups that are what's terrible?
When you implement an anti-agile process such as SCRUM and don't let the developers choose how to communicate, then no, it's not true that more communication is better.
Scrum dictate Planning, Review, Daily and Retrospective. How you do planning, review daily and retrospective is fluid and often adapted during retrospective. When you start you do it by the book and morph it into what suits the team and organization best.
It's the first thing in the agile manifesto. The FIRST.
And yet here you are talking about processes and tools and claiming it's still agile.
First, the Agile Manifesto is not rejecting "the items on the right". It recognizes their value.
Second, the four principles of the Agile Manifesto are extremely general. It does not offer any recommendations on how to achieve the "items on the left". Scrum has a set of concrete recommendations for doing that.
Third, scrum respects all the "items on the left" of the Agile Manifesto. It emphasizes the importance of "individuals and interactions", of "working software", of "customer collaboration", and of "responding to change", and offers a framework for achieving them.
Second, you're focusing on the very things it says not to.
Third, you're focusing on the very things it says not to.
You can't win this, Scrum is usually a proscribed process from management forced onto teams.
That's, by very definition, is the antithesis of agile. Agile is supposed to be about self-organising teams that decide how they work best. If that's scrum, fine, but if that's imposed by management, it's not agile, it's anti-agile. SCRUM, SCRUM masters, SCRUM cards, etc., etc. etc. are all anti-agile by very definition.
There's a lapse of logic that is happening somewhere in the middle of this passage.
You can say that self-organising teams can decide that they work quite well within the scrum framework. Good.
You can say that self-organising teams can also decide that they do not like the formalisms of the scrum framework, and prefer some other set of guiding principles to achieve their agile ideals. Good.
You can also say that the management may muscle their incompetent way in and impose scrum upon the unwilling team, and by doing so divorce scrum from the agile principles that it was intended to uphold. Fine.
But what you cannot do is to conclude from the last statement that scrum is anti-agile. Just as you wouldn't conclude — if the management were so insane as to demand that all their teams program only in ruby — that ruby is an anti-agile programming language. What happened in that last statement has nothing to do with scrum and is no fault of scrum.
I'm a developer now managing product. if you apply a historical analysis perspective, Agile has either influenced our process, or our process may be described as post-Agile.
We have a backlog, organized by priority. We have self-organizing teams. Teams make their own planning and own their backlog. I, as the person responsible for product, take time meeting the people involved in making the product work in the market. Such as legal, finance, etc etc. The team does not have to participate in this, but they are welcome to.
What I have fought hard for is to not have management push tech stacks at teams. Developers get to decide, unless there is a legacy situation, and then they get to decide if they want to work with it. And we have a clearly defined org culture. That's as in who gets paid more, promoted, and why.
The developers have a higher-than average salary (algo for market value known to all and published internally), a % set bonus from total net, and an option to go for a higher % of bonuses by forgoing some of their salary. Some people like a known salary, some prefer a chance for a higher pay-out with more risk involved.
I'm writing a master's thesis on project management at the moment, part-time, and have had to do entirely too much reading up on Agile and project management history.
Like I wrote, we can absolutely be classified as Agile. We just don't have it pushed down our throats, and we have a realistic culture - our part of the business is dependent on excellent developers, we treat them with respect, give them decision-making power, offer a share of the profits, and expect them to care about the product as a whole and their part in it.
If the "Agile" you have been exposed to does not treat developers with respect, nor establish a mutually beneficial organizational culture, the market will sort the organization out, as long as developers remain a crucial part of the equation.
‘Agile’ gives you the flexibility to determine what that process is. Scrum is a different story.
Everybody else in Scrum is depended on the PO's abilities. One can train to improve the expression and prioritization skills, but it's very hard to train to develop or (even to appropriate) a vision about the product and the success.
This becomes even more acute in corporate environment, most PO are recast from former Project or Product Managers, who by definitions are Managers, not visionaries, nor intended customers of the product.
As a result, that critical element - the product vision - simply cannot be shared. It's just another "Quarterly Goal" in disguise - "the stonk must up!".
So the corpo-Scrum has a greater chance to devolve into shared lack of vision and collaboration theater.
One could paraphrase "Show me your PO, and I will tell what your Scrum is".
I’ve never witnessed “I’m having trouble on this” -> “Oh I ran into that before, have you seen X” in an official Scrum. Official Scrums are just status updates for your manager/other authority figure.
We’re also cargo culting other processes (sprint planning) that don’t even fit in with how our company does planning - we do everything quarterly, most tasks aren’t really re-assignable - so it’s just a shaming session for people who underestimated task lengths or are running behind.
I mean the term is sooo elastic it is hardly meaningful, but if you have a high skilled team, with clear shared concrete goals, producing code at pace, where the code is the measure of progress then that meets pretty much all the things that got written down in the Manifesto.
The fact that the manifest is just an observation of what we all know - how it feels to do really good work in a team, well, great.
The problem with Agile / work / life is that its hard to get all those pieces together and just as hard to maintain.
I think Programmer Anarchy is closest to the right idea. Get a bunch of (skilled) programmers together and give them a direction. But it is called anarchy to emphasise the idea you cannot have non-programmers in charge, or an organisational hierarchy getting in the way.
Changing that is what derails almost all Agile projects - its why Acqui-hires fail to keep the esprit d'corps, its why startups slowdown as they grow, its why steam engines were great before the factories, its ... humans aren't good at letting emergent order handle their day to day lives.
tl;dr - its not Agile or Scrum. Its us - its the difficulty of organising humans, its the constant fight against entropy, its scale and centralised planning vs letting the market decide.
We should all probably live and work under the Dunbar number, and allow markets to find where value is created.
I see ledgers as enabling that. The supply chain will set us free.
That being said, I do not think from your description you have experienced either SCRUM nor Agile.
Your new team example doesn't seem much better to me: even-though the freedom you like is what should be, the lack of process can't work in any reasonable even middle-size team. The process is not about slowing you down or giving power to management: it should be there to help you as a team member keep the vision and target, and sharing. How would you know how to collaborate with others on the team if you don't have any way to know what they are doing or how would you improve your creativity if you don't have any feedback on what you are doing?
I love this. Mind sharing the name of the company?
How do you, as a product owner, coming up with new features? How do you, as a product owner, prioritize one feature over other?
IMO: Agile produces worse software but when done correctly with a reasonable boss the work environment it produces is much simpler socially.
Agile is at is core just some suggestions for teams to work well together. There are no stand ups or sprints or whatever.
Scrum was created by one of the creators of the agile manifesto as a way to see consulting/training around the 'Agile' idea (timeframes may differ a bit, but they were linked). There is an interview/article by one of the creators of the agile manifesto (Kent Beck maybe?, will try to dig it up and edit the answer if I find -> was Robert C. Martin, see below) where he explains a bit the story and compares it to Agile (and basically says scrum has nothing to do with the original agile manifesto)
On a personal level, I hate scrum. The stand ups, the sprints, the retros or grooming or whatever they have nowadays. It is literally one of the first questions I ask in an interview about their processes and excuse myself from the process if I see if they follow it. It may work for others, but for me personally, I hate it with a fervour.
Though I agree with the Agile manifesto though, unfortunately it isn't very 'manager' friendly so you usually get scrum instead.
Edit: link to a reference to the article, can't find the original but found this: https://www.aaron-gray.com/a-criticism-of-scrum/#scrum-strai...
Stand-ups tend to be too much of a status report to the manager and are more valuable when its the developers talking between themselves and sharing knowledge of their work.
My biggest dislike for Scrum is how managers can use it to turn "agile" into basically a MS Project plan from the estimates.
This is the biggest lie of standups. No one gives a shit about standups. Everyone is waiting for their turn and then not listening to others. Let's stop pretending. If they need help, they'll reach out to the expert on 1:1 basis. Way more productive, way more concise, better bonds, privacy and learning experience.
No one waits until standup and be like "Gee.. I should ask this help in front of 8 others and waste everyone's time".
I've experienced the kind of "standup" you describe too, but it usually coincided with not actually following the rules for what a standup is (e.g. not actually standing up) and a bunch of other fake agile.
That seems like a bad culture more than anything else.
Being "stuck" working in a company like that really sucks. You can spend years spinning your wheels just trying to keep up. Working at a company that fosters collaboration and non-judmental attitudes. . . it's like night and day, and you can grow your skills and get out of a narrow role, and look at the big picture.
These are the kinds of things that every engineer needs to learn to look for when you're doing an interview somewhere.
I understand your take, thanks for the contrast.
How is the best situation for a prideful introvert to have a scheduled meeting every morning where they can make it known to the entire team exactly how stuck they are?
If anything those are the exact traits that make devs prefer 1-on-1 communication.
Psychological safety is the biggest factor in overal team performance and morale. That safety comes from trust, and that trust comes from routine demonstration of vulnerability and support.
Lone wolf rockstars can have their own moments of self-defeat and wheelspinning too. But if they haven’t developed a sense of courage and humility to admit it and bring it to the team, then the whole team is now literally bottlenecked on their ego.
That's my intuition about what's wrong with these ceremonies: they look like they are trying to foster those things by enforcing the superficial behaviours seen in good teams, but it is just the effect. A team with trust, close bonded and efficient has "standups" and "retros" in an organic way, because that's the effect of a team that work together.
I always felt these methodologies try to turn it around, as in "let's force the superficial behaviours we see in good teams, so it will make other teams as good". But it doesn't work that way and it ends up being a tool for managers.
Because the whole team's doing it, because it creates a space where it's ok to have got stuck, and because the once-a-day schedule sets a clear expectation about how long it's ok to be stuck for without at least considering asking for help.
If you were happy getting yourself unstuck asking for help 1-on-1 you can still do that, and you'll never be stuck when it comes to the standup, so it should be no skin off your nose. The standup is for the sake of the people who would previously be stuck quietly for days at a time.
(though if I'm on the receiving end, I'd prefer to nudge you towards asking in standup or at least in an async way, rather than interrupting my own flow by asking me for help)
What you’re really looking for is office hours.
If you’re self conscious about asking questions, how is it easier to do it in the moment with your entire team also listening in, as opposed to a direct IM, or email if you’re worried about disturbing the busy expert?
And how often do people have questions for experts? More often during the beginning of a project, then there’s a lull, then maybe some more questions as you find things you hadn’t thought of, then another lull, and then more questions towards the end where you are trying to close all the loose ends.
Daily standup requires you take up the expert’s valuable time in equal amounts during all those periods. And you have a bunch of people listening in who have no reason to be in that conversation. (A single 15 minute standup with a team of 8 is straight up 2 hours down the drain. And that does not include any of the context switching costs, or the cost of interrupting someone doing deep work).
Wouldn’t it be much bette to setup a 1 hour meeting on day 1 of the project with the expert (doesn’t stand up add a whole role, scrum master, whose only purpose is to direct people to the correct experts, basically? Well, use them if you don’t know who the expert is...prior to scrum we simply went to our team lead for situations like that). A 30 minute follow up at the end of the week.
Then another 30 minute follow up a week later and a 1 hour meeting a week later close to the end of the project.
That’s 3 hours worth of time from the expert in a span of 3 weeks, but the expert gets to hold forth for those entire 3 hours, without having to waste 12 out of 15 mins listening to useless crap. That’s a straight up 20% saving over the stand ups, gets you a full 3 hours from them, as opposed to 20% of the time, gets their attention in decent chunks of times, where you can have a real discussion, interrupts them 4 times over 15 working days as opposed to 15 times, and only includes those who are directly relevant to the discussion as opposed to everybody.
'The expert' may turn out to be the junior you just hired.
It's also about flagging issues. Sometimes 'This is not working' is not synonymous with '...because I haven't figured out how to do it.'
It can also mean 'This is actually broken' and the team hasn't realised.
Right - I'm taking the assumption that everyone will have their own area of expertise, and "the expert" for a given issue might be any one of your peers.
> If you’re self conscious about asking questions, how is it easier to do it in the moment with your entire team also listening in, as opposed to a direct IM, or email if you’re worried about disturbing the busy expert?
Because there's a specific time at which you're expected to do it. It's very easy to keep putting off an IM/email, thinking you'll just spend a bit more time trying to figure it out yourself first. And the expert has already been disturbed, so there's no need to feel guilty about interrupting them.
> Wouldn’t it be much bette to setup a 1 hour meeting on day 1 of the project with the expert (doesn’t stand up add a whole role, scrum master, whose only purpose is to direct people to the correct experts, basically? Well, use them if you don’t know who the expert is...prior to scrum we simply went to our team lead for situations like that). A 30 minute follow up at the end of the week.
No, having experienced both approaches. You're so much more productive if you have direct, daily access to the expert. On day 1 you don't know what questions to ask; most of what a programmer spends their time doing is exploring the problem space. If you've got a daily iteration cycle where you ask a couple of questions, try things out, and then come back the next day with some follow ups based on what you've learnt, you get a whole lot more done.
> That’s 3 hours worth of time from the expert in a span of 3 weeks, but the expert gets to hold forth for those entire 3 hours, without having to waste 12 out of 15 mins listening to useless crap. That’s a straight up 20% saving over the stand ups, gets you a full 3 hours from them, as opposed to 20% of the time, gets their attention in decent chunks of times, where you can have a real discussion, interrupts them 4 times over 15 working days as opposed to 15 times, and only includes those who are directly relevant to the discussion as opposed to everybody.
It doesn't end up being "useless crap"; everyone is part of the same team delivering the same product, so it's important to have cross-pollination about what's everyone else is doing.
Of course if someone has particular expertise that warrants holding forth for an hour on the subject, it might be worth scheduling a time for them to do that. But there's definitely no substitute for having everyone available every day, at the same time as the rest of the team.
And in the same breath, it is a pipe dream to believe this can be achieved in 15-30 minutes every day. That's part of the controversy behind daily scrum: as a status update tool (which, yes I know, it "isn't supposed to be"), it is too long and there are better methods which can be automated. As a tool to actually share things, it is far too short. In both cases, it is incredibly disruptive and goes against most existing theories on flow and productivity. Planning an hour session later is a mitigation tool, though it is arguably an extremely poor one.
>But there's definitely no substitute for having everyone available every day, at the same time as the rest of the team.
And you know that based on an experiment which has been going on in an extremely informal manner for 20 years? Remote work was deemed "impossible" and "no substitute for real work", but many of us seem to do just fine. Let's not count our chickens before they hatch.
There's no contradiction; the whole premise is that those are measuring the wrong thing, that the cost of misalignment and building useless things dominates those concerns. That matches my experience.
> Let's not count our chickens before they hatch.
Look, if you've got some magic way to make things work then great. But an hour at the start, thirty minutes each week, and an hour at the end, is absolutely no substitute for having someone in your daily standup; I've done both (or pretty close to it) and it's night and day.
"I am not sure about the best way to proceed..." Or "I think I am going to try X not Y..." Or "I got some weird error I don't understand so I am going to be trying to work that out today..."
Often someone will pipe up and say they've had some experience there or faced same issue before and let's talk after the standup or they have a fix in the pipeline for that so don't worry about it until next Tuesday etc etc.
I guess if your colleagues don't listen in meetings though you have a different problem.
I personally find that standups that focus on the outstanding tickets help me to focus on actually working on the tickets themselves :) rather than getting distracted onnbusy work or investigating some curious bug or refactoring something if I have to standup the next day and say "I did nothing on those tickets assigned to me".
However, many people, without explicit prompting, will in fact never ask these types of questions at all. That is the value of the daily stand-up: it ensures that everyone is prompted to as these things AT LEAST once every day, rather than holding onto them for who knows how long.
I'd also note that, without dailys, it's rather rare to have the entire team together in the same room, especially now with Covid. Ideally you'd ask this type of thing on email or slack, but lots of people just don't bother unless you give them this explicit time for it.
I'm sorry, I just can't see it. If people don't bother to do what they are paid to do, then have a chat with them/fire them in the worst case and let the people that act professional and grown ups work in peace.
The way I've seen this happen is that someone is assigned a task to render Bezier Curves in OpenGL, they work on it for a few days stumbling through, and 5 days later when they are done with the task that was assigned to them, they try to commit and find out that someone else had been given a task to remove all curves from the display and replace them with octogon segments or whatever.
With a daily scrum, they would say "I'm working on the Bezier Curves feature today" and someone else would be able to quickly tell them there's a problem with that.
In some teams, this kind of communication happens naturally all the time, but in others, people get focused on their own tasks and avoid it, either not paying attention to group chatter or simply not sending out wild questions. 15-30 minutes of lost focus for everyone everyday is really not that big a cost to pay to ensure this happens early. With any luck, a tight knit team would anyway spend that long on coffee together every day, so the daily just formalizes some informal process which already existed - no extra cost.
And with the octagon example, there should be some kind of ticket for Bezier Curves and Octogons, if they cancel each other out, who in the hell created those tickets/decided on them? And again, you don't need a daily stand up to have an idea of who is working on what. The ticket board/tracker should give you a good idea if someone is doing Bezier Curves and you pick Octogons.
> 15-30 minutes of lost focus for everyone everyday is really not that big a cost to pay to ensure this happens early.
The problem it isn't 15-30 minutes. It is much more, because unless you are managing with strict work hours, and can make sure the stand up isn't delayed or interrupts someone's work, you are losing a lot more of the developers time. Context and focus is lost if you were in the middle of a task. Time is lost getting back to the place where you were, etc.
It may help with 'bad teams', but if the punishment for good teams is to do that because of the others, then I am sorry, I'm out. Makes no sense.
If it works for you and your team, more power to you. But not for me. (And I would really advise folks to try and understand if the team actually feels stand ups (or any other thing really) are a positive for the people involved, or they are just to 'scared' to raise concerns to not be that guy, as I have seen this happen a lot, going with the flow, but the moment they can speak freely, raise all concerns)
> The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work.
The Daily Scrum is not a status meeting, nor a place to ask the "3 questions", it's a planning meeting, plain and simple. You don't have to walk the board and not everyone needs to take a turn saying what they're up to. It's a communication tool that provides an opportunity to inspect and adapt. The structure of it is totally up to the team.
If I am blocked, I don't need the rest of the team. I will fire an email or document and tag people on Github that its blocked.
Also, why are emails not a thing anymore? Email is amazing. Apparently, its old fashioned now. Whatever is happening in tech companies, we need to stop and evaluate what the hell are we doing. It would be a great experiment (I think Gumroad is doing it? I don't remember) where there are no meetings, no slack, and only email, adhoc 1:1s.
I feel like we're not talking about the elephant in the room here and finding ways to justify stand ups or scrum or whatever.
It's the question whether we can adjust "things" to be able to reach the sprint goal. It's the goal that counts, not the way imho.
> Also, why are emails not a thing anymore?
Emails have their Pro's & Con's - I prefer them, but not everyone is able to be precise and on-point in written language. Also, you need to be able to express your feelings in written language. That's one of the reasons I use emojis even in emails. The ascii-ones, but still...
> I feel like we're not talking about the elephant in the room here and finding ways to justify stand ups or scrum or whatever.
Well, I can see the elephant. But people have different opinions on this topic - something you need to accept.
This is exactly the opposite of what professionals do. They should be able to write well. It is not optional, it is an expectation. Feelings should not be part of a technical discussion.
In a few years, we're gonna get emojis in an RFC. Just wait, you!
Looks like we need to agree to disagree here.
See: Are Disagreements Honest? by Tyler Cowen & Robin Hanson, 2002
>The Developers can select whatever structure and techniques they want, as long as their Daily Scrum focuses on progress toward the Sprint Goal and produces an actionable plan for the next day of work. This creates focus and improves self-management.
> Daily Scrums improve communications, identify impediments, promote quick decision-making, and consequently eliminate the need for other meetings.
While I agree with your point that the format is flexible, asking the questions is a good way to keep people on topic.
If a team has a good culture around knowledge sharing etc then quite possibly its not required, while for other teams that short time all together is better than nothing.
Hey guys, in order to complete this library upgrade task today i need to do a major refactoring in common.js, so if you all could avoid tasks in this area until tomorrow so we all can avoid nasty merge conflicts it would be great, thanks.
Or hey, looks like this this test case from nightly is failing? Did anyone change something here recently? Who will take a look at it?
If your standups don't sound like this and only becomes a place to report status and excuses for being stuck (asking for help) to your PO or scrum master, then you have a lot to work on. Unfortunately the later version is very common and often hard to get out of.
A standup where developers are sharing what they are working on and people are actually paying attention means that as a developer I have to pay attention to 4 different technical discussions in the span of 15 mins.
The context switching and mental energy required to do that is tremendous especially when you may already be in the midst of working on your own complicated and mentally taxing project.
And this is the best case scenario. Throw in larger teams, throw in non devs, etc and it only gets exponentially more complicated from there.
The whole idea behind daily stand ups is broken.
What you want, at most, is a 1-2 per week regular status update, at the end of the day, when you’re already mentally tired so the time wouldn’t be better spent elsewhere, and good enough team relation building that you can approach each other directly when you need something.
Agile/scrum tries to replace team building with status updates. When in reality, what one needs is team members to get familiar enough with each other so they know that Jack really gets the post lunch slowdown, so after lunch is probably the best time to approach him because he may not be actively working on anything, while Jill likes to sort out all her emails and communications first thing in the morning and then focus on her work in long uninterrupted stretches, so that’s when I should reach out to her for questions/discussions.
And you need to build the ability in your teammates to be able to think about the bigger picture, and decide whether the question they need answered by Jill right now while she is in the middle of her deep work is really urgent and important enough that it warrants breaking her flow or not, or if it can wait till the next day or if it’s short and simple enough, till you guys get lunch together today.
The Big Lie is that team building can be replaced by process. And the Big Lie is pushed (with the best intentions) because team building cannot be packaged and sold as a 3 day workshop (well, it is, but that comes across as inauthentic and doesn’t usually work well, and team retreats have lost the majority of their flavor because honestly I don’t want to get to know the vast majority of my colleagues outside of our work lives). What it comes down to is good leadership to build a strong team culture, and that’s harder to find and develop.
So instead of making the effort and learning to accept that you will have failures where the wrong person is made team leader, or they were made team leader too early and building feedback mechanisms to identify such mistakes and hopefully correct them ASAP, we resort tom3 day workshops that teach agile and that you can replace culture with regular stand up meetings.
This! They try to do it backwards: instead of building the team that will organically end up having standups over coffee in the morning, forcing the behaviour in the hopes that will build the team.
Seems like a mistake to have actual technical discussions in a stand-up. So yesterday I've worked on X feature, I've gotten pretty far but I'm being blocked because of a dependency on Y feature. I'd like to continue today, developer Z (who is working on Y feature) can we discuss this after the stand-up? Of course, I could've communicated this before - and maybe I've already done that, but the rest of the team doesn't know. What if they want to pick up a new story that has a dependency as well. Should all this communication just happen in emails or slack messages? That's fine I guess but it doesn't hurt to have 15 minutes to get a good view of what the rest of the team is doing.
Once you get into the nitty gritty you should honestly just say hey let's take a subset of this group and discuss it after. Works for us. Non-dev people shouldn't be there, or at least shouldn't get turns unless they're actually working on issues in the sprint.
Could it be the other way? That the quality of the retros went up and down based on the team cohesion? If that's the case (and I believe it is most of the times, in my experience), the retros are just an artifact, not the real mechanism.
That has always sounded super pretentious to me. It's a damn meeting, not a wedding or a funeral.
Agile seems very ceremonious to me.
Instead we talk about our plans for the day, ask a lot of questions and plan our collaboration and problem solving sessions. These dailies are usually shorter and I feel like I get much more value from them.
I’ve found that people who stick to the classic “what I did yesterday, what I’m doing today, what blockers are there” set tend to provide really short ‘bland’ updates e.g. “I was working on task foo, I’ll be doing more on foo today and possibly starting work on bar, I don’t have any blockers”. If you’re not paying attention you can miss the fact that the same update has been reported for 3 days in a row and actually there is some unexpected complexity and/or a simpler solution has been missed.
For me, the best stand ups give a little more information and can be a trigger for a follow up chat after the standup. “Yesterday I was working on task foo, today I’ll be doing a bit more because I found doing XXX is a little trickier than expected - but I’m still hoping to get onto bar, no blockers - unless my idea for XXX doesn’t work”
I’ve also found this sort of issue made worse on projects where the Project Management have decided that we shall be “Agile” and do scrum. You then end up with a non-technical PM acting as the scrum master and mandated “best practice”. This always stifles any technical discussion as it is ‘noise’ to them, despite being ‘signal’ for technical folk....
At best you get the chance of feedback with nothing implemented out of it.
Why is your manager present at the stand-up? It's just for the developers.
Sprints are just the periods of time between retros.
It doesn't help that few people take it seriously. And there's always one or two people that talk out the entire meeting, ruining any chance of it working for the rest.
> any actionable items getting discarded immediately after
Except that, that's bad and honestly I've never experienced it that way. Maybe because I'm vocal and harp on about things if they don't change but yeah. An actionable item either becomes an email (which we will follow up on during the sprint, if nothing happens it comes back next retro) or an issue in a sprint / kanban board.
> And there's always one or two people that talk out the entire meeting
You've got to claim a stage here. Or if it doesn't pertain to you specifically, help teammates who do get snowed under by explicitly asking them.
I'd really not want to work in the environment you're describing, but I think I'd give it a shot to change it before leaving.
Admittedly, that is my biggest problem with Scrum. Humans are by default the most volatile factor. While we could minimize its contribution, Scrum instead inflates the importance of the human factor. Example: estimating.
Grooming the back log for priority with just the people who are critical in deciding that priority, is common sense. Almost every methodology recommends this. Yet estimating is a tough sell: at the start, it is largely deemed useless due to inexperience. Yet as experience in estimating furthers, so too do metrics become available which make estimating unnecessary. Worse is when estimating and even re-estimating practices can easily eat entire days worth of productivity (a few hours per person + a high likelihood of hours around that meeting to be less efficient than could-be, loss or lack of flow). This is before we add that estimating has very little empirical evidence behind it (#NoEstimates) and psychological effects make things even more volatile (anchoring effect, Parkinson's Law, etc.)
I can't speak for others, but I went into this field because I want to minimize the human factor in anything mundane or boring, allowing people to maximize their participation in anything fun and exciting. For me, Scrum does the exact opposite.
I like to think that it would take a technically competent manager to understand the progress and performance of the developers. OTOH, with Scrum, you can generate numbers, however meaningless, without such prerequisites.
That's probably why some managers like it.
More likely is that, if teams were truly "self-managing", the number of management, management-lite and pseudo-management roles should be lowering drastically every year (or at least converting to hybrid roles). Yet I barely if ever see a Scrum adoption result in the majority of managers losing their jobs or changing the type of role they are performing. I also doubt data scientists would appreciate these middle-school tier statistics be called data science.
Why would you say that? There's nothing in the theory of scrum that makes a claim on the autonomy and creativity of developers. On the contrary, if you look in the scrum guide, you will find words like self-management, and independent, and cross-functional.
> Certain managers like it because it generates metrics, even though the metrics are meaningless drivel("we completed 20 story points this sprint!")
Story points do not figure anywhere in the theory of scrum. It is quite a different invention.
I'm really struggling with this argument.
So if someone reads a text, picks from it things that he likes, throws away things he doesn't like, tries to apply the result in practice, but without success — how come he gets to blame the original concept rather than his own invention? Why call the method derived via picking, choosing and mixing with bits from other texts by the same name as the original text? What makes people think that they are "doing scrum" when they are not?
Scrum was actually created by two Japanese dudes , and was for the manufacturing industry.
While we’re on the topic of Agile, though, it’s best not to forget its eXtreme Programming roots.
For me scrum optimises for a very narrow perspective of software development which did not align well with long term and sustainable software engineering and ownership. If i was far less than generous I'd say scrum is design for children rather than responsible adults.
For success as a leader i should be focusing on building and fostering a team than does not need the self imposed constraints of scrum but are rather conscientious and vested enough to build and deliver what the company needs and the team can maintain.
It's super in Operations.. not super in Development.
Sprints make no sense at all. If you can do it you can do it. Stay at it and go on a spectrum of pumping consistent results to once in a blue moon creating something special. Sprint adds nothing to that other than a phrase to use in a conference call to hide ineffective working practices. I have Sprinted on a 35 hour working week, I have also worked normally on a 35 hour working week. Results are similar aside from stress others show where Sprint = Haste, and Haste != Speed or Quality.
Developers have always complained about being micromanaged or being given business objectives that don't make sense or about changing requirements or some such. But non-technical managers at the same time typically complain that their developers are prima donnas and that their team produces unpredictable and non-repeatable results.
If you understand KPI's, you understand scrum. Scrum exposes the development process to managers and in theory is supposed to give them a better idea of what the team is doing, what they're having problems with, and what the consequences of their management directives are. If that leads to better management of the team, scrum is a success.
Done poorly it may create a wealth of problems. The cadence may create undue sense of urgency that may lead to unhealthy levels of stress or to depression and desensitization of missing work targets. Nonsense competition may arise due to points and velocities.
Elevating a waffling HBR feature to the status of antecedent decalogue is totally on brand for the clerical formalists that promote Scrum.
In high performance teams, Agile begins where Scrum ends, and as the remarks here extensively demonstrate, awful working environments won't be improved by a bunch of ceremonies.
Again, thank you!
I’ve always felt scrum adds value for new teams who haven’t worked together or on greenfield projects in a space the team hasn’t worked before. That’s when the standups identity impediments. That’s when retrospectives uncover process or people issues. Once the team hits a stride it’s time for the training wheels to come off and then it’s just a Kanban board.
I also agree that after a team gels together there’s no need for a lot of the overhead that comes with scrum.
My experience in organizations have always been to continuously shape the process depending on how the team feels about it and not call it scrum
Here is the readable on the web version:
Shape Up Your Agile (article):
Not speaking for OP but agile, straight from the manifesto, itself is anti-process, at least in the sense where...
> If not, which process do you find more palatable
Is a cogent question.
Which process do /you/ find productive and helpful? What would you change? What would you emphasize? Process is a tool to serve you and your peers and your stakeholders. Not to pay fealty. Not to choose sides. It can be picked into pieces and rearranged. It can be recalled or reorganized whenever it’s unsuitable.
But it was a process we decided on as a team, not something a consultant had read in a book.
I don't think that's true, it's "people over processes", it doesn't imply a "no processes" stance, just that you shouldn't _force_ a process and you should adapt.
IMO that's what the agile manifesto is about: adapting.
If the team likes scrum thats fine but picking scrum vs kanban, or bitbucket vs gitlab vs cvs, those are details a team cam and should be in charge of and revisit whenever they feel like. Because all that matters is working code, and what gets you there is skilled people that communicate well.
the problem is that this assumes that estimates can be accurate, which in some projects may be the case, but in general there are always unexpected problems, things you didn't know you didn't know, etc.
If it happens that a company goes under because they lost all income because there was no deliverability, the problem was the company had the wrong team of engineers. Either too much "isolated geniuses" or too much inexperienced. Sometimes also happens that the management decides the way of doing work without technical involvement. Even companies I've been that decided to rewrite a mature and solid big piece of software, because they "needed to use more strategic technologies". Meaning, the technologies that were the "cool thing to use if you are a cool startup". And they use Agile (so they claim).
Here’s where I disagree and would say that a well-functioning process certainly can help with that, albeit not perfectly, of course. And that is by aiding the invididuals involved in interacting well.
You can say we should separate agile from scrum, but scrum basically is agile today (and Kanban!), modulo the odd free thinking, practically self-managed shop. Agile comes in via consultant after a shop declares itself on a "burning platform."
What it's become, IMO, is work about work. I hated it.
The only contact I have with it now is when my manager has to hang up the phone because she has to go to the standup of other managers. (I drive a truck.)
I've been part of many meetings/scrums where the point was that the manager gets the info of how things are progressing but the meeting itself was net negative for the developers as they lost their flow and some of their time.
Is it possible to fall in love with someone so quickly over one line written on the web?
I don't think that's right. Agile is a way to manage projects as an alternative to waterfall. The 'communication' stuff on top of that might work well with it, but that's all to do with how you run your agile process. Agile itself is just about the order you do stuff.
Imagine that for your project, there 3 'features' that are needed. Each feature needs, designing, implementing and validating (testing it works). You end up with this grid of all the work that needs doing:
F1 F2 F3
In Agile, you progress through the grid left to right. First you work on feature 1, doing design, implementation and validation, and only then do you move on to feature 2, then feature 3.
The reasons for doing this are many and varied. The obvious ones being that in waterfall you don't have anything useful until everything is done, whereas in Agile at least you have F1 fully done a third of the way through. This also means that you can decide that F3 is more important than F2, and then later that F4 which you'd never heard of is needed when F2 isn't (and you can decide this as you go along).
This bare concept of agile is almost always what you want to do, particularly for software projects. The concepts of backlogs, sprints etc. are all the process that has built up to make this work in real life. Approaches such as Scrum have then built on top of that giving a whole lot of extra practices about how teams should work. A lot of that is variable in usefulness and how well it is used. You don't want to get away from the underlying value of the agile process though.
I can't wrap my head around this. The first item of the agile manifesto literally says:
Individuals and interactions over processes and tools
> When [the three of us, along with many others] created the Agile Manifesto in 2001, Kent Beck reiterated his vision to heal the divide between business and development. Kent created the website, and we were stunned when thousands upon thousands people signed this website. So we decided to form an organization – the Agile Alliance. I was the first chairman of this organization. The next chairman was Ken Schwaber. He decided he wanted to do something else. He wanted to make the alliance a revenue making machine…
> Ken came to me some time later, telling me he was going to make a class called Certified Scrum Master Class. I thought it was a dumb idea. But a dumb idea that works is not a dumb idea. People came and liked it. The more he charged, the more people came. He started giving out certificates, and he made a little organization off to the side – the Scrum Alliance. Lovely thing to happen.
Do you abruptly cut the interview short or do you just make a mental note and continue?
Usually after this, I take some time just to 'calm down' and think about it, and I usually shoot them an email saying that I appreciate the time and opportunity, but I don't think it will be a good match and wish them luck finding a better suited candidate. I had a few replies thanking me, most just don't reply and I had one (only one) insulting me and my experience and saying they only interviewed me out of pity as my experience wasn't good enough (I had more years (8) of experience in the tech stack they used than the number of years the company existed!:)) Was from a Who's Hiring thread here actually :)
I LOVE sending letters like this. It's the politest middle finger you can give to a douchey hiring manager or organization.
I don't have so much experience interacting with recruiters/hiring managers. However, every time I've let some frustration show at work, in the moment I felt vindicated and righteous, only to feel like an ass about 24 hours later. Normally when I feel the need to vocalize a frustration, I try to write down or remember why I'm frustrated, but wait to actually action the communication until I'm calm. Goes a long way to focus on solving problems, without identifying people as the problem.
Typically, they just become another box to check. “This task is underway, blah, blah..” and everyone tunes out.
I’ve seen them done well and usually because they are focused on prioritization - “is this still important? No? Stop doing it”.
I have been a professional developer for close to 20 years, 10 more if you count my hobby/learning path as well. All teams I worked that implemented scrum were a hindrance to me and not a benefit. It may work for others and that is fine, but it isn't a silver bullet solution for 100% of the cases.
If you’re on a team of more than a couple people and you have stakeholders feeding requirements to the project, what do you do that’s so different from the simple process of Scrum? It’s just set up to say, hey, we’re going to work on these items for the next week or two, and please don’t constantly come interrupt me in the middle to ask me to fit in a bunch more things than what we agreed to work on in this short time period. Then we’ll show you how it’s working and you can decide what we do next.
Is anyone really doing Waterfall now? Maybe earlier some industries used a Waterfall like process. But actual descriptions of Waterfall seem to go back 50 years to Royce's paper, Managing the Development of Large Software Systems. That model was explicitly described as bad. I don't fully agree with that paper, but his suggested improvements are more iterative. Personally it seems like now Waterfall is mostly used as a strawman.
> but not usually for software where you learn more from users about what should be done and tweaked as you go along
I agree with that. I wonder if Agile is highly influenced by it's leaders being closely involved with consulting.
Also, if they team does not deliver, at the end of the day it's their manager who gets the blame, not them - so why should they care? Basically, smart devs are repaying the psychopathy of the typical company owners with a 100% selfish behavior of their own. That's the what I've seen in the wild, not the positive scenario you're describing. Perhaps it's "late stage capitalism" in the flesh.
But it's indeed first and foremost the managers failing not recognizing these attributes in their team members, and not working to fix their attitude (which clearly is the underlying problem here). Imposing more process will not fix the team not caring about the product / business.
If you are not up to changing jobs, I'd suggest you try openly bringing up your concerns in a retro. Unless, you actually don't care about the product yourself either?
Psychopaty is perhaps too strong a word - they're just taking care of their interests. Perhaps in the olden times they were aligned with the interest of the employer, but currently they're clearly not (my employer has just announced that they'll lay off a couple hundred of IT people are replace them with an Indian outsourcing company, purely to cut costs...).
I don't care about the project either, but as a tech lead, I'm actually paid very well by the company to take care of its interests - incl. killing off any wild ideas that the devs might have. This (staying on old and boring tech that works well, but is not what will help me get the next well-paid job) will hurt my career in the long run, but my plan is to actually go FIRE within the current job, so it's not a problem. Most people don't have such plans though and hence they don't benefit from toiling for an ok wage with boring tech that gets the job done.
The underlying systemic problem is of course the fact that the whole industry (at least here in Europe) is crazy about following the latest tech trends for trends sake, and thus running along on the tech treadmill is the best way to get highest compensation. In the US I believe it's different, because there joining a FAANG gets you the most money, and they mostly use custom tech anyway, so they don't care about the latest open source hits (of course, you have to leetcode instead, so it comes with its own set of problems).
Not one large-sized Nordic bank by any chance? ;)
The flipside of using latest tech is you should have easier time hiring new people to replace the ones who left. But I am certainly not denying that hiring devs who are willing to commit to the business is a really hard problem. Companies should maybe focus this more in their hiring practices over just the technical skill profile. Good developers will learn the tech stack in the job, if they care.
Also, people retention / satisfaction is pivotal in keeping the commited people on board. Doing massive outsourcings to India is certainly not a good signal to send to those who feel their skills and commitment could be appreciated elsewhere as well.
I will say no more ;)
> The flipside of using latest tech is you should have easier time hiring new people to replace the ones who left.
I've heard this argument before and it's basically a non sequitur for me. For example, there are fewer people who know the latest and greatest Scala libraries than those who know for example Java 8. The people who have learned Java 8 have not died or retired yet - they are still in industry, in large numbers, and hence it's easier and cheaper to hire them. Whereas you have to fight for the bleeding edge guys - usually by offering them high-paying contracts (which are the reason half of these guys are following the bleeding edge trends in the first place...).
Good luck, if you're a engineer trying to make things work without too much ceremony. everything is about chasing the latest and the greatest, whether it makes sense for the problem at hand or not.
No, what I dislike is being told to go work on feature X, when I know that we’re going to run into issues with feature Y in a matter of weeks, and then having to spend nights and weekends fixing it when it eventually does break, because nobody trusted me to know what was good for the product.
Scrum gives people who have no clue what they’re doing the illusion that they do. The process is literally their only handhold to avoid feeling swept away. Like, I’m doing nothing else right, but at least we are following _the process_.
It can't be both things at the same time. (out of curiosity, you say 100% of the time, how many companies you worked for that did scrum perfectly and had 100% good results?)
I have only worked with a single team that fully followed a scrum methodology, but it was very eye opening and successful.
How many of your bad experiences with scrum bent more than a couple of these rules? How many were always followed? : https://en.wikipedia.org/wiki/Scrum_%28software_development%...
Some big things I've learned are:
* Sprint planning has to be mutual. Management cannot plan a sprint on their own, they do not have enough information to accurately plan for order or operations or effort required. Furthermore, participants need to understand the direction and priorities of the project in order to do their job properly.
* You cannot change a sprint that is in progress. Mitigating switching costs are a huge part of the benefit scrum provides. Compromising on this defeats the point of the process. It's hard to tell management "no", but you have to do it. If fire-drills are unavoidable, then you must to account for this time when you plan a sprint.
* All stakeholders must attend backlog groomings and sprint reviews. If the inputs to the process are guesses, then the outputs will be guesses. This is just as important when prioritizing work items as it is when giving feedback on completed items. It must be first-hand. Documentation and/or status updates simply do not even come even 10% close to the power that a live demo does.
To me that approach goes against the original principles for agile, especially "Individuals and Interactions over Processes and Tools". I'm not a huge fan of highly structured Agile and scrum processes. But I think the best agile implementations come when teams have ownership over their own agile processes.
And if the team truly has ownership they are responsible for their success or failure. Sure, their process may be objectively bad, but that doesn't mean a better process should be imposed from outside of the team. The team should have some level of trust to fix it.
I also disagree with your three points being hard requirements. They may be really good suggestions for teams doing scrum, especially in lower trust environments. All three are specifically for scrum, for instance they lose meaning if you aren't doing sprints. But that's just arguing semantics. Fixing compromised scrum isn't strictly necessary if the team can be successful by dropping scrum.
If, for instance, you’re not doing time-bounded sprints, you are objectively not doing scrum. Scrum has an implementation guide that outlines this.
> While implementing only parts of Scrum is possible, the result is not Scrum. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices.
Many people borrow ideas from scrum for use in their homegrown agile solution, and that’s ok. But it’s not scrum.
Ownership and vision are kind of the point of midlevel and senior roles. If you'd fall off the track in a matter of weeks, something is seriously wrong.
What do you call it if everyone is doing it wrong?
You can't design, review and test new product designs in a word document. You need to be able to iterate, learn, adopt. PDCA: Plan, Do, Check, Act.
Scrum is just a framework that implements this. Main benefit for the business is that you don't have long periods where you can't change where you're going. And if you change your mind, you don't want to have to throw away a lot of useless investment. So you only plan short sprints, you deliver quickly, generate ROI, and improve your plan where you're heading.
Just a way to manage uncertainty.
Scrum and all agile processes are owned by the development team (including the PO). If they're imposing a cost and not bringing value to the developers, you're supposed to change them.
And then, based on the comments seeing here, you are doing it wrong because
>if your experience of standups, plannings, retros etc is bad it is by definition because they were doing bullshit scrum and not adapting.