429
submitted 5 months ago by ylai@lemmy.ml to c/programming@programming.dev
top 50 comments
sorted by: hot top controversial new old
[-] Aurenkin@sh.itjust.works 112 points 5 months ago* (last edited 5 months ago)

Note that this is failure to deliver on time, not failure to deliver full stop.

I also think a lot of places claim to be agile, but don't follow or understand the principles at all. Another commenter here is the perfect example of that where they say the opposite of what's in the agile manifesto and claim that it's a representation of what it says.

Maybe that's a fundamental problem with agile. It's just a set of loose principles rather than a concrete methodology being pushed for by a company and it has therefore been bastardised by consulting companies and scrum masters claiming to teach the checklist of practices that will make your company agile. Such a checklist does not exist, it's just a set of ideas to keep in mind while you work out the detailed processes or lack thereof that work for you.

For anyone that wants to refresh their memory on the agile manifesto:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

[-] tyler@programming.dev 33 points 5 months ago

Agile was designed for contractors to deliver contract work. It’s a terrible design for any sort of sustainable business plan, hence “working software over comprehensive documentation”. That line right there causes the majority of outages you as a consumer encounter.

[-] atzanteol@sh.itjust.works 35 points 5 months ago

The very first mistake most people make when reading the agile manifesto is that "a over b" means "don't do b".

[-] prof@infosec.pub 12 points 5 months ago

100% that.

Especially that working software over comprehensive documentation part, which can be automated so easily if done right.

There's so much value in TDD and providing a way to do integration and automated UI tests early on in a project, yet none of the companies I've worked at made use of it.

Also automated documentation tools like Swagger are almost criminally underutilised.

load more comments (1 replies)
[-] Aurenkin@sh.itjust.works 26 points 5 months ago

Would you rather have working software or a bunch of documentation? If your software is having outages then by definition it is not working. If documentation is the root cause of that then you should fix that by creating enough documentation to allow your software to continue to work per "working software over comprehensive documentation". Maybe I'm missing something but I don't see the contradiction here.

[-] becausechemistry@lemm.ee 42 points 5 months ago
  1. Hack together a proof of concept
  2. Works well enough that management slaps a “done” sticker on it
  3. Pile of hacks becomes load bearing
  4. One or two dependencies change, the whole thing falls over
  5. Set evenings and weekends on fire to fix it
  6. Management brags about moving fast and breaking things, engineers quit and become cabbage farmers and woodworkers
  7. New graduates are hired, GOTO 1
load more comments (1 replies)
[-] Anticorp@lemmy.world 9 points 5 months ago

If documentation is the root cause of that then you should fix that by creating enough documentation to allow your software to continue to work

Or create a better UI that doesn't require so much documentation.

[-] pivot_root@lemmy.world 11 points 5 months ago* (last edited 5 months ago)

This assumes front-end development.

From a (dev)ops perspective, if I had a vendor hand me a tarball instead of proper documentation, I'd look very far away from their company. It isn't a matter of if shit goes wrong, but when. And when that shit goes wrong, having comprehensive documentation about the architecture and configuration is going to be a lot more useful than having to piece it together yourself in the middle of an outage.

load more comments (1 replies)
load more comments (1 replies)
load more comments (3 replies)
load more comments (4 replies)
[-] snooggums@midwest.social 14 points 5 months ago

The primary problem is using agile all the time instead of when it is actually intended to be used: short term work that needs to be done quickly by a small team that are all on the same page already.

It sucks for any large group that requires a lot of coordination. Some parts of it are still helpful as part of a blended process, like more collaboration with the customer and responding to change, but those can easily derail a project if not everyone is on the same page through scope creep or losing sight of long term goals.

[-] lysdexic@programming.dev 12 points 5 months ago

The primary problem is using agile all the time instead of when it is actually intended to be used: short term work that needs to be done quickly by a small team that are all on the same page already.

I think you got it entirely backwards.

The whole point of Agile is being able to avoid the "big design up front" approach that kills so many projects, and instead go through multiple design and implementation rounds to adapt your work to the end goal based on what lessons you're picking up along the way.

The whole point is improving the ability to deliver within long term projects. Hence the need to iterate and to adapt. None of these issues pose a challenge in short term work.

[-] Aurenkin@sh.itjust.works 7 points 5 months ago

