Live data from Hacker News

Why do some developers consider Agile development to be nonsense?

agileoverflow.com

91–100 of 147 posts

Re: Why do some developers consider Agile development to be nonsense?

#91

The free e-meter at every desk is a valuable job perk! The Kool-Aid tasted a bit funny, though. Scrum-English Dictionary: * "sprint": artificial crisis * "end of sprint": abandonware * "Scrum master": resume credit for my planned escape to a new company * "stakeholder": someone you can't get away with externalising your costs onto * "simplified": doesn't implement any of the actual business requirements * "lightweigh…

The first and last definitions I find are very accurate. Do more! (Retrospective, velocity, stand-up.)

Re: Why do some developers consider Agile development to be nonsense?

#92

Earlier quoted context omitted.

"When actually estimating tasks, it's purely point based" The problem is that project managers and other business units don't give two flying shits about points. They want to know when things will be done. PM: "So, how long will it take you to have that new logging system implemented?" Developer: "It's a five point feature." PM: "So....two days, then?" D: "Well, I dunno...it's five points." PM: "Two days it is!" [put…

'PM' - well, there's a problem. We don't have project managers. Product -owners-, yes. But you have a point; a lot of places try to 'be agile', as something the devs do, without also including management. As a number of others in this thread even indicate. Management has to also change, or else there's a mismatch in expectations. As a dev doing SCRUM, we report point totals, and allow the business unit to prioritize…

Fine, "product owner" or "scrum master" or "person who schedules meetings and fiddles with the JIRA board". Whatever. I don't care what piece of jargon you want to substitute in.

Let me ask you this: why should any customer or business unit give a flying fuck about your "points"?

Customers and business units should have a strong voice in prioritization of tasks, yes. However, in the process of prioritization, an estimate of time for the task--be it your estimation or theirs--will be a factor. If all you tell them is a number of points, then guess what? They'll back into their own time estimations from your points.

Re: Why do some developers consider Agile development to be nonsense?

#94
Pretty spot on, I think.

The most problematic part of SCRUM (and the first thing to start killing productivity) are the interminable meetings it facilitates. The SCRUM master is constantly trying to gauge scope on this or that feature, and everyone feels like they need to bring up what they've been working on during the standup in order to feel like they're not appearing to be slacking off.

I've abandoned SCRUM in favor for a Kanban approach that puts the onus on the Product Owner to manage and estimate scope and deadlines, thereby leaving us developers alone to focus on our work.

I've written more about my approach here: https://medium.com/@glenelkins/agile-is-good-for-managers-bu...

Re: Why do some developers consider Agile development to be nonsense?

#95
post #91

The free e-meter at every desk is a valuable job perk! The Kool-Aid tasted a bit funny, though. Scrum-English Dictionary: * "sprint": artificial crisis * "end of sprint": abandonware * "Scrum master": resume credit for my planned escape to a new company * "stakeholder": someone you can't get away with externalising your costs onto * "simplified": doesn't implement any of the actual business requirements * "lightweigh…

The first and last definitions I find are very accurate. Do more! (Retrospective, velocity, stand-up.)

:-D Done, also "stakeholder". What's the proper Scrum jargon for "maybe bong hits will fix my makefile"?

Re: Why do some developers consider Agile development to be nonsense?

#96

The micromanagement - if management doesn't trust you to get on with work without having to justify what you've done every single day, why did they bother hiring you in the first place?

People aren't perfect. It's easy to get distracted, get off track, think that you'd be able to get back on track if only you could get your head down for a couple of days, and suddenly two weeks have passed, you're miles behind, and the people waiting for your work are all thrown off track because it's not there yet. Spending 15 minutes per day making sure that everyone knows how the team is doing strikes me as a ver…

