Are agile scrums an outdated idea?
Here’s a video on YouTube making the case for why agile was an innovative methodology when it was first introduced 20 years ago.
However, he argues these days, daily scrums are a waste of time, and many organisations would be better off automating their reporting processes, giving teams more autonomy, and letting people get on with their work:
https://youtu.be/KJ5u_Kui1sU?si=M_VLET7v0wCP4gHq
A few of my thoughts.
First, it’s worth noting that many organisations that claim to be “agile” aren’t, and many that claim to use agile processes don’t.
Just as a refresher, here’s the key values and principles from the agile manifesto: http://agilemanifesto.org/
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
* Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
* Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
* Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
* Business people and developers must work together daily throughout the project.
* Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
* The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
* Working software is the primary measure of progress.
* Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
* Continuous attention to technical excellence and good design enhances agility.
* Simplicity–the art of maximizing the amount of work not done–is essential.
* The best architectures, requirements, and designs emerge from self-organizing teams.
* At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Your workplace isn’t agile if your team is micromanaged from above; if you have a kanban board filled with planning, documentation, and reporting tasks; if your organisation is driven by processes and procedures; if you don’t have autonomous cross-functional teams.
Yet in many “agile” organisations, I’ve noticed that the basic principles of agile are ignored, and what you have is micromanagement through scrums and kanban boards.
And especially outside software development teams, agile tends to just be a hollow buzzword. (I once met a manager at a conference who talked up how agile his business was, and didn’t believe me when I said agile was originally a software development methodology — one he revealed he wasn’t following the principles of.)
Let’s say you have a team of 12 engineers, and each engineer makes $160,000 a year.
That’s $76.92 an hour.
Taking 12 people offline for a 1 hour meeting means that meeting is costing you $923.08. * 5 days a week = 4,615.38. * 52 weeks a year = $240,000.
You’re burning a quarter of a million every year just having meetings. Also likely, these aren’t the only meetings they’re in.
How much money are you spending preventing work from being done?
We used to have a daily stand up first thing in the morning before anyone had even had coffee for gods sake. “So what’s everyone working on?” Fuck if I know, I haven’t even read my email yet.
If your scrum is an hour long, you arent doing it right. They should be 10-12 minutes tops.
I call those emails.
When I run mine… It’s story 1 - highlights
Story2 - highlights
Etc
In depth conversation can be had after standup… I’m in and out in under 10. Often under 6 minutes… lol
I’ll preface this to say I’ve only done real standup meetings on a project a long time ago, and maybe it wasn’t done the right way (No True Agile), but I didn’t really see the point.
In my opinion a 10 minute meeting with more than 3 people is probably worthless. What information is being exchanged in that time that shouldn’t just be an email? Are people not sure who can help with their issue or not going to bring up things that need more attention if not forced to speak? Does the entire team really need to hear these minute summaries of the small things people accomplished in the last 8 work-hours? And couldn’t this just be done with the team lead talking to each person and coordinating or calling meetings when members need to talk?
So these super short meetings succeed at not wasting a lot of money on process, but IMO it’s because they’re a short waste rather than because they’re an efficient use of time.
My team runs an async standup on Slack where you just respond to a bot with all the usual stuff. We also do a slightly longer meeting on Tuesday morning where we go into more details, but never more than a half-hour.
This sounds great. “Hey, I’m trying to figure out this bug in this area, anyone have any ideas”. The main benefit of meetings is forced acknowledgement of “messages”, but reading email or other communication mediums should just be part of being a responsible professional.
Stand-up shouldn’t be about what was done, it’s about what will be done that day and what overlap they may have with others.
It’s also the time to communicate changes in priorities, like prod bugs or new input from customers. Usually it’s “oh, that’s probably my fault, I’ll take it,” but sometimes it’s “let’s meet after to discuss it, I’ll need people X and Y.”
And yes, most of the time it’s a waste of time, but sometimes it’s really valuable, and it’s hard to know in advance. Having the meeting can mean the difference between a prod bug getting fixed that day and not, or a dev wasting a day on a useless project because they missed an email. So we pay that cost to make sure we can catch issues and resolve problems early and quickly.
a dev wasting a day on a useless project because they missed an email
This all makes sense to me, though I do think this “missed an email” issue really is a problem of unprofessionalism that needs to be resolved. I get that some people just don’t like it, but your job includes reading emails, at least from your immediate team members. Alternately, if it was missed because the sender is prone to sending manifestos to the entire team with an important query embedded in paragraph 4, they need to do better. It shouldn’t be that email is an unreliable form of communication.
It’s not email specifically, it could be a bunch of different things, like:
- in person conversation that happened without the dev present
- slack message chain the dev wasn’t watching
- email where sender forgot to include the dev
It could be a ton of things. The point is that a standup provides a sync point to catch any of those misses. You can and should improve async communication, but mistakes will happen and it’s useful to catch those if deadlines matter.
In a FOSS project or similar, it’s fine to not have those since timelines are usually more flexible. But in a business, it’s usually worth a little inefficiency if it means more predictability.
@technology @ajsadauskas @jordanlund @pixxelkick @7u5k3n the point is you can say if you have problems and quickly find if someone else knows the solution or if you need to spend time digging in.
Or if someone else is working in the same area of code as you. Typically not much of an issue on an individual team but it can happen across teams. We’ve gotten better about dividing things up but there are still times when working on an issue leads you to an area of the code base that isn’t obvious from the outset.
Avoiding merge conflicts altogether is the easier route when possible.
The issue is this only has value if your scrum is large enough people might be accidentally conflicting with someone they wouldn’t just be coordinating with normally. And the larger the team the worst the cost of a standup meeting and the less value is provided. A multi team scrum sounds horrible.
We have various scrum teams in our department and the scrum masters communicate with each other. The teams don’t interact with each other that much.
That kind of meeting would be better as an email.
@technology @ajsadauskas @jordanlund @pixxelkick @7u5k3n no, people can say things like that faster than they can type. Unless you are not native
Gathering for a meeting and sitting through everyone’s turns is way longer than typing an email. “I have a problem with X” shouldn’t be a long email, and if the description is a longer conversation you’re burning too much time for the uninvolved people in a large group meeting. In both situations the back and forth discussion should occur directly in a follow-up, not in the group communication medium.
It’s almost never the right choice to prioritize the speaker’s time efficiency over the listeners’. Any speed in speaking vs. typing is completely overshadowed by making 5-10 people listen to them vs. a quick skim of an email and then moving on when it’s not something you know about.
@Zaktor @bluGill No. A lot of meeting could better have been e-mails or a chat message, but they are still slower than direct communication. Usually people have switch off notifications so they are not distracted by all the emails coming in over the day.
Meetings also synchronize the team which important to give everyone an overview. All are concentrated on the subject (if the meeting is short). Furthermore, it is a ritual. And ritual are important for human beings to structure their day.
The problem isn’t the speed of communication, it’s requiring everyone else to witness communication that doesn’t apply to them. I’ve never been on a team where 8+ people are all potentially involved in the same issue. If it takes someone 5 minutes to write an email or 1 minute to talk it out, it’s still a bad idea to have 8 people listen so their communication will be faster. And generally a back and forth, which is where direct communication really shines over email, shouldn’t be a full-team situation.
And yeah, email can be a distraction, but that means you need to handle email better (filter your team’s email to priority and churn through the bullshit flooding your inbox later). It’s just as much a flow killer to get people up and out for a meeting that may be short, but is largely worthless. I know when a meeting isn’t worth my time. Short is better than long, but it’s still a disruption beyond skimming an email and recognizing “not my thing”.
In the end, what really strikes me as a problem is the frequency of these meetings. You shouldn’t need to be synchronizing your team every day. Leading up to a release, sure, every day matters and things can change in an instant, but for a regular way to manage a software team? You shouldn’t have daily pivots needing realignment. The ritual isn’t to make the devs comfortable by structuring their day, they’re not children and they can make their own structure, it’s instilling a feeling of perpetual crunch.
Wouldn’t want to have you on my team thanks
LOL, I very much could not care less random internet person. I’m quite comfortable in my career and you sound obnoxious.
The goal of the sprint meeting is very straightforward:
- Everyone gets informed what everyone else got done yesterday, so they know where people are at
- Everyone gets informed what everyone else is doing today, same reason as above.
- Anyone who is currently blocked on a task can quickly ask for assistance, and with everyone in the meeting someone can jump on that or direct them to a person who can help
- Anyone who doesnt have anything to do can ask if anyone else needs help with anything
Its an all hands meeting meant for everyone to get their morning baseline “what is everyone else doing” understanding.
It’s also extremely critical for company culture, morning standups keep individuals anchored to “who is my team” and “what do they do”, so they understand when asked who so-and-so is and what they do here.
Without the standup meeting, you typically get situations where everyone is operating in their own glass boxes and they start to disconnect from the team. They have no idea what other people are working on, they have no idea what other people even do for the team, etc.
You dont want a situation where your developers have no idea what your QA team is busy with, and no one knows what the UX team is currently tackling. Thats how you get a lot of divergence and disconnect.
The standup helps keep everyone not only aligned, but also knowledgeable of whats coming up next.
Your devs hear about what the UX team is finishing up so they know that in a couple days thats going to be next on their plate, and your QA knows what the devs are finishing up so they know whats next to focus on.
You can consider the morning standup to be your cross pollination meeting for infoshare.
@Zaktor @7u5k3n A meeting is only useful if it (a) causes someone to do something they wouldn’t have otherwise done, or (b) shares information more efficiently than an email or chat thread would have. My current team has 15 minute standups with 12-16 people that do both, but if a meeting isn’t doing either it should be jettisoned.
Exactly. Here’s roughly how ours go:
- 5 min starting the meeting - people joining, some company/team announcement, etc
- 5 min reporting plans for the day (really just “working on X, no assistance needed”)
- 5 min discussing any issues from step 2
That’s it, and we’re often done a couple min early.
We do two teams back to back, and since I’m a lead, I usually join both so I’m aware of what’s going on. So 30 min total for two teams, and I’ll sometimes sneak in some other syncs in the extra time between stand-ups to avoid yet another meeting (e.g. discuss a prod bug with QA or discuss a process change with the scrum master). We’re planning on adding a third team to our office soon, and I think we can do it in 10 min per team.
If your process looks significantly different from that, fix it.
An hour long scrum? Fucking shoot me. My team is usually about 15 minutes tops. Anything past that and we table it for parking lot.
You better believe it exists and it ain’t rare either, especially when half of the fucking team is in India and needs their hand held and the only time that can happen is 6am pst in the goddamn morning
We have that struggle, but they have their own scrum team so we don’t have to coordinate schedules and we required that one of their team members be on our time schedule (up to them if they want to relocate to Canada or something). We’ll schedule meetings as needed in their time zone to give direction, but they’re otherwise pretty independent.
That seems to work out pretty well for us. We also have teams in E. Europe, so we have teams in three very different time zones, each with their own scrum teams and whatnot.
God, I wish…
I’m afraid that you lose far more than that just going to and from the bathroom, the coffee machine, or down the hall to your office from whichever door you had to walk into. This is not to say that your calculations are wrong, it’s more a question of whether that is a useful metric.
@ajsadauskas @technology Is also worth noting that the daily scrum should not be about reporting. It should be the team coming together to plan their day.
@BarneyDellar @technology You’re right, it should, in truly autonomous cross-functional teams that have a high degree of delegated decision-making.
But that’s not what tends to happen in many larger, hierarchical organisations.
In those organisations, what can tend to happen is the daily scrum becomes where managers get to micromanage details and staff are expected to report back their progress.
(I’m thinking about one past job in particular, where it was explained to me that: “The scrum is important because it allows our manager to keep track of our progress and set priorities.”)
@ajsadauskas @technology Oh yeah, seen that too! But if you’re daily status update isn’t working for you, maybe you should try having a daily scrum instead :)
And that’s why we don’t let our managers in to the standup. Here’s who we have involved from a leadership perspective:
- architect - usually doesn’t attend
- team lead - there to answer technical questions
- project manager - only if a release is pending
That’s it. We don’t let the director, product team, or VP join, they instead need to communicate through the scrum master and team lead instead. Most of the time, the above people aren’t expected to contribute to the meeting.
It sounds like you need to teach your manager to use your issue tracking solution. That’s where tracking progress happens, stand-up is for identifying issues, pivoting when requirements/priorities change (happens through scrum master), and arranging collaboration between individuals. It’s not for progress tracking.
deleted by creator
The idea of agile is great, and easy to sell at a company in my experience. The problem is that the ideas in the manifesto can only be attained if the business stakeholders feet are in the fire as much as IT. That HAS to have top down support from leaders that understand software. But, in every agile company I’ve ever seen (I was a consultant for 15 years, so I saw a bunch), eventually a project goes south, and the business stakeholders throw tech under the bus by saying: “We’re not in IT. We didn’t know we should be thinking about what we want (and not just waiting until the end to demand more and more and more)!”, and they fucking get away with it. Boomers in senior leadership, who don’t know how to work their car stereo, say “Yea, that makes sense. IT, why do you suck!?”. And then “agile” is dead. Tech learns to cover their ass, and demand clear requirements up front and get signoff.
I’m fortunate that my boomer VP has taken the time to learn and internalize agile. If we ever lose our VP, I’ll probably leave the org because company culture (outside of my dept) is such that our next VP is likely to suck.
As always, it depends on what problem you need to solve. I still think these methodologies are sound as long as you ADHERE TO THE CORE PRINCIPLES.
It’s not about reporting or speed, but rather communication and quality delivered at a sustainable pace. It’s also about collaboration with the user/customer. Management often don’t understand this (or chooses not to).
A stable, mature team should be able to do every-other-daily, but scheduled check-ins are valuable.
@airwhale @technology The issue is that often the core principles of agile fly in the face of how many big companies and organisations work.
Big orgs are often built around hierarchical command-and-control. They’re built on monofunctional teams, processes, and procedures. They’re built on KPIs and reports. They’re built around getting stakeholder approvals ahead of waterfall projects.
So the bits of agile that tend to get picked up and implemented are the kanban boards and daily “scrum” meetings.
And the bits that tend to get left on the cutting room floor are the bits about products being the most important output, the autonomy, the cross-functional teams, the ongoing customer input, etc.
Yes, you are absolutely correct AJ. “Enterprise Agile” is its own beast, and where we usually need to start at higher management levels. Education is important for them to understand their new roles.
Without buy-in and active collaboration towards “real agile” from managers, we will not succeed in moving away from micromanaged waterfall.
@ajsadauskas @technology we’ve customised our agile practice to fit the team. And it has evolved over the years. We usually start new projects using a very traditional approach and evolve it depending on the team, skills, and culture. I think the original principles still hold.
I’m looking at this from the lens of my own org, which I think strikes a decent balance. As a brief intro, I work in an industry where a day of downtime can cost our customers millions, and a bug can also cost millions due to regulatory fines.
Estimates are bottom up, priorities are top down, and daily reports are largely opportunities for short form discussion about changes to requirements, delays, etc. We spend about 15 min/day, M-Th, on stand-up per team. We have six teams spread across Asia, NA, and Europe, so face to face communication is difficult.
With that out of the way, I have some comments, which I hope will lead to good conversation.
Build projects around motivated individuals
I disagree with this, but perhaps I’m misunderstanding. Projects should be built around customer needs, and individuals should be hired/assigned as needed to fill those needs. Individuals should be given leeway to work on projects they’re interested in, but only within the priorities set based on customer needs.
The focus should remain on trusting your employees, but there needs to be frequent communication so problems can be caught and addressed early.
The most efficient and effective method… is face-to-face conversation
Again, I disagree, the most efficient is text, and the most effective depends on the information being conveyed. Stand-up works well face-to-face, but technical review can usually be handled through text, with face-to-face being an outlier.
My rule of thumb is if there’s more than 3 back and forth messages, we probably need a face-to-face discussion. I can handle several text-based conversations simultaneously, while I can only handle one face-to-face convo at once, so most things should be text first with face-to-face being a fallback.
if your organization is driven by processes and procedures
This is a squishy concept since too much or too little process leads to problems. I think the amount of process should be directly linked to the risks associated to violating that process.
For example, here are some processes we have in place:
- deployments to production require approval from key stakeholders - product team, project manager, support team, OPs, and the relevant team lead
- larger projects require approval from architect, product team, and relevant team lead before work begins
- larger code changes (e.g. introduce new core tech, large scale refactor, etc) require informal consensus from other team leads, which includes a period for those teams to review the proposed changes
Each of those is based on risks directly tied to customer needs. A bad deployment can break customer use cases, cause support overhead, etc. Projects starting without approvals can miss requirements, overrun estimates, and delay other important projects. Large code changes without proper communication can delay other projects who have to manage conflicts with the new change.
So the focus should be on keeping processes that provide value and retiring those that don’t. For example, building confidence in automated testing can help ease deployment anxiety and thus loosen deployment processes.
agile tends to just be a hollow buzzword
Agreed.
Also, agile itself isn’t ideal for all projects. We find value, but we’ve made some changes to fit our customers expectations. We release about once/month, and more frequent releases are generally not wanted by our customers.
So we have each team release to prod every 2-3 months, usually combined with another team. Agile prefers more frequent releases (daily if possible), but we’re not really interested in doing more than two in a month.
Anyway, great post! Hopefully people recognize the BS in their organization and push for change.
Working software over comprehensive documentation
I’ve experienced the logical conclusion of this in practice, in a company where the lead dev was then forced to do customer phone support, cause no one else knew how the software actually worked in detail. (This happened in multiple companies btw).
That sounds like taking the guidance to an absurd conclusion. In my org, we have either the product team or support team do acceptance testing, and support team validates the change in production at each release. The documentation isn’t comprehensive, but it is sufficient for all relevant parties to understand how the feature works.
Our documentation consists of:
- original story the developer takes up - must include requirements and designs (if relevant) before work begins, and ideally some additional examples from developers and QA for edge cases
- code-level documentation - comments, commit messages, etc as needed
- user-level documentation - best effort, usually maintained by the product team to help on-board customers
- notes from support - usually common problems and solutions
There’s no comprehensive documentation, but there is sufficient documentation that product team, developers, and support are on the same page. Each team creates whatever documentation they need internally. That means developers don’t waste a ton of time generating screen shots, technical documentation around new functionality, etc, they just create enough to move it along to the next person.
I honestly believe that the people who complain about these aren’t using them properly or work for people who don’t know how to use them properly. People have been using some version of the huddle, standup, or SCRUM meeting for a very long time. Whether it’s useful or wasteful is probably more a question about the people who are using them.
@ajsadauskas @technology as with so many things it depends on the people involved. we have a daily 15-min standup that’s good for raising issues and blockers, asking questions, keeping the team across releases and significant production issues, ensuring that everyone has work for the day, etc. it helps that it’s run very effectively. all of that can be and is done in other channels but it’s a good way to get everyone on the same page together. does it cost money? all meetings cost money. but i would argue that good efficient meetings pay for themselves.
And 15 min is the same as someone messing around on Reddit/Lemmy or whatever at the start of the day instead of getting right to work. It’s a non-issue.
An hour-long meeting though? That is definitely something to scrutinize. 15 min? That’s a coffee break.
@ajsadauskas @technology I use them mostly to gauge whether folks understand what they are doing and if not to start a side bar after the fact to course correct, early in analysis if possible.
My direct teams do work that is partly exploratory into domains they don’t understand so a 15 min check in to see who needs guidance each day saves pain and money.
I would say other teams adjacent to ours have turned theirs into order giving status updates. I’m no longer welcome at those.
@ajsadauskas @technology oh and they all hate me because their tickets ain’t done till I’m satisfied with the documentation
My company goes the opposite way and holds team standup and then a scrum of scrums after with everyone because my manager is fucking brain dead. Fortune 500 btw
Wow… You’d think they’d understand separation of concerns.
I’m a lead dev and I’ve never attended a scrum of scrums. I occasionally attend high level feature planning (POs + project managers), but never scrum of scrums. That nonsense is left to our scrum masters and project managers (I assume, I’ve never been).
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
1, 2 and 4 all together sounds like a recipe for incessant alignment meetings. Especially in organisations where teams are not stable, where people come and go or have multiple projects to take care of. It is just a loss of knowledge and everyone has something different in their minds.
This sounds like a management issue, not a methodology issue.
If your teams aren’t stable, that’s probably because they aren’t feeling satisfied at work. If they’re expected to work on multiple projects, the constant context switching can be really draining and demotivating. I’m guessing you have tons of meetings because that constant churn means people need to be constantly brought up to speed.
Agile can help with that. With Agile, you only care about what happens in the next week or two, and at the end you’ll have completed work on typically one project. Whether you work on project A or B depends on capacity, not whether you’ve worked on it in the past, though preference is certainly given to projects that you are familiar with.
Communication doesn’t need to happen with meetings, it can happen with kanban boards, recorded knowledge transfer sessions, and code-level documentation. You should always approach software dev as if you’ll be pulled from the project at any time and be brought back on after 6 months or more, so make sure to leave notes that you’d like to have when returning to the project. I don’t consider software to be complete if it’s hard to follow and poorly documented.
And change only needs to be communicated to impacted parties. There’s no reason for team B to be notified of a change in team A’s requirements, that communication will wait until the project is delivered (preferably in text form). There’s also no reason for all members of a team to be involved in the change discussion, only those it directly impacts (e.g. I am a BE lead, and I’m often left out of FE discussions between my FE devs and design/product). Syncs between teams only need to happen when something is delivered, and even then can be handled mostly asynchronously through text.
Spot.on. my business has adopted an agile mindset across the entire org, but it’s still waterfall, because IT have so much governance in place and outsourcing contracts that prevent teams from actually working on things in a fluid and agile way. Every member of a squad is on multiple projects, plus our systems are so broad we cannot have a resource from each source system dedicated to a squad.
Secondly, no documentation? We moved from an on-prem Oracle DB to GCP so that we would have one central place for data and across all business units… there was no documentation and we had to spend the next 4 years reverse engineering the data marts because all the IP left the business… it took 4 years because of the previous point.
And because it’s big corporate business, you have to make it work otherwise you lose your big bonus etc etc
And don’t dare question the method
I hate teams that say Agile says “no doco”.
The principle is “Working software over comprehensive documentation… That is, while there is value in the items on the right, we value the items on the left more.”
Agile absolutely needs documentation but it shouldn’t hold up delivering working solutions and shouldn’t be more complicated than necessary.
We don’t want the old-school projects where software was ready but not delivered until a bible of doco was typeset, printed and bound.
We don’t want the old-school projects where software was ready but not delivered until a bible of doco was typeset, printed and bound.
I miss those days. That bible of documentation was usually the means to have the others, i.e. the customer or other teams using your software, be able to do their work in that software. And I feel that by delivering software without extensive documentation you are extending your agile way of working to the customer. When does agile stop and actually deliver every component meant to be delivered?
I think thread OP’s point about documentation is that you shouldn’t have dedicated items/tasks just for documentation. You’ve got to document as you go. I always come back at the end to clean up documentation but once a piece of code is complete and proven to work, I document it. Usually even adding in-line comments as I go.
Each org is different. There are organizations doing agile in a shit way, there are organization that are shit because they don’t do agile and there are some that do OK because they take out of agile just what they need. In my first job they would write all the requirements up front, agree the price, sign a contract and then discover crucial functionality was missing. So they could either deliver useless product and piss off the client or do some extra work for free. It was shit. In my next company everything was nicely divided into sprints but the process was so overgrown working there was super boring and most project didn’t even finish, they just got cancelled somewhere in the middle. My current company mostly lets teams organize themselves and is using agile to monitor progress and react if something gets delayed. It’s mostly fine. Agile is not the problem and it’s not a universal fix. You simply have to be smart about which or it to use and how.
@ajsadauskas @technology
Funny video. He’s apparently doing real CD and his stakeholders know every day what’s going live. I don’t know how he works in detail, but very likely it’s pretty agile. It’s just not by the (scrum) book.
The authors of the agile manifesto were very experienced software craftsfolk and “just” pudlished their common sense. As the guy in the vid does. If devs communicate anyway, e.g. if you have rotating pair programming, you probably don’t need a daily …