I don't understand what you mean, why would coordinating across a large group be against the agile principles? It sounds like the main issue here is lack of communication and planning which are both important parts of any process including one based on agile.

Planning becomes more important for a larger project but if you hyper focus on sticking to the plan even if things change you can end up delivering something that is not useful for your customers, so I think the principles still make sense there.

load more comments (1 replies)
load more comments (6 replies)
[-] lysdexic@programming.dev 10 points 5 months ago

Note that this is failure to deliver on time, not failure to deliver full stop.

It's also important to note that the Hallmark of non-Agile teams is de-scoping and under-delivering. It's easy to deliver something on time if you switch your delivery goals and remove/half-bake features to technically meet requirements while not meeting requirements.

[-] magic_lobster_party@kbin.run 7 points 5 months ago

That is, while there is value in the items on the right, we value the items on the left more.

This is funnily the part of the manifesto most have trouble understanding.

[-] WhatAmLemmy@lemmy.world 53 points 5 months ago* (last edited 5 months ago)

One standout statistic was that projects with clear requirements documented before development started were 97 percent more likely to succeed. In comparison, one of the four pillars of the Agile Manifesto is "Working Software over Comprehensive Documentation."

Requirements ≠ Documentation. Any project with CLEAR requirements will be most likely to succeed. The hard part is the clear requirements, and not deviating.

One Agile developer criticized the daily stand-up element, describing it to The Register as "a feast of regurgitation."

The inability of management to conduct productive meetings is even more well-known than their inability to conduct a decent hiring process, and we all know how broken that is.

The study's sample and methodology are not linked so I suspect a huge bias, in that the projects succeeding sans-Agile have been successful without it long term, while the Agile projects chose Agile because they were unsuccessful pre-adoption — you don't adopt agile if you were already successfully delivering projects.

[-] Aurenkin@sh.itjust.works 26 points 5 months ago

Yes, and daily standups are not a requirement of agile in any way. The whole point is people over process and adapting to change rather than following a plan so if standups aren't working you should stop doing them rather than following a rigid process!

[-] atzanteol@sh.itjust.works 12 points 5 months ago

💯

Agile is not an excuse to be stupid. If you need documentation then fucking do documentation. If your stand-ups suck then either change them or stop. You don't just do things "because agile".

[-] best_username_ever@sh.itjust.works 7 points 5 months ago

Most companies I've worked for "do agile because agile" and everything revolves around agile. And you can't change this because they decide and they have the money.

load more comments (8 replies)
[-] pixxelkick@lemmy.world 36 points 5 months ago

I've literally never actually seen a self proclaimed "agile" company at all get agile right.

If your developers are on teams that are tied to and own specific projects, that's not agile.

If you involve the clients in the scrum meeting, that's not agile.

If your devs aren't often opening PRs on a variety of different projects all over the place, you very likely aren't agile.

If your devs can't open up a PR in git as the way to perform devops, you aren't agile.

Instead you have most of the time devs rotting away on the sane project forever and everyone on "teams" siloed away from each other with very little criss talk, devops is maintained by like 1-2 ppl by hand, and tonnes of ppl all the time keep getting stuck on specific chunks of domains because "they worked on it so they knpw how it works"

Shortly after the dev burns out because no one can keep working on the same 1 thing endlessly and not slowly come to fucking losthe their job.

Everyone forgets the first core principle if an agile workplace and literally its namesake us devs gotta be allowed to free roam.

Let them take a break and go work on another project or chunk of the domain. Let them go tinker with another problem. Let them pop in to help another group out with something.

A really helpful metric, to be honest, of agile "health" at your company is monitor how many distinct repos devs are opening PRs into per year on average.

A healthy company should often see many devs contributing to numerous projects all over the company per year, not just sitting and slowly be coming welded to the hull of ThatOneProject.

[-] Waldowal@lemmy.world 17 points 5 months ago* (last edited 5 months ago)

I don't disagree with you (on giving devs some creative freedom), but "Agile" as a process methodology isn't about developers working on multiple things to keep their interests up.

load more comments (3 replies)
[-] magic_lobster_party@kbin.run 35 points 5 months ago

It’s more about poor planning vs good planning. Of course a project with good planning is more likely to deliver in time.

It’s just to that poor planners tend to use “agile” as an excuse for their poor planning.