I think that standups are one of the best parts of Agile, if they are time boxed and moderated well ('let's take this [larger issue] offline' should be heard fairly often). Super easy to implement, and very helpful. I've only worked with small teams (less than 8 folks), but I don't think it'd scale well.

Re: Why do some developers consider Agile development to be nonsense?

#97

Earlier quoted context omitted.

Taking on a new development process in the middle of a project is much harder than starting on a new one. In particular, as you mentioned there's an issue of legacy bugs. There's mounds of information available suggesting strategies for taking care of this, but ultimately you'll be in an unfortunate transition while you're still handling legacy bugs that makes it hard to move forward. Most of my experience with agile…

> The thing is, people are actually really good at relative estimation, it's absolute estimation that we completely suck at. That's the idea behind estimating in points: you free yourself from trying to think "how long will this take me?", which you'll inevitably get wrong, to "is this harder or easier than this other thing" which almost always is pretty easy to do. That sounds great on paper. However, every implemen…

You're right, eventually you have to convert points to some notion of time, if only so that you know how much work you can do in a sprint. The idea is that you make that conversion based on past observation, using a velocity estimate that represents the past performance of the team and takes into account who's on vacation this week.

There also should be an open recognition that your actual velocity will vary somewhat between sprints. One goal is to reduce that variability by improving your estimation (with practice!), but you anticipate and prepare for the variability. That's why you have a backlog (in case you need more work) and why you develop units of work that are independent (in case you need to push one).

For all these reasons it's a mistake to think of an equivalence at the level of tasks such as one day is three points or something like that.

Re: Why do some developers consider Agile development to be nonsense?

#98
post #29

Earlier quoted context omitted.

The classic success cases for Scrum were projects that had (a) been done before, and (b) been done by the same team. So they had lots of experience. If you ask an assembly-line worker "How long is it going to take you to install this transmission?" they'll be able to tell you within a few seconds. But that's not engineering. If you ask someone who's written essentially the same app five or six times before "How long…

If you ask someone, "How long is it going to take you to finish designing and implementing that gozzlewog?" they won't have the foggiest idea. That's technically true but not useful. There are much better questions to ask, namely: - Will gozzlewog or foofaraw take longer to implement? - Is the difference minor or is it an order of magnitude? - Will shipping gozzlewog or foofaraw make a bigger impact on the business?…

Can't tell if serious or not.

If a gozzlewog is something you haven't done before (and maybe nobody has done it) then you have much less data to go on. Coming up with an estimate for it can be really, really hard. Want to decompose it and estimate from there? Hey, you just fell into the trap.

I wish I had a dollar for every time I've heard someone say "That turned out to be harder than I thought." And this is nearly always the case when you're doing something new. So you hem and haw and pad and you're late anyway . . .

But my stand is that you're actually not late, you're actually on time and it's just that the estimate you made (or that someone made for you) sucked. You don't even suck at estimating because you can't reliably estimate something you haven't done before.

Oh sure, small things. But not big things. Probably not even medium-size things.

Imagine you're in a scrum planning session and someone says, "Hey, we tagged you for implementing Gozzlewogs" and you have absolutely no idea what a gozzlewog is, or maybe you read about them a while back so you're the person that people come to when they hear "gozzlewog." But you're on the hook for it, and they want an estimate and the answer of "I don't know" apparently isn't on the table.

So do you:

- Dig in your heels and say "I don't know" anyway?

- Lie and say "Two weeks" because half of the dev team is in your shoes and doing the same thing, and you'll all slip together? Besides, next sprint it'll be the same bullshit, except with frumwidgets in addition to the deep, complicated and tricky stuff you discovered while investigating gozzlewogs.

Now, clearly this is broken, and it's not even the fault of Agile, but rather the middle management that thinks developers are fungible and cog-shaped, and that everything can be decomposed and predicted, and that you can have a schedule with a granularity of days when your known unknowns are at the scale of multiple weeks.

Re: Why do some developers consider Agile development to be nonsense?

#99

Earlier quoted context omitted.

Bug fixes, R&D, and real feature development are the entirety of what we do . If none of those fit into sprints, what is the point of having them? What is the benefit of describing a feature as an epic sliced into stories spanning sprints, instead of just, y'know, getting it done?

No, they do fit into sprints, quite nicely. Time boxing gives you a deadline and accountability. Using research and development as an example, you go off, spend months researching a new search algorithm, only to come back to hear the customer tell your approach was wrong in restrospect. The sprint mechanism catches that sooner, preferably at the end of a single sprint, then months down the line. It's fail early fail…

> Time boxing gives you a deadline and accountability

An arbitrary deadline, often forcing you to interrupt your flow and then spend extra time next sprint reorienting yourself to pick up the same task again. And artificial accountability. (Did Alice overrun her time-box because she was lazy? Or because the bug was really tricky? Nobody knows! Is Bob a rockstar, or is he just really good at plausibly over-sizing small tasks? Perhaps!)

> you go off, spend months researching a new search algorithm, only to come back to hear the customer tell your approach was wrong in restrospect

That's kind of strawmanny. In no methodology should someone be allowed to wander around for months with zero feedback.

In "traditional" process the PM is in communication with the customer and keeps enough of a handle on where things stand to be able to pull the brakes when necessary. Agile seems to want to offload that work either into some vague diffusion-of-responsibility within the team, or to the customer herself (which seems bizarrely idealistic) or, most commonly AFAICT, to a de facto PM under another name.

> so the customers can decided if what you're doing it worthwhile

I have literally never met a customer who didn't want everything right now. A good traditional PM is able to manage those customer expectations. Few developers I've met have those skills or want to be spending their time doing that.

Re: Why do some developers consider Agile development to be nonsense?

#100
post #65

Earlier quoted context omitted.

Taking on a new development process in the middle of a project is much harder than starting on a new one. In particular, as you mentioned there's an issue of legacy bugs. There's mounds of information available suggesting strategies for taking care of this, but ultimately you'll be in an unfortunate transition while you're still handling legacy bugs that makes it hard to move forward. Most of my experience with agile…

Legacy bugs? What the hell are legacy bugs?! What about, you know, normal bugs. Normal, unforeseen problems that happen all the time that you can't account for. Do you just add 25% time to any project to cover for those? I'm not sure how that solves the issue when you have to slice everything up into tiny chunks, where a few chunks could contain all of the unknown unknowns. It's good to realize the known unknowns, bu…

Legacy bugs are those in the codebase from before the team started working with a test first, no bugs mantra.

As I alluded to there are many approaches to this problem, but one that I like is more or less just what you suggest: set aside some amount of time every sprint to tackle the legacy codebase. The eventual goal is to bring it up to the newly accepted standard which requires tests, but realistically that will take a while. Live bugs provide a sort of direction to help facilitate updating the legacy codebase. Setting aside a set amount of time each sprint makes sure that the issues don't get swept aside.

It's important to get to the point where fixing live bugs isn't impeding the development of new features, but until then it's simply pragmatic to set aside some amount of time to hedge against new issues, while also having the discipline to set one aside if it can wait until the next sprint.

As an aside, some of the best patterns on the subject of dealing with legacy systems can be found in the later chapters of Domain Driven Design by Eric Evans, particularly chapter 14, Maintaining Model Integrity.

Post reply on HN