this post was submitted on 10 Dec 2023
85 points (93.8% liked)

Technology

34920 readers
189 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

you are viewing a single comment's thread
view the rest of the comments

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.