[-] paf0@lemmy.world 10 points 5 months ago

In the days before Agile the Waterfall projects failed too. Though not necessarily for being late, they failed because they didn't deliver the thing that the business thought they were building, they delivered something else due to a misunderstanding. If nothing more, Agile gives more visibility into the process and allows for course correction.

[-] Anticorp@lemmy.world 34 points 5 months ago

According to the study, putting a specification in place before development begins can result in a 50 percent increase in success, and making sure the requirements are accurate to the real-world problem can lead to a 57 percent increase.

Is this not self-evident to most teams? Of course you will not reach your destination if you don't know where you're going.

[-] iamtherealwalrus@lemmy.world 14 points 5 months ago

On all the agile projects I've worked on, the teams have been very reluctant to make a specification in place before starting development. Often claiming that we can't know the requirements up-front, because we're agile.

[-] lysdexic@programming.dev 16 points 5 months ago

On all the agile projects I’ve worked on, the teams have been very reluctant to make a specification in place before starting development.

I don't think this is an Agile thing, at all. I mean, look at what Agile's main trait: multiple iterations with acceptance testing and product&design reviews. At each iteration there is planning. At each planning session you review/create tickets tracking goals and tasks. This makes it abundantly clear that Agile is based in your ability to plan for the long term but break/adapt progress into multiple short-term plans.

[-] pivot_root@lemmy.world 11 points 5 months ago

For your sake, I hope your employment was agile as well. Those jobs sound like they were dumpster fires waiting to happen.

[-] kippinitreal@lemmy.world 9 points 5 months ago* (last edited 5 months ago)

Also seems like a shitty get-outta-jail-free card. With no design in place, timelines and acceptance criteria can't be enforced. "Of course we're done now, we just decided that we're done!"

load more comments (3 replies)
[-] floofloof@lemmy.ca 10 points 5 months ago

On the other hand you can just call wherever you end up the destination, and no one can prove you wrong. 100% success rate.

load more comments (1 replies)
[-] cygon@lemmy.world 29 points 5 months ago* (last edited 5 months ago)

I liked agile as it was practiced in the "Extreme Programming" days.

  • Rather than attempt to design the perfect system from the get-go, you accept that software architecture is a living, moving target that needs to evolve as your understanding of the problem evolves.

  • Rather than stare down a mountain of ill-defined work, you have neat little user stories that can be completed in a few days at most and you just move around some Kanban cards instead of feeding a soul-sucking bureaucratic ticketing, time tracking and monitoring system.

  • Rather than sweat and enter crunch mode for deadlines, the project owners see how many user stories (or story points or perfect hours) the team completes per week and can use a velocity graph / burndown chart to estimate when all work will be completed.

.

But it's just a corporate buzzword now. "We're agile" often enough means "we have no plan, take no responsibility and expect the team to wing it somehow" or "we cargo cult a few agile ideas that feel good to management, like endless meetings with infinite course changes where everyone gives feel-good responses to the managers."

Having a goal, a specification, a release plan, a vision and someone who is responsible and approachable (the "project owner") are all part of the agile manifesto, not something it tries to do away with. I would be sad if agile faces the same fate as the waterfall model back in its time and even sadder if we return to the time-tracking-ticket-system-with-Gantt-chart hell as the default.

Maybe we need a new term or an "agility index" to separate the cases of "incompetent manager uses buzzword to cover up messy planning" from the cases of "project owner with a clearly defined goal creates a low-bureaucracy work environment for his team." :)

[-] 1800doctorb@lemmy.world 24 points 5 months ago

I’m curious what they mean by “failure.” I read the article but didn’t get a clear definition. Isn’t one of the expected outcomes of agile the ability to experiment rapidly and move on when the experiment fails?

So what if you fail 300% more? If you’re able to get 300% more ideas to the stage where you can test their viability, then it’s a success.

load more comments (1 replies)
[-] flathead@lemm.ee 21 points 5 months ago

Agile is LinkedIn religious bollocks. Might as well just pray. Bunch of corporate nonsense.

BUt YoUrE NoT DoINg it RIghT!!1!

Should be reciting the creed in Latin, presumably.

[-] barsquid@lemmy.world 15 points 5 months ago

