this post was submitted on 10 Dec 2023
86 points (93.9% liked)

Technology

34987 readers
406 users here now

This is the official technology community of Lemmy.ml for all news related to creation and use of technology, and to facilitate civil, meaningful discussion around it.


Ask in DM before posting product reviews or ads. All such posts otherwise are subject to removal.


Rules:

1: All Lemmy rules apply

2: Do not post low effort posts

3: NEVER post naziped*gore stuff

4: Always post article URLs or their archived version URLs as sources, NOT screenshots. Help the blind users.

5: personal rants of Big Tech CEOs like Elon Musk are unwelcome (does not include posts about their companies affecting wide range of people)

6: no advertisement posts unless verified as legitimate and non-exploitative/non-consumerist

7: crypto related posts, unless essential, are disallowed

founded 5 years ago
MODERATORS
 

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/

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. 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.)

#agile @technology #technology #scrum #tech #Dev

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 39 points 11 months ago (3 children)

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.

[–] [email protected] 52 points 11 months ago (3 children)

If your scrum is an hour long, you arent doing it right. They should be 10-12 minutes tops.

[–] [email protected] 26 points 11 months ago

I call those emails.

[–] [email protected] 11 points 11 months ago (1 children)

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

[–] [email protected] 7 points 11 months ago (5 children)

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.

[–] [email protected] 7 points 11 months ago (1 children)

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.

[–] [email protected] 3 points 11 months ago

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.

[–] [email protected] 5 points 11 months ago (1 children)

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.

[–] [email protected] 1 points 11 months ago (1 children)

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.

[–] [email protected] 2 points 11 months ago

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.

[–] [email protected] 4 points 11 months ago (14 children)

@Zaktor

@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.

load more comments (14 replies)
[–] [email protected] 2 points 11 months ago

The goal of the sprint meeting is very straightforward:

  1. Everyone gets informed what everyone else got done yesterday, so they know where people are at
  2. Everyone gets informed what everyone else is doing today, same reason as above.
  3. 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
  4. 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.

[–] [email protected] 2 points 11 months ago

@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.

[–] [email protected] 9 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 17 points 11 months ago (2 children)

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.

[–] [email protected] 2 points 11 months ago

God, I wish...

[–] [email protected] 2 points 11 months ago (1 children)

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

[–] [email protected] 1 points 11 months ago

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.

[–] [email protected] 5 points 11 months ago

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.

[–] [email protected] 20 points 11 months ago (1 children)

@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.

[–] [email protected] 11 points 11 months ago* (last edited 11 months ago) (2 children)

@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.")

[–] [email protected] 6 points 11 months ago

@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 :)

[–] [email protected] 1 points 11 months ago (1 children)

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.

load more comments (1 replies)
[–] [email protected] 14 points 11 months ago (1 children)

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.

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

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.

[–] [email protected] 7 points 11 months ago

@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.

[–] [email protected] 7 points 11 months ago (1 children)

@ajsadauskas @technology

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.

[–] [email protected] 7 points 11 months ago (1 children)

@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.

[–] [email protected] 3 points 11 months ago

@ajsadauskas @technology

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.

[–] [email protected] 6 points 11 months ago

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.

[–] [email protected] 5 points 11 months ago

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.

[–] [email protected] 5 points 11 months ago (1 children)

@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.

load more comments (1 replies)
[–] [email protected] 4 points 11 months ago (1 children)

@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.

[–] [email protected] 2 points 11 months ago

@ajsadauskas @technology oh and they all hate me because their tickets ain’t done till I’m satisfied with the documentation

[–] [email protected] 3 points 11 months ago (1 children)

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

load more comments (1 replies)
[–] [email protected] 2 points 11 months ago (1 children)
  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. 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.

[–] [email protected] 1 points 11 months ago

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.

[–] [email protected] 2 points 11 months ago (1 children)

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

[–] [email protected] 8 points 11 months ago (2 children)

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.

[–] [email protected] 3 points 11 months ago

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?

[–] [email protected] 3 points 11 months ago

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.

[–] [email protected] 1 points 11 months ago

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.

[–] [email protected] 1 points 11 months ago

@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 ...

load more comments
view more: next ›