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.)
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
@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.”)
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
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.
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).
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.
@ajsadauskas @technology So, it took 20 years until someone dared to express these simple facts in public.
This comments speaks to me. From day one you could see the problems with agile and my gods, if you dared to push back you were ‘not cooperating with the team’ and other BS like that.
I have yet to see an agile/scrum way of working that does not devolve in waterfall within 5 nano seconds. Funniest was the IT team that needed to support about 10 other teams (developers). Good luck in getting agile with that while diving into a tunnel where 10 teams start pulling your resources on the fly. The IT team was on the end (they tried like 5 times to enforce agile on us) absolved from using agile as the complete project would come to a stand still in a day if we followed the agile principle.
@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 …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.