Every time I see a discussion of agile, there are plenty of comments about how mentally exhausting and useless/wasteful the meetings are. And the defenders can only say, "you're doing meetings wrong!" Maybe if everyone is doing it wrong the process itself is fundamentally flawed and lends itself to misinterpretation.

[-] Semi_Hemi_Demigod@lemmy.world 23 points 5 months ago

I've been in agile projects that worked really well and didn't have soul-sucking, time-wasting meetings. It can be done well, it just isn't most of the time.

[-] Dultas@lemmy.world 9 points 5 months ago

Same, I've been on agile projects with quick efficient meetings most of the time. But I'm a project now with a 45 minute standup every morning for like 15 people. The lead just lets people ramble on and try to solve issues in standup. Backlog grooming and sprint plannings get equally sidetracked as well.

load more comments (3 replies)
[-] flathead@lemm.ee 11 points 5 months ago

Well, you're supposed to refer to them as "rituals". "Meetings" are so waterfall. No wonder it isn't working.

load more comments (3 replies)
load more comments (4 replies)
[-] ICastFist@programming.dev 20 points 5 months ago

With 65 percent of projects adopting Agile practices failing to be delivered on time

They're not "failing to deliver", they're being Agile in disappointing everyone involved!

Projects where engineers felt they had the freedom to discuss and address problems were 87 percent more likely to succeed.

Which shouldn't surprise anyone, but I know some managers, directors and users loathe the idea of the people who'll do the actual job having any say other than "yes, sir".

In highlighting the need to understand the requirements before development begins, the research charts a path between Agile purists and Waterfall advocates.

Good documentation is critical and process-agnostic. If people can read and understand it, it's good. It's something that can be used as a shield and weapon against users/higher ups who want too much, it can create a trail of responsibility.

[-] filister@lemmy.world 19 points 5 months ago

Not to mention that this Agile methodology is burning out people pretty fast. It puts a lot of pressure on developers.

[-] lysdexic@programming.dev 30 points 5 months ago

I've been working with Agile for years and I worked with people who burned out, but there was not even a single case where Agile contributed to burning out, directly or indirectly. In fact, Agile contributed to unload pressure off developers and prevent people from overworking and burning out.

The main factors in burning out we're always time ranges from the enforcement of unrealistic schedules and poor managerial/team culture. It's not Agile's fault that your manager wants a feature out in half the time while looming dismissals over your head.

It's not Agile's fault that stack ranking developers results in hostile team environments where team members don't help out people and even go as far as putting roadblocks elsewhere so that they aren't the ones in the critical path. Agile explicitly provides the tools to make each one of these burnout-inducing scenarios as non-issues.

[-] best_username_ever@sh.itjust.works 12 points 5 months ago

It’s not Agile’s fault

that managers want to stay in control of everything, and they decide whether they do it or not.

It's like real communism: it's perfect but it's not possible to implement in our universe.

load more comments (2 replies)
load more comments (7 replies)
[-] match@pawb.social 19 points 5 months ago

Fail fast baybee

[-] Squibbles@lemmy.ca 18 points 5 months ago

I just hate how companies cling to agile like it's some kind of cult. Like a company I know gave all the employees very nice swag embroidered with a big "agile development" slogan on it like your development methodology is supposed to be a source of pride or something. Of course like most companies they don't really follow agile practice very much except where they can use it as an excuse to skimp on requirements and such.

[-] Dirk@lemmy.ml 16 points 5 months ago

Agile software development bases on four core values (paraphrased to make them more drastic but not change them in their meaning):

  • Proper tools are not important
  • Documentation is irrelevant
  • Don’t have a contract to adhere to
  • Do not follow any plans

I am not surprised that this fails miserably.

[-] Windex007@lemmy.world 27 points 5 months ago* (last edited 5 months ago)

I'll rephrase them, except in good faith:

  1. Talking directly to the people about the work is better than a 95 state JIRA pipeline

  2. Document your finished working work, not every broken POC, because that's a waste of time

  3. If the contract isn't actually going to meet the desires of your stakeholders, negotiate one that will

  4. If you realize the plan sucks, make a better plan.

My company paid to have Kent Beck come to workshop with our Sr devs. I expected to dislike him, but he won me over pretty quick.

I don't remember what it was, but someone was like "Kent, we do X like you recommend in the manifesto, but it creates Y, and Z problem for us"

