- cross-posted to:
- programming
- programming
- hackernews
- cross-posted to:
- programming
- programming
- hackernews
In highlighting the need to understand the requirements before development begins, the research charts a path between Agile purists and Waterfall advocates. ®
Random trademark symbol. What’s the registered trademark here? The dot? “advocates”?
Its just the symbol The Register uses at the end of an article. Like how some papers use a filled in square.
Agile went through the mgmt human centipede and now it’s an unrecognizable broken system built on conflated ideas. I bet a good number of those projects are ‘agilefall’ anyways.
We prefer the term “wagile”.
I liked frAGILE
Normal development: measure twice, cut once. Agile development: measure once, cut twice.
Shockedpikachu.jpg when things fall apart.
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.
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.
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.
How did they know how to break things down into tasks? How did they know if a task would fit in a sprint? 😄
We’re so agile the sprint became a time-block framework rather than a lock-down of tickets that we certainly will finish. (In part because stuff comes up within sprint.)
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.
For your sake, I hope your employment was agile as well. Those jobs sound like they were dumpster fires waiting to happen.
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!”
That’s boneheaded.
On the other hand you can just call wherever you end up the destination, and no one can prove you wrong. 100% success rate.
Congratulations you’ve just been promoted to product manager
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.
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.
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.
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.
Similar, except we only budget for half an hour so as it drags on past the first or sometimes even second hour it takes over lunchtime.
Even when people avoid trying to say anything so as not to drag it out, the mere fact that the meeting is happening means that it will manage to take up the whole block of time and then some.
Ironically I’m starting to wonder if the solution might be MORE rather than fewer meetings, bc people need SOME time to work it all out, so if there were other more focused ones then all that could go there rather than have to take place in the only meeting it can - where it takes up the time of the entire team.
One common thread between these projects was that we used actual, physical note cards to track things. They were also logged in Jira, but the standups were 5-10 people actually standing in a room tracking burn down and status with cards taped to a wall. Nobody wants to be standing for more than 15 minutes, and anything that needed a sidebar was handled with a smaller group in another impromptu meeting.
I agree, in my experience in person stand-ups are much better than online.
- People don’t want to sand around and want to get back to their desk.
- Parking lot discussions can just be handled in the hall outside the meeting room 90% of the time and don’t require adding a new meeting to a calendar, although if there is only one issue that needs further discussion we just usually let everyone else drop call and handle it then.
Maybe if everyone is doing it wrong the process itself is fundamentally flawed and lends itself to misinterpretation.
Like Communism.
Just like saying AI will solve all your problems even if you misuse. It’s just like a pattern big companies use to mask when they’re talking out of their asses.
Well, you’re supposed to refer to them as “rituals”. “Meetings” are so waterfall. No wonder it isn’t working.
Maybe if we mix in another metaphor, Agile will work.
Great idea! Let’s huddle with the Coach at the retrospective.
I prefer séance
Is it really that unlikely that companies that jumped into the agile hype train do it wrong?
Removed by mod
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.
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.
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.
Aa someone who has misspent a budget before - you’re making it sound like a lot more people in the company care about the topic than what’s happening in real life.
I organize some events in our office every now and then. For example, one of them is a sort of competition/race/quiz/whatever - completely optional, but I get about 75% of the office to join, which in my experience - that’s huge, nobody joins any type of other events in such magnitude, usual rates are at 30-40%. The big bosses approve it because “morale” and “team building”. The people like it because it’s actually fun. So I get a budget to spend on this event, and we use it to buy “prizes” for literally everyone participating. Which means they’re shitty prizes, but hey, it’s not about winning first place, it’s about making some jokes at the bosses’ expense, on company time.
The way the process works is: all my bosses already know how this money is spent, and they approve. But because I need the money, it has to go through finance. And they involve marketing/PR guys. And these guys insist on having the fucking logo on everything. At the end of the day everyone is going home with several items (backpack, external battery, pen, umbrella, Swiss army knife etc) with the company logo on them, which is goddamn ridiculous. It’s actually one of the reasons I always refuse to receive items, even if the budget includes the organizers - because I really hate the branding aspect.
But all that aside - you see the aftermath of this event and you’ll draw the conclusion that we just spent the day in a corporate culture workshop, when in fact we were answering silly questions and getting imaginary points the entire day, but there’s ONE guy in ONE department who can’t let things slide. So… Idk man. Take it with a grain of salt next time. The agile dudes probably did it to get away from other things for a few hours, and they got the budget to also give something back to the coworkers. But not everyone really cares about agile, they’re just going through the motions.
Oh boy I hate the branding. I’ve gotten some really nice swag this way but I can’t use them because they’re so obnoxiously branded. I’m not going to the beach for example with a Dickhead Company stamped large on the beach towel, or going out of the house with it on the umbrella. Pens, battery are ok.
Oh yeah, I feel that. I got a nice beach towel with my company’s name on it some years ago, of course I couldn’t take it to the beach, I’d feel silly. But on the other hand - nobody sees it if I use it in the shower. Man, that company name has touched my dick&balls so many times I’m thinking I should marry it at this point.
I always try to make them put the branding in shitty places. For the umbrella I got them to print it on the classy wooden handle, instead of the fabric, exactly where you’d hold the thing. That way it’s still usable, you just need to hold your hand over the brand name. And on some other shit like wireless earbuds & smaller objects, the guys doing the printing can sometimes provide smaller velvety satchels to put the objects in, kind of like a gift bag, and I can usually print on those. Then you’re just left with the plain unbranded object when you inevitably throw away the satchel.
Not to mention that this Agile methodology is burning out people pretty fast. It puts a lot of pressure on developers.
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.
This is why you should always visualise and multiply by 4 when people ask for an estimate. If someone gives me a ticket that’s expected to take me 1 day I’ll let them know it’s very likely not going to be done in 1 day but rather 4 which I’ll finish comfortably in 3.
Ranking devs is toxic though
“Never tell them how long it will really take! How else will people see you as a miracle worker?” - Scotty
Underpromise overdeliver
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.
that managers want to stay in control of everything, and they decide whether they do it or not.
That’s fine, it’s a call from the manager.
That doesn’t make it Agile’s fault though. In fact, one of the key principles of Agile is providing developers with the support they need. Blaming Agile for the manager single-handledly pushing for something in spite of any feedback does not have any basis.
I have a cure for all cancers. Except that bodies refuse to use its molecules, but it still cures cancer in theory. That’s how agile have always been used around me.
Agile wants to empower devs, but managers do not want this.
It’s not Agile’s fault
Yes, yes it is. You don’t judge a system by some ideal that can’t be achieved. If it’s a system meant for humans you judge it based on what it does to said humans.
If agile makes managers more insufferable, then maybe it’s not a good tool for the problem at hand, working in companies with managers.
Agile is not a system. It’s a set of principles, set by the Agile manifesto.
The Agile manifesto boils down to a set of priorities that aren’t even set as absolutes.
I strongly recommend you read upon Agile before blaming things you don’t like on things you don’t understand .
true, scotsman
Right off the bat i read
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.”
You need clearly defined requirements to write a good user story. Documentation comes after.
However, while the Agile Manifesto might have its problems, those stem more from its implementation rather than the principles themselves. “We don’t need a test team because we’re Agile” is a cost-saving abdication of responsibility.
Precisely, once once have i worked in a company where agile was properly implemented and, yes, user stories were well documented and discussed before being developed. All others are just waterfall in disguise, or Fragile™.
However, while the Agile Manifesto might have its problems, those stem more from its implementation rather than the principles themselves. “We don’t need a test team because we’re Agile” is a cost-saving abdication of responsibility.
Projects that allow for clear requirements before really starting on them are clearly more likely to succeeded than ones that have a higher complexity due to unknowns.
You need clearly defined requirements to write a good user story.
This is the main reason the last company I worked for lacked in project delivery. They had just transitioned to Agile, and their whole teams lacked proper Agile experience and the training provided was very superficial. They barely put any time in refining the requirements and this trickled down to developers.
Should I remove my Agile experience from my resume?
Time to replace it with AI experience! /sarcasm… Mostly
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.
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.
That’s actually a pretty important part of its original premise.
It’s a big part of why scrum meetings were a thing, as the expectation was any curious dev could just join in to see what’s up, if they like.
Not tying devs down to 1 specific thing is like the cornerstone of agile, and over many years of marketing and corporate bastardization, everyone had completely forgotten that was literally the point.
The whole point of the process was to address 2 things:
-
That client requirements can’t easily be 100% covered day one (But you still need to get as many as you can!)
-
To avoid silo’ing and tying devs down to specific things, and running into the one bus rule (“how fucked would this project be if <dev> got hit by a bus?”)
And the prime solution posited is to approach your internal projects the same way open source works. Keep it open and available to the whole company, any dev can check it out, chime in if they’re familiar with a challenge, etc.
One big issue often noted in non-agile companies (aka almost all of them) is that a dev slent ages hacking away at an issue with little success, only to find out far too late someone else in the company already has solved that one before.
An actually agile approach should be way more open and free range. Devs should be constantly encouraged to cross pollinate info, tips, help each other, post about their issues, etc. There should be first class supported communication channels for asking for help and tips company wide.
If your company doesn’t even have a “ask for help on (common topic)” channel for peeps to imfoshare, you are soooooooo far away from being agile yet.
I don’t know man. Nothing in the Agile Manifesto talks about not focusing on one project.
In addition, I think most people (and studies) would agree that “focus” is key to building almost anything of quality. Not flittering about working on shiny pennies of the day. I mean, a key tenant of sprints is “Don’t interrupt the sprint”. The whole concept is about letting developers focus.
Agree to disagree I guess.
Might wanna read it again, it’s right there :)
The best architectures, requirements, and designs emerge from self-organizing teams.
It’s an incredibly critical part companies love to completely ignore.
If you assign devs to teams and lock em down, you’ve violated a core principle
And it’s a key role in being able to achieve these two:
Agile processes promote sustainable development.
And
The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
This is talked about at length by the likes of Fowler, who talk about how locking devs down us a super fast way to kill sustainable development. It burns devs out fast as hell.
Note that it’s careful not to say on the same project
-
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.
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).
This has been my experience of agile in multiple workplaces.
eXtreme Go Horse Methodology
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
I’ll rephrase them, except in good faith:
-
Talking directly to the people about the work is better than a 95 state JIRA pipeline
-
Document your finished working work, not every broken POC, because that’s a waste of time
-
If the contract isn’t actually going to meet the desires of your stakeholders, negotiate one that will
-
If you realize the plan sucks, make a better plan.
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.
I mean, I’ve never seen a real platypus but I’m not going to use that as a justification for why they can’t exist.
I don’t know what to tell you. It’s a spectrum. I’ve worked in shops that claimed to be agile but to them, that just meant JIRA and story points. I’ve worked at places where agile meant having daily standups.
And I’ve worked places where there actually was a genuine attempt, and that was an awesome place to work.
Agile development reminds me of the Life of Brian.
He’s giving sensible and well meaning life advice but all the people want is to follow the gourd.
-
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 bogger down in peripheral documentation.
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.
Exactly. Agile is basically guaranteed to deliver something.
The real question is how fit-for-purpose is the resulting product.