And he was like "So, in your situation it isn't providing value?"

Guy was like "No"

"Then stop doing it."

It's not hard. It's the most fucking common sense shit. I feel bad for them because these guys came from a world where there were these process bibles that people were following. So they wrote like, basically a letter saying "if your Bible doesn't serve you, don't follow it"

And all these businesses dummies were like "oh look, a NEW bible we can mindlessly follow"

[-] best_username_ever@sh.itjust.works 8 points 5 months ago* (last edited 5 months ago)

It assumes that: devs can and have the right to talk to the final user, devs can negotiate anything, and devs can make plans. Where I've used agile, the whole circus was taken hostage by the managers and there was nothing you could do about it.

You'll tell me it's not real agile, but it's like real communism, I've never seen it.

load more comments (1 replies)
load more comments (1 replies)
[-] audiomodder 20 points 5 months ago

I’ve worked on supposed “Agile” teams that operate this way, and worked on an Agile team that actually work ridiculously well. The biggest issue with Agile isn’t the philosophy, it’s when management starts using it to cut costs. This comment is what it turns into. Notice that every single one of these points lower cost. But one of the main assumptions of Agile is that the workers control the work, managers support the workers. The places I’ve been where Agile didn’t work it was because management was unwilling to buy into this basic assumption, then use Agile as a crutch for not giving the team what they needed to be successful.

The one successful team I was on that was Agile, the entire group of around 12 worked directly with the customer, and our manager’s role was to ask “what do you need”. It was hands down the best dev role I was ever in (before I became a teacher).

[-] natecox@programming.dev 12 points 5 months ago

This just in: intentionally misrepresenting something has a 100% chance of it being misrepresented.

Let’s try again:

  • proper tools are important, but not as important as the people using them
  • documentation is important, but not as important as the software functioning correctly
  • working with the customer to accomplish their needs is more important than adhering to the letter of a contract
  • plans are important, but dogmatically applying them above the spirit of their intent is harmful
[-] skoberlink@lemmy.world 12 points 5 months ago* (last edited 5 months ago)

I understand the frustration; almost nowhere does agile "right". However, this is a gross misrepresentation of the philosophy.

Specifically it leaves out and ignores this very important part:

That is, while there is value in the items on the right, we value the items on the left more.

As seen on agilemanifesto.org

The base philosophy is meant to remind us what we are here to do: make software (or whatever project we're working on), not become dogmatic about processes or tools or get bogged down in peripheral documentation.

load more comments (2 replies)
[-] marcos@lemmy.world 15 points 5 months ago

Hum... That implies that at least 30% of some subclass of projects are successful.

load more comments (2 replies)
[-] Theharpyeagle@lemmy.world 13 points 5 months ago* (last edited 5 months ago)

Honestly a little confused by the hatred of agile. As anything that is heavily maligned or exalted in tech, it's a tool that may or may not work for your team and project. Personally I like agile, or at least the version of it that I've been exposed to. No days or weeks of design meetings, just "hey we want this feature" and it's in an item and ready to go. I also find effort points to be one of the more fair ways to gauge dev performance.

Projects where engineers felt they had the freedom to discuss and address problems were 87 percent more likely to succeed.

I'm not really sure how this relates to agile. A good team listens to the concerns of its members regardless of what strategy they use.

A neverending stream of patches indicates that quality might not be what it once was, and code turning up in an unfinished or ill-considered state have all been attributed to Agile practices.

Again, not sure how shipping with bugs is an agile issue. My understanding of "fail fast" is "try out individual features to quickly see if they work instead of including them in a large update", not "release features as fast as possible even if they're poorly tested and full of bugs." Our team got itself into a "quality crisis" while using agile, but we got back out of it with the same system. It was way more about improving QA practices than the strategy itself.

The article kinda hand waves the fact that the study was not only commissioned by Engprax, but published by the author of the book "Impact Engineering," conveniently available on Engprax's site. Not to say this necessarily invalidates the study, or that agile hasn't had its fair share of cash grabs, but it makes me doubt the objectivity of the research. Granted, Ali seems like he's no hack when it comes to engineering.

load more comments (2 replies)
load more comments
view more: next ›
this post was submitted on 05 Jun 2024
429 points (100.0% liked)

Programming

17424 readers
40 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS