HACKER Q&A
📣 andyxor

Do you think Agile/Scrum is beneficial for software delivery?


what are the pros and cons of sprints and daily standups in your experience

Coming from old school 'non-agile' financial world focused on bottom line I was in a bit of a shock learning about this daily standup ritual.

Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress.

Do these extra bureaucracy layers, meetings, checkmarks and vague "man-points" estimates actually bring any value.


  👤 zeroc8 Accepted Answer ✓
I just don't get it why developers like Scrum. The whole thing was designed to give non-technical people more power over the ones who spent a lifetime honing their craftmanship. Standing around a table in the morning like assholes is not my idea of fun. Same for the "product owner" concept. If I develop something, I am the owner. I generally hate being micromanaged and being assigned microtasks that gives "them" total control over my workday while I have no idea what "they" are doing the whole day. Scrum was the reason why I left my last company and I'm much happier now in my new company, where we do not have any process at all, just a common goal. Instead of standups, the team gathers for a coffee in the morning. If I want to spend 3 days learning a new framework that might do the product good, nobody cares. The only thing that counts is the endresult. That means we are beating the product into submission until its good, even if it means rewriting the thing three times and missing deadlines. So no more Scrum for me. Never.

👤 odshoifsdhfs
I think you need to separate Agile from Scrum to be honest.

Agile is at is core just some suggestions for teams to work well together. There are no stand ups or sprints or whatever.

Scrum was created by one of the creators of the agile manifesto as a way to see consulting/training around the 'Agile' idea (timeframes may differ a bit, but they were linked). There is an interview/article by one of the creators of the agile manifesto (Kent Beck maybe?, will try to dig it up and edit the answer if I find -> was Robert C. Martin, see below) where he explains a bit the story and compares it to Agile (and basically says scrum has nothing to do with the original agile manifesto)

On a personal level, I hate scrum. The stand ups, the sprints, the retros or grooming or whatever they have nowadays. It is literally one of the first questions I ask in an interview about their processes and excuse myself from the process if I see if they follow it. It may work for others, but for me personally, I hate it with a fervour.

Though I agree with the Agile manifesto though, unfortunately it isn't very 'manager' friendly so you usually get scrum instead.

Edit: link to a reference to the article, can't find the original but found this: https://www.aaron-gray.com/a-criticism-of-scrum/#scrum-strai...


👤 cashewchoo
I've never felt like a stand-up with your manager-type-person present is ever net helpful. Stand-ups just implicitly become "what did you do yesterday that justified 10% of your biweekly paycheck" at some level, and people end up talking to the manager rather than to each other.

I'm sure some super special orgs out there can counteract this with their incredible non-toxic culture and such. Most cannot. Ones that explicitly think they can almost certainly actually cannot.

If it's solely the IC's, I think that's where it can be good. People feel a lot more free to not say anything if they don't have any blockers and don't need to put anything to the team. It's much easier to get in-and-out and have a high-bandwidth discussion.

I've felt the most comfortable where we sat down once a week for an hour, went over the last week, and thought about the next. And we had an open-door policy (not literally/physically of course) if you ever needed to discuss blockers or put things to the team. "Standups" happened naturally, about once or twice as week, where people would accrete into a standup in the middle of our pod discussing something that was so interesting/relevant that it naturally drew us out of our offices.

Maybe that was just the only time where we finally had the team and the process mesh on a natural level, and it doesn't prescribe this as "the way to do it" for anyone else. But damn did it work for us, for at least two years, before the org changed enough that our team didn't really exist as the same team anymore.

One thing I have never enjoyed was the "the big boss wants this project done ASAP, have standups every day to make sure it gets done as fast as possible". That and everything related to it was awful.


👤 talkingtab
You need to understand the mechanism and purpose behind agile. If you don't, then it is just a cargo cult thing. Software development, and product development is one of the hardest things to do right now. You need many independent people working together with "deep unplanned collaboration". How do you do that?

I'm old and I worked at Ingres when they decided to write a new release and everyone went off and worked on it for a year. It was right on schedule. Then they got together to release the product and found that each team had developed a component that failed completely to interoperate with any other components. Have you ever heard of Ingres?

The key to their failure was that they never put the pieces together.

So agile is a bunch of techniques to let people work together on exceedingly complex projects. Calling it agile is indeed just marketing. It is basically a messaging bus. The idea is that those Ingres people could have had some meetings to talk about how their components worked and things would have been better. Maybe not great, but better.

And if those people understood that their goal was to give others insight into how they were doing things, that would have been even better.

But think about this - what if from the very first day they just ran the whole project with all the components? Even if all the functionality was stubbed out, at least they would know that it worked together. We do that now, or we should - continuous integration or whatever.

I knew a person who was a great person and great programmer who had worked in the industry for eight years. And not once had the product they worked been used by another person. Think of all that waste.

So yeah, ignore scrum and agile and all that if you have something better. Its not a religion, its just one way of working together. :-)


👤 danabrams
What’s so funny to me is what you’re describing is the nightmare that’s become scrum as opposed to actual agility. Agile is about ditching managers, bureaucracy, and estimates in favor of empowering the team itself.

Agility is just what it says: a philosophy of flexibility and adaptiveness.

Heirarchies, heavy processes, etc are by definition inflexible. They are not agile. You do not do agile. You are agile. You are agile because your company has a culture that is agile and you cannot achieve that unless the company is structured to be flexible.

I think actual agility is really, really a great way to build software efficiently... but unfortunately most programmers will only experience the cargo cult forced upon them by certified scrum masters... and this is just as bad, perhaps worse, than old fashioned waterfall.

More than anything, working in an agile environment is a very pleasant thing to do from a human standpoint. But most companies are incapable of the kind of equality and empowerment necessary to achieve agility, so they will force the terrible cargo cult version upon us.


👤 kissgyorgy
A lot of people misunderstand it, but what agile says is basically that "you should talk to each other more often" and "you should make smaller steps". So it's a YES from me.

If you never seen this, you should read this ASAP: https://agilemanifesto.org/

Because that's all there is to know about Agile. Obviously it takes a bit more time to really grasp how can you translate that to lines of code or building a deployment pipeline or shipping features, but if you understand these couple of lines, you already know enough about agile development.


👤 bern4444
I hate the term sprints. The idea is good but the term is horribly inaccurate. Sprint makes it seem like its a quick dash to the finish line and then its over. But the work is never over. One sprint ends and the next one starts immediately after. Work is not a sprint, its a marathon.

Sprints conceptually make sense. We have 3 features we want to develop. Lets aim to complete them in the next 2-3 weeks. I like them so long as the goals are extremly well defined and managed. Too many teams though forget the agile aspect of agile development. If there's a change to the priorities, its often poorly communicated or just added to the sprint without removing anything.

Daily Standups, as practiced by most teams, are a waste of time. They become status updates for the Project Manager or Team Leader.

What would be better is for engineers to use the time to review ideas, issues that have cropped up and ask questions about the codebase or specific issues. This is probably what a standup is supposed to be but when its mixed in with the context of status updates, it always takes a back seat.

Pointing is a complete waste of time. I have no idea how long a ticket is going to take until I start working on it. Estimations are usually wrong anyway. If anything, tickets should be pointed once the work is complete to track a teams acutal performance and velocity (output).

Having the team review tickets for the next sprint (sprint planning) is useful for inital discovery (so long as it doesn't involve pointing). One person on your team might know how to solve a bug ticket or know if a feature ticket is deceptively difficult. That discovery process can be extremely valuable.

Overall agile ideas I think do help more than they hurt but not always and not by much.


👤 corytheboyd
I’m a little less zealous in my dislike of it. It’s not that the process itself is “bad”, the ideals behind it make sense. In practice (my own experience) it easily degrades into what I call “fake work”— you feel like you’re doing lots of productive measurement and estimation by drawing nice little boxes around projects, but projects rarely ever work this way. The one thing I see constantly is moving on to the next project because we checked off all the agile boxes, without giving much care to maintenance. There is always maintenance work, and it’s very easy to turn a blind eye to.

Something I consider maintenance work is refactoring of systems as new projects are planned/implemented. Everyone knows it’s a bad idea to just bolt on more and more “feature” work without thinking systemically, then we all point at “systemic” issues in retrospective meetings.

Again though, I’m not losing any sleep over this it’s just an observation from 9 years of experience as a web developer working for mostly SV tech companies large and small. It won’t be everyone’s experience, and in general the best advice I can give is try to come up with solutions using your own experience and opinions over those people implicitly/explicitly tell you to follow because they are “good”.


👤 j4yav
I was a big believer 15 years ago, then became heavily disillusioned, and now have a pretty pragmatic view of it. It can help, if you don't know what you're doing at all it's a good framework to start. I feel like the Kanban approach where the team takes ownership of their process is a good one. There's a lot of great stuff in there about communicating as a team, and thinking about the customer.

Too often though in practice it devolves into a kind of cargo cult and the apologists lean way too hard into the "if it isn't working, you must not have believed in it hard enough" defense which is a bit too easy in my opinion. It short circuits any actual reflection and learning.

Basically, the agile manifesto is great.. the stuff agile coaches try to sell you is hot garbage. Everything else is somewhere in the middle, but Kanban is the closest because it preserves the "we are uncovering" part of the manifesto.


👤 gautamdivgi
If you think agile/scrum is bureaucratic try this thing called "SAFe".

But in all seriousness - scrum as it is practiced today is not beneficial. It's mostly used for "accountability" rather than the "collaborative/communication" mechanism that it was supposed to be. Add into that situations where product/program management questions every little estimation decision (e.g. do you really need those system guarantees? can we leave automated testing out of the MVP to reduce story points).

Agile has been corporatized (if such a word exists) and is no longer "agile".


👤 psahgal
The process isn't a silver bullet. I've worked on scrum agile projects for 5 years at a consultancy, for a variety of projects and clients, so I've seen it work and I've seen it not work.

Scrum agile works when...

- People keep standup updates short and sweet, so standups take 15 minutes or less.

- Your team has a single product owner who speaks to customers and is empowered to make decisions.

- Team members invest time and energy into backlog grooming/refinement, ensuring stories are thorough and have good requirements.

- The team retros regularly to address issues.

- The team communicates often outside of the regular ceremonies, so that meetings stay focused.

Scrum works poorly when...

- Standups turn into 30 minute to 1 hour "status" meetings where everyone brings up every question they have.

- The product owner isn't empowered to make decisions, or your team has multiple product owners who decide by committee.

- Team members are disengaged or not even consulted during backlog refinement, and stories are missing critical requirements that you have to deal with in the middle of the sprint.

- Retros get cut because "there's not enough time".

- Nobody talks outside of the regular ceremonies, so meetings drag on forever.

Scrum agile doesn't work for every organization and every project. Sometimes company culture is too hard to change. Sometimes the work you're doing can't really be done in an agile way. Sometimes the organizational structure makes it hard for a scrum team to work without consulting multiple layers of bureaucracy. (That's my project right now, and it is NOT fun.) When that happens, you have to either relax the rules of scrum (being careful to avoid the pitfalls I mentioned above), or adopt a different process altogether.


👤 giulianob
Definitely my biggest gripe is story points + estimations. It's just completely flawed. We should be thinking more probabilistic (i.e. there's an 80% chance we'll get this done in 2 weeks). We should be doing that by running actual models on past work rather than gut feelings.

If you want to listen to a couple of guys I used to work with who really know what they are talking about, check out this series: https://www.youtube.com/channel/UC758reHaPAeEixmCjWIbsOA/vid...


👤 jVinc
> Besides being a dream for micromanagers

I really don't get how people come to this conclusion about scrum. The alternative to scrum is the Project manager dictator regime, the literal micromanagers dream, where the pm can at any time jump by your desk and say "drop everything you are doing, and do this thing for me right now", and where the estimates are just whatever the PM decides to communicate, but when you fail to deliver a fully functional product in the 2 months the PM pulled out of thin air, it's somehow your fault.

In Scrum, the PO should be prevented from micromanaging, since he's not telling anyone what to do. There's a product backlog which the PO can prioritize sure, but that's the level of interaction. The team pulls work into the iteration backlog, so nothing should be picked up that the team doesn't agree to do. And each individual team member picks tasks from the iteration backlog, so nothing should be forced upon you. As for the daily stand-ups there should be no management in that meeting, it's a 15 minut maximum meeting between only those who have items in the spring back-log, which most often should not include the PO. If it's turning into a day-by-day status meeting you need your Scrum Master to step in. The board and iteration deliveries should be enough status to go by.


👤 jerome-jh
Daily standup could be a good idea if it was strictly bounded in time (15 min) and planned about noon when productivity usually drops and it is less likely to disrupt everyone's work.

As for sprints: for a few months I have been in a team where there are strictly applied. There is so much time lost: basically the sprint is either too short or too long. After a few "failed" sprints time estimations will become very conservative giving a lot of slack. Personally I am not comfortable with so much slack, it undermines my motivation.

In my experience anyway, as pressure increases sprints are less strictly enforced, for the sake of efficiency. Also approaching delivery the software has become quite complex and bugs tend to be complex has well, hard to estimate precisely. The fact that sprints do not hold under pressure is an indication they are not suitable for SW development.

There is also much time lost in the 2-3 days preparing for the next sprint, because we just cannot spend full days on meetings, for both human and material reasons. Those days are only "half worked".


👤 superbcarrot
The topic is kind of broad but to focus on standups, I have a couple of firm beliefs:

- Standups don't need to be daily - it's too much. Twice a week is okay (this can be adjusted depending on team/product dynamics).

- They shouldn't consist of everyone telling everyone else what they're working on. This practice is boring and useless to anyone who is present. (If you want to check what I'm working on, log into the issue tracking system and look at the tickets against my name.) Instead, standups should focus on pieces of work that need to be delivered or that need to change status.


👤 spamizbad
While its goal is to "empower" developers to build usable things quickly, Agile/Scrum is often used by management to give themselves insight into development progress. And because its not a "fixed" process and is inherently malleable, the way it gets implemented is usually to serve management first and developers second.

A perfect example of this is the misuse of things like story points. It's supposed to be a reference as to how complicated a task is to complete. Ideally, over time, management gets a sense of how many "story points" a team can complete in a sprint. In practice however, development teams basically get brow-beat into treating story points as shorthand for how long they think something will take. So for example, something that involves a bunch of basic drudgery that has no real impact on the system gets scored high. Whereas some minor change deep in the bowels of the system that breaks a cascade of tests and causes massive regressions gets scored low because hey its only 5 lines of code!


👤 patmcc
If "Agile" results in extra layers of bureaucracy and more meetings, that's a great sign that agile is being done terribly wrong. Which, to be fair, is very very common.

Remember the manifesto:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan


👤 eyelidlessness
Agile: maybe, depends on definition and execution

Scrum: nope

Daily standups: awesome, do them, if it works for you and your team. Don't let anyone fool you into doing something called one that isn't. Actually stand up (if you're able). Actually demand everyone (who's able) does too. The end of the discussion is when someone's uncomfortable. If that cuts the discussion too short, tailor future ones to accommodate them. Repeat until unnecessary.

Real agile (and real things that are actually used in agile) are not micromanageable, they're the antithesis. I highly recommend a read/refresher on the actual Agile Manifesto. All of the things described here that sound nasty are just what agile was challenging, in agile clothing.

Edit: oh how did I miss my favorite target?

Sprints: definitely not for me. They're the Trojan Horse that lets all the fake agile stuff in. I prefer Kanban, but whatever flexible, adaptive, communicative system your team chooses go for it.


👤 rickspencer3
I manage managers and managers of managers, so have years of seeing this play out over dozens of teams. At this point, I prefer my engineering teams to "locally optimize" their process. I tell them that I care about the following 4 things: 1. There is a clear way for stakeholders to provide you with their requirements and discuss them. 2. There is a clear decision made about what is going to be worked on. 3. There is a way to check on progress without asking individual engineers. 4. After work is complete, stakeholders get clear communication about what actually happened.

I strongly suggest that they accomplish this by using "sprints", because then it means that they only have to manage the communication before and after sprints instead of ongoing. I also have never seen my #3 really done well because getting developers to keep issues up to date has always been difficult.

Almost every team ends up doing daily stand ups, and when they don't it is usually because of timezone issues, so they find a substitute. This seems to be something that many engineers fall into as a habit to help keep each other unblocked.

The one thing that is problematic for my approach is predictability. If teams don't have an inherent value of completing sprint goals, then work carries over from sprint to sprint, and stakeholders can't predict when things are going to be delivered.


👤 hn_asker
Before you judge it, I implore you to ask whether your organization is actually doing Agile/Scrum correctly. I doubt most orgs are and I suspect most negative opinions come from doing it incorrectly/ineffectively. I think the core principles of agile are well-intended. It's the desired state we want to achieve. However, most of us are still trying to reconcile with our current state.

There are many pitfalls. For example, giving product owner and even manager roles to the lead engineer or architect, daily standups devolving into telling people what ticket number they have in progress as opposed to blockers they are seeing or actually working on, product owners not showing up to backlog grooming sessions leaving engineering to make their own priorities, product managers being the engineering manager and leading retrospectives making everyone biased to say what went well but not things to improve on, agile release trains having teams that don't really interact with each other leaving engineering teams tuned out during system level PI planning and demos. The list goes on.

The current state of an org implementing agile/scrum can easily lead to what David Graeber calls Bull*hit jobs: https://www.youtube.com/watch?v=kikzjTfos0s. The onus is on the organization's leaders to take everyone to the desired state. However, all too often the actual leaders of an organization are the engineers themselves and would much rather get work done than to micromanage.


👤 meheleventyone
Agile the stuff in the manifesto is pretty much spot on.

Agile the stuff people make you do in work is often pretty anti-thetical.

Scrum as a process is basically poison.


👤 ChrisMarshallNY
I have not had good luck with organized agile. I like the manifesto, and the pedigree of its authors. I just have been unable to be satisfied with its actual implementation. Probably my fault (or my company’s).

Nowadays, because folks don’t like to work with older devs, I’m forced to work alone. Although this limits the scope of what I can do, it has allowed me free rein to formalize a manner of programming that has very good results.

I call it “Evolutionary Development”[0]-[2]. It requires a great deal of experience (not intelligence or education). Thankfully, that’s a resource I have in abundance.

[0] https://littlegreenviper.com/miscellany/evolutionary-design-...

[1] https://littlegreenviper.com/miscellany/forensic-design-docu...

[2] https://littlegreenviper.com/various/concrete-galoshes/


👤 unethical_ban
I like the idea of Kanban and 3x weekly standups/status.

VS

Sprints and daily standups.

---

Daily standups are too often, not enough updates, and it feels more like pressure than utility for the engineers.

Sprints, while helping keep multiple teams working on a single "epic" or "feature" in sync, also feel like an arbitrary slice of time vs. letting people work on things at the pace they are comfortable at. Finish early? Careful taking new work in, it will look bad to bring new things into the sprint and not finish.

Take an extra day on a story due to some complications? That's fine if it's middle of sprint. But rollover into new sprint? Oh gosh, what will that do to our sprint report?

Time estimations, maintaining backlogs of work and prioritizing, and documenting work done are all great. But some of it has too much ritual to it.


👤 Osiris
I've used both Scrum and Kanban. Kanban, for me, is by far the superior method. There are no artificial sprint deadlines, no ticket sizing, far fewer ceremonies, gives a lot of flexibility, but still provides enough structure to place emphasis on tracking and completing work.

If you've never worked in a Kanban environment, I highly suggest you research it and encourage your employer to experiment with it.


👤 hooby
It can be beneficial if done right - but most places just don't do it right at all.

I've even seen officially certified scrum masters using it in ways that go completely against the ideas that are behind it.

The main idea of Scrum is, to empower the entire team to decide on their own processes through finding consensus, and to get rid of annoyances that slow things down.

If Scrum itself becomes that annoyance that slows you down - then according to Scrum you absolutely need to get rid of it.

All the different parts of scrum should be considered an all-you-can-eat buffet. You are not supposed to eat all of it - you are supposed to just pick out the things you like the most.

The only core principle is to regularly meet up and discuss how to improve things. That cycle between two such discussions is typically called "sprint" - and that meetup where you discuss improvements is typically called "retrospective". Nothing else about scrum is a requirement. It's just a list of things that worked for some other teams - doesn't mean it will work for you.


👤 mathgladiator
Fundamentally, it's about discipline. The problem is that people don't know how to balance.

Management needs tools to detect (1) slippage, (2) true cost, (3) emerging issues.

Engineers need to not silo, work together, make progress, and share status.

Amazon would do it at 11am, and it would last no more than 10 minutes for a small team. Every two weeks, management and engineers get in a room to holistically determine where things are at, and then they go and report status up.

What I would tell teams that I bootstrap is that the process itself doesn't matter, but the team needs a shared discipline to be effective. Their team has desired outcomes and everyone needs to be accountable for making progress.


👤 mattzito
I've always been a fan of a light agile process - every few weeks you sit down and come up with a target for the subsequent interval - 2 weeks is a good start, shouldn't be more than 6-8 weeks. Within that, you define what you want to work on - could be a particular milestone within the project. Could also be user stories, doesn't really matter as long as everyone has a good sense of what the next milestone is.

Then you check in as a group on a weekly, or maybe twice-weekly basis, with an explicit goal of identifying risks and uncertainties that have arisen during that timeframe.

The goal here is not to micromanage, but to give a sense of progress towards a goal - whether a metric shift, a release, a roadmap commitment, etc. If you don't hit your interval milestones a few intervals in a row, your high-level thinking about timing is wrong, and you need to adapt the project or the timing.


👤 jayturley
From my experience as a scrum master, if there is any micro-managing going on, it's being done wrong. The standup should literally be no more than a minute per person. Each person gets 2-3 sentences: "I did this yesterday. Today I'm working on this. I could use some help with X. (if applicable)"

It's meant to help keep the team aligned on what everyone is doing at a higher level, not for any details at all. After the standup, the team can address any requests for help that came up as needed. But that falls outside of the standup.

Agile is meant to help empower teams and improve their velocity, and that requires people to own their own stuff. So the standup should be a purely informative, high-level overview of where the team is so everyone is aligned. If it's anything more, it will become a cumbersome, painful exercise in micro-management and tangential discussions.


👤 kevin_nisbet
In my experience with old companies adopting agile, is I equate it to a company wants to evolve it's culture, but in doing so they start doing what they think the companies they want to emulate do to succeed. I'd equate it to doing a cargo cult.

Doesn't mean there isn't value to companies that have succeeded with it, or created a value culture around this coordination. But my experience was a bunch of people sitting around talking about what color paper should be used for a particular work item on the sticky board, which I struggle to see the value of.


👤 UK-Al05
Compared to what? My experiance of traditional project managment is we used to have milestones, write daily progress reports, requirement anaysis meetings with BA's etc

In my mind scrum has less bureaucracy than that.

Scrum Meetings are best used as a way to come together as a team to work how to make progress today.

For example:

I want to deploy this change to prod today, but one of the tests is failing and I don't know why. Ok lets get a couple of people to mob on the test to figure out whats going on after scrum etc

That's a good scrum meeting.

Bad scrum meeting. Person 1: I did x yesterday. Person 2: I did x yesterday etc Person 3: I tried to get x done yesterday, but I got stuck i'll try again today.

No value whatsoever.

The emphasis should be on problem solving as a team, and focusing the team on pain points to get work across the finish line.

To that end i find "walking the board" far more valuable, than status updates from each memeber.


👤 pc86
Calling out my potential bias[es] up front: I am a former certified scrum master. I let it expire intentionally. I don't necessarily dislike Agile/scrum but I think it has a lot of weaknesses that aren't addressed, and it gets applied as a panacea in instances that might be better served with waterfall or some hybrid.

> Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress.

Agile is one of those things that seems like a dream for micromanagers, and if the extent of your company's Agile implementation is saying that you "do Agile" then yeah it's going to be a nightmare. But Agile teams are supposed to be largely self-organized and self-managing. I don't want to No True Scotsman this but if you're doing Agile right there's very little room for some external micromanager to impose their will upon you, but there's certainly room for one to crop up internally.

An old coworker used to say that Agile was created by someone who was sexually attracted to meetings. We don't do a lot of them, or we do them with a subset (on our team of ~11 including the manager and analysts, backlog grooming is 2-3 people for example).


👤 choeger
I think scrum is a tool for middle management that invented ceremony to give their role "meaning". At the same time it allows them to avoid the difficult questions of product management (e.g. "is this really an orthogonal feature or does it interfere somewhere?") It also tends to be awfully childish sometimes (this management style was allegedly invented by pedagogists).

Regardless, several techniques are actually worthwhile: Retrospectives for things that happen regularly (they aren't useful for things that happen very seldom). Daily standup as a sync for developers that collaborate the same task.


👤 jbothma
It works well when the team take ownership of the process and treat it as tricks for forcing the sorts of communication that needs to happen but usually doesn't just happen.

Estimation? It's about communication. Standups? Communication. Grooming? It's communication. Retrospectives? Communication.

All the bits are intended to foster communicating different issues that ought to be discussed.


👤 dgellow
I personally find the cycle of planning => sprint => retrospective to be great for teamwork, but scrum in itself is not really something I would care about. Pick the concepts you like and forget about the rest, there is no need for the full package. For example doing some estimation work during planning to be sure that tasks are clear and simple enough (in the sense of “low complexities”) for everybody in the team is great. But you don’t need to actually assign a “complexity value” or whatever as they create confusion and false expectations.

What works for my teams in the past was to just pick a process then regularly ask ourselves if it’s slowing us down or is missing something, and change it slightly when necessary. You may need a few weeks to get used to a working routine that works for everyone, and it’s likely that will evolve over time depending on the people and projects. Better to keep processes to a minimum and make it easy to change it in cases something doesn’t work.


👤 speedy1034
I literally lost my last job because I dislike the scrum methodologies and said I haven't ever seen it working good. The team was a mess, the manager a micro-manager claiming empowering people.. I get the idea but I've never seen it working productively.

Dailies are the most stupid invention ever. Even if its just 15 minutes, its either blocks your "agilitiy" if its on a time-slot that you prefer not to work, or it steals almost an hour because you get out of the tunnel, wait for the meeting, have to get into working mode again.


👤 dec0dedab0de
Sprints are nonsense unless they have gaps bewtween them, noone can sprint indefinitely

Standups are good for small teams all working on the same thing, and only if no managers are present. Unless the manager is writing code too .

Kanban seems ok but i havent used it for any period of time.

The various tools are nice for remembering what needs to be done and making shared checklists.


👤 nialv7
I don't understand. The impression I got from this thread is that the sentiment towards Scrum is mostly negative.

So why is Scrum so prominent in the software industry today? My guess it that, although bad, Scrum is not bad enough to actually completely destroy the productive of a team. Developers are still able to produce output despite the process. OTOH, mid-level managers are able to use Scrum to produce numbers/metrics to make the upper level happy, get promoted, move onto other companies, and make Scrum spread.

Is my view somewhat accurate? Is there anything we as developers can do to help improve our work environment? In the end, are we powerless against the wrath of the management?


👤 rramadass
Agile/Scrum in limited doses to aspects of Software Development is basically common sense. Applying it mechanically to the entire Product/Project Development life cycle is dumb.

The "Agile Manifesto" is just well known platitudes.

Agile!: The Good, the Hype and the Ugly by Bertrand Meyer is a must read.

Summary: https://medium.com/@knL/i-just-read-agile-the-good-the-hype-...

Webcast: https://www.youtube.com/watch?v=ffkIQrq-m34


👤 keithb-
Honestly, what is the purpose of this post? Is HN really the place for clickbait? You would get the same reaction with something like "Do you think functional programming is beneficial for software delivery?" or "Do you think Christopher Alexander was a mediocre architect who just happened to be a mediocre computer scientist?" Please tell me that the person behind this is harvesting the names from this Op-Ed comment thread to build a feedbag for their mech turk. I can't wait to get my exclusive offer for all-natural, water-based, non-toxic lube.

👤 mkl95
Besides being a micromanager's dream, the whole concept of "blockers" in agile/scrum is just a way for companies to blame developers for the company's lack of resources and poor strategy (i.e. the team is too small for the amount and complexity of tasks, so there is no time to properly define and break down tasks, focus is on quantity/output instead of things actually working, management encourages a lone wolf mentality, etc.).

If you don't care about delivering broken software and having high engineer turnover, scrum is just fine.


👤 tanseydavid
The definition is just too loose and what we seem to wind up with in many cases is a Cargo Cult version of Agile/Scrum.

As an example, I have never had a PM/Team practice Agile/Scrum in a manner where the total amount of Work-in-Progress is something that gets paid attention to.

In my opinion this is a very serious error.


👤 nicbou
I've always seen it like a religion. The message is good, but some priests lose sight of it and focus too much on the ceremonies. When that fails, and the promise fails to manifest itself, they blame people for not following not following the ceremonies with sufficient zeal.

Yet if you look at the original scriptures, you don't find any ceremonies, just a message, and it's more like a guideline than a rule.

I like the message, but I don't like religious enforcement of the ceremonies. Some work, some don't. It depends on your team.


👤 Nihilartikel
My biggest irritations with Scrum center around point assignment and the 'emergent architecture' on green-field projects.

In those areas, I think that simply following the Scrum ritual is not necessarily harmful, however it is almost surely _not enough_. At least one person needs to have read through the scattered stories, built a mental model of the project's function, and have enough experience to start forming a notion of how things will work given the resources available. Better yet, if everyone has done that and can collaborate on a sketch of the architecture. Without this, all of the points poker is just Ouija board voodoo for the non-tech stake holders because nobody could possibly know how much effort it will be to build that 'Implement a button to do-complicated-reporting-process' down in the backlog.

However, I have witnessed several teams where conversation around architecture and data model simply doesn't happen. On sprint one, everyone gets some stories, and goes off to do their thing. What you get is a minimally-coherent-to-satisfy-the-story data model and massive duplication of effort and code.

That problem should be taken care of with story grooming and the regular, deliberate, refactoring and tech-debt pay down but I don't see that happen very often in practice. Everyone is in too much of a hurry to stop and say 'wait, this code is demonstrably garbage and we're doing it wrong'. They just build around the weird, wrong, or inefficient parts and get their stories finished.


👤 subprotocol
I'm an IC and can't stand scrum. However I regularly work with teams that are steeped in it. It's not really an issue because I always choose my level of participation when working with one of the scrum teams.

If I think the level of process and granularity is overbearing I say "no thanks" and pull the "Individuals and interactions over process and tools". If there is one thing that I wish I would have learned earlier in my career is that it's really ok to say "no thanks".


👤 hc-taway
"Agile" and related are terrible more often than not, in my experience, but they can be very good. I've seen a lot of different pathologies in them, but one quick diagnostic tool I'd suggest:

Can the team decide they don't need dedicated standups, and stop doing them until they decide they want them again?

If not—if management mandates them, if some single in-charge person (who may or may not also do some programming on the team) would, all on their own, be able to veto that change even if every single other person didn't want them, and even if offered alternatives to suit whatever needs they actually have, or if you'd feel uncomfortable even bringing it up even after you're pretty familiar with everyone there, or if you're not even sure when such a discussion might occur ("pretty much any time" is the best answer, but "during a retro, and only then" is... OK) then very probably the agile you're in is bad.

If that's something that could, plausibly, happen, then there's a decent chance it's the good kind.

One way to get a sense of this if you're new (even during an interview) at a place that actually claims to "do agile" and has done it for any length of time, would be to ask what they've changed about their process since starting. "Nothing", especially if accompanied by seeming baffled by the question, is such a bad sign I'm tempted to name it as sufficient evidence per se for a "run far away, very fast" reaction. Citing deliberate abandonment of or modification to any major agile "ritual", arrived at only after initially trying it the normal way and not just because some manager said to change it, but because the team wanted to, is a very good sign, though just because they haven't done that isn't necessarily bad. The point is: is agile a straight-jacket for the team, or just another tool to use as they like.

There are lots of other bad signs one might see (multiple teams in a standup, standups becoming perform-for-the-manager prove-you-did-work describe-every-little-detail-of-your-"struggles" garbage-micro-management-meetings ruining every single work-day, et c.) but that's an easy one that can be checked for even in the absence of other obvious problems.


👤 InvOfSmallC
First of all: one thing is Agile, another thing is Scrum. Scrum is for people that need to be introduced with clear steps to Agile. Imho the best way to do Agile is Kanban but you need mature teams.

In my experience only one company of the six I worked for was doing real Agile. Really short stories, the entire team (inclusing devs) talking to the customer, meetings reduced to a minimum, xp practices all over the place. High value produced, happy customers.

What I noticed about it was that: - every single member of the team believed in it, so no protests - management believed in IT and paid for both agile and xp coaches - hiring was being done right, hr on the first call already clarified what we expected so zero false positives in the hiring phase, new hirings didn't need convincing - slow hiring. The majority of devs hates agile, scrum, pair programming, testing and talking to customers

I left after 5 years to try something new, I still don't find something as good as what I described above.

I then worked for both startups and corp but when they do it, they do it wrong: focused on the process and not on the outcome. People were told "scrum is mandatory because we are doing the digital transformation" or whatever. No measures of the outcome.

Anyway, I firmly believe in Agile, I saw it working in a product company that made billions.

Unfortunately the movement got polluted with consultants that need to sell their service so I personally think you need to get lucky to find a proper place to do it.


👤 pulse7
I was working on a few projects where SCRUM was used. All those projects - with only one exception - were screwed. On one project Daily Standups were always more than an hour (of the most valuable and most productive morning time) where we/they would talk mostly about topics I wasn't involved in. Reviews were 3 to 5 hours every second week... On another project estimates were in "story points" and projects manager had to "recalculate" them into man-days in order to be able to communicate with customers... And so on... Not a help for developers and for customers either... But on my current project - it is working! It is lightweight (most standups are finished in 5 minutes, Sprint Reviews are mostly finished in 30 to 75 minutes every third week), Sprint Plannings are short because we have regular Groomings (twice a week). Sprint Retro is also short (30 minutes). Groomings may be time consuming, but they are needed in order to understand what needs to be done in details. We estimate in man-days and break all tasks larger than 8 or 12 man-days into smaller one. Everybody must be able to pickup any task. If one finished his work, he must take the task with highest priority from the list (for current sprint). Sprints are 3 weeks long. I have to say this is the first time it is working for me as a developer. And business ("non-technical") people are satisfied, because they have much more insight into development and understand better how everything works. All new wishes and requests flow into Backlog and are prioritized and then groomed and estimated. So we spend in average weekly 30 minutes for ALL standups and 3 hours for grooming (which is actually part of planning). It is VERY lightweight and I like it the first time in my life. We are doing it in this way for 2 years now and nobody has any plans to change it.

👤 danielrhodes
They do bring value, but that value can greatly depend on how it’s implemented and what your team does. Personally I have found agile to be great the closer you are to the customer.

Agile at its core is about a few things: committing as a team to work (shared accountability), creating reasonable expectations of what can actually be delivered (as opposed to how much the boss wants to get done), creating a cadence of delivery that is aligned with value to the business, and continuous improvement (through metrics and retros). It’s not perfect, but an agile process run well creates consistency, which over the long run is very important.

Scrum is a way to force communication, create awareness, and adjust prioritization. A lot of people think this is a waste of time, but a high performing team requires excellent communication and this is one way to achieve that. If your team is not getting value out of it, that might mean people are too silo’d.

Having said all this, it’s all about how the team works together. These processes are meant to focus a team on delivering business value. If a team uses another process and performs well, there’s no reason to be dogmatic.


👤 ggregoire
> what are the pros and cons of sprints

From the company's POV, being able to change the development priorities every 2 weeks based on the new business priorities.

From the team/developer's POV, I personally feel like it gives me more freedom (I get to choose the tasks I want to work on, obviously in the limit of the sprint backlog) and a good ratio between work variety (I have the opportunity to work on something different every 2 weeks) and work stability/visibility (once the sprint planning is done, the sprint backlog normally won't change for 2 weeks).

> what are the pros and cons of daily standups

Ensure that everyone in the team is on the same boat. Encourage communication between developers<->developers and developers<->product manager.

I often read on HN that daily standups is micromanagement, but I've never felt it that way (in 10 years of doing agile/scrum in different companies, from the developer's POV as well as from the manager's POV). I guess it can vary from company to company and team to team tho.


👤 mytailorisrich
The daily stand-up is about communication and fostering quick information sharing and quick problem resolution.

That's also the reason they advocate that ideally the team should sit all together. In that ideal work the daily stand-up lasts only 5-10 minutes, it's not meant to be a dreaded status meeting where you talk for 5 minutes then try not to fall sleep for an hour...


👤 gijoeyguerra
Yes. If by Agile you mean development practices like continuous integration (periodically integrating changes into a single environment so that the system can be tested) and creating short feedback loops like devs testing their code; and by Scrum you mean creating team routines for reviewing assumptions and the team talking directly to customers; and periodic reflection to improve processes, then yes, I do.

Daily Standups are supposed to be Daily Planning Sessions for the Team. But the common implementation has devolved into status update meetings.

So the con is that, more likely than not, it will be a status update meeting, in which case, a waste of most people's time.

If it's a Daily Planning Session, there are no cons, only pros.

The pro is team alignment, with each other and with project objectives and goals, with only a maximum of 24 hours for possible misalignment.

Misalignment is ALWAYS the problem. Daily Planning Sessions help mitigate that ineveitability.


👤 a-saleh
It depends. I would think of SCRUM as Getting Things Done for teams?

I.e. a popular set of productivity tools with a cottage industry of people trying to teach it behind it.

If you look at it as a set of tools, you can make something really tailor-made for your team and on occasion it lead to creating a truly bespoe process that fits our team needs and doesn't have anything to do with scrum anymore :-)

With things like standups, backlog refinements, storypoint estimation, based on my experience this works for team of 3 to 10 people, with a clear responsibility that work together on a project for at least 6 sprints (usually 2 weeks/sprint), where new work can wait for new sprint to start.

It helped us focus, storypoints started to work for estimating stuff after ~3 sprints, our managers got used to "no, we won't start working on it right away, put it in the backlog, you will join for prioritization anyway".


👤 nihil75
Now I want to be devils advocate and give you the "corporate" perspective -

You say Agile disrupts your "flow", makes you deliver buggy code and just work to close tickets like a drone?

Good! Who said code needs to be perfect and bug-free? remember Lean? Just get it out there! we can always fix things later.

From a business perspective - we are spending money to develop functionality, not our peoples skills. Tickets and tasks should result in adding value to the business, not to our codebase.

This is a cruel and unsustainable way of thinking, which will have your best developers leaving the company very quickly. But if you're an enterprise corp - you see them as interchangable "resources" anyway, and Agile helps you accomodate to them leaving by splitting the work to small bits and having no single owner.

This is also a way of looking at things...


👤 tobmlt
Anecdotal, but your experience seems to match well with my understanding of the dark side of scrum/standup.

Holding all else constant I hope to have a job where I am not on the spot for making some unknown amount of tangible progress every 24 hrs. Deep work cannot take place in short, consistent staccato steps. Sometimes big moves forward happen in a day. More often it’s a day better spent thinking hard, rather than thrashing around for quick answers.

Moreover, if I have to ask for extra help to make progress quickly and consistently, I miss out on the learning that trying things myself would provide.

In addition to being very unfulfilling, this means that I do not grow to properly understand the codebase in a timely fashion. This means I will under achieve over the long haul. All the better to judge me inferior I suppose. It can be quite toxic.


👤 mrcartmenez
No. Scrum is a horrible way of working that disempowers developers, silos them away from stakeholders and customers, and prioritises middle management over product designers. Its only selling point is the juxtaposition against the straw man “Waterfall”.

Scrum is incompatible with Agile principles.


👤 ohduran
Agile is there for the convenience of managers. The language of its manifesto has been essentially weaponised, in my opinion. The idea was to give more power to expert programmers that cared for the user without the constraints of bureaucratic procurements. And instead, what we got is something remarkably similar to Jeremy Bentham's Panopticon.

It has backfired, because most organizations cherrypick what they want about Agile, and discard what doesn't adjust to the "way we do things here".

In case this resonates with someone, I wrote more about it here: https://alvaroduran.com/essays/against-agile/


👤 anonymoushn
At most of the teams that have done this sort of thing IME, it has been a disaster.

However, I spent some time working with contractors at Pivotal and I met an EM at one employer, and these people seem to take this stuff super seriously and get good results. The difference is that they do not just have standups and backlog grooming and retrospective. They do EXTREME PROGRAMMING. I am not sure if this is suitable for all kinds of work, but it was highly productive in my experience.

In that case though, the answer to your question is still "no," because there is no extra bureaucracy and because the points exist to serve the team rather than management.


👤 marcus_holmes
Agile, yes. Very much so. I remember developing pre-Agile and the endless Gantt charts and delivery milestones that never happened.

Being able to throw all of that in the bin and just say "we're Agile, so it'll be ready when we all agree it's ready, and we'll direct effort where we think it's most needed as we go" is awesome.

I've never worked with Scrum, but I have solid negative opinions on it (so hopefully I never have to). One of the core parts of the Agile Manifesto is "people before process" and Scrum is all process, so I'm always confused as to how the two became synonymous.


👤 tworks
Agile/Scrum is nothing more than a product that Martin Fowler and Thoughtworks publicized for their own good (money wise). Outside of that it is just another buzzword driven development which gets nothing done.

👤 zarkov99
I see mostly pros in agile, especially compared to the waterfall methods it replaced. Of course there is no methodology that cannot be wrecked by stupidity and pretense. Done well I have seen the following benefits from sprints and standups:

* Sprints - Instill a sense of urgency - Reduce scope to a manageable set - Allow for short-term planning and reflection (and short term is the only term that works) - Align the team

* Daily Standups - Provide a relatively cheap and high-bandwidth way to disseminate information. - Keep the team bonded and allow for early course corrections.


👤 templarchamp
Software projects fail because some non-technical folks want to hit a timeline, linearly chunk tasks and flog team to "giet-it-done" until it is "done-done". So what does the developer do? 1. Get whatever it takes to ship the product - 5millisecond or 500 millisecond latency does not matter, most of the algos that could be constatnt are not...Gee wonder why Zoom is 91B and Cisco is 191B, assuming Webex is identical to Zoom.And oh, the churn....The scrum is designed to stretch the system to its breaking point and keep it there...

👤 serial_dev
One approach I want to try one day is described here in the Shape up book. It's free and takes around 2-3 hours to read cover to cover. The idea I liked the most is that it made me shift from "How much effort and time we need to solve the problem" to "How much effort we are willing to spend on solving the problem, then find a solution that matches that 'hunger', 'willingness'". It makes simplifications of solutions viable.

But the books is full of gems, so my two sentence overview doesn't do it justice. Read it here https://basecamp.com/shapeup

With that said, I don't expect any manager to allow us to try out. People love that they can hear people every day that they are all very busy.

My current Scrum experience is from a large retail company. Our mobile app team of ~8 devs tries to keep up with the web team of ~50 devs (or even more, I just started and we work remote, I have no clue about the exact numbers).

The schedule, roadmap is mapped out for at least the next year.

Then, the Scrum doesn't make any sense. We can't decide what's important for the user. We can't work on bugs (that makes the lives of our users miserable) because we work on big feature launch X, and if we don't finish, it will jeopardize big migration Y in 2 months, and then it'll make big relaunch in Country Z impossible in 4 months.

It's waterfall with two-week crunch times and daily standups. And our ratings in the app store are constantly declining. But hey, at least we are on time, no matter how terrible our app is, in Jira it says it's shipped so don't whine about software and product quality.

During my whole career (about 5-ish years), I didn't find a place where a standup every day made sense. I think two or three sync-sessions per week would be perfect. Daily standups just made anxious, nobody listens to the others, you either say too little or too much, and the original promise of standups just didn't match my every day experience: we never found blockers we wouldn't have found otherwise, etc... In my opinion, pair/group programming (2-3 ppl) is thousand times better.


👤 mjul
Alistair Cockburn used to talk a lot about the contextual aspects of agile and how you need different levels of process rigour and ceremony at different levels of scale (number of project members) and different levels of criticality (e.g. are you building a sign-up form for the Christmas party or the control system for a surgical robot).

Whether people say it is good or bad, it is useful to understand the context, scale and criticalilty where they came to that conclusion. Otherwise it is very difficult to compare answers.


👤 indigochill
In my personal experience, sprints are mostly a waste of time. They're maybe useful when you really need regular updates about the status of a project with clear milestones, but I think the software world (or some corners of it, anyway) are coming around to the "It's ready when it's ready" mentality rather than crunching for arbitrary deadlines. So I personally prefer something more like Kanban. I use that both professionally and personally.

I also don't like points generally. To some degree you need some kind of estimate, but estimations are notoriously inaccurate, so just embrace that and stick a "days/weeks/months" label on something and call it a day (though if it is weeks or months, it should probably be broken down, but I do that on-the-fly as I arrive at those bigger tasks and develop an understanding of what's involved).

I actually do find standups useful in my experience, because in my team we have a couple individual contributors working largely independently on independent components of an overall software suite. Some of them are new and so might try reinventing wheels we've already solved in other compartments. By having a dedicated time for people to just talk about what they're doing, more senior developers can catch when wheel-invention is happening and steer the more junior developers towards existing solutions.

But above all, don't cargo-cult any practice. Find what works for a specific team and run with it, because different teams have different needs. That's the real essence of Agile.


👤 AnimalMuppet
I've seen it work, and work really well, on a team with all "A" players, and with a guy (just one of the team, not a "scrum master" or anything) who really understood how to run an agile team.

And then I've seen it fall apart, in the exact same place, because upper management wasn't getting progress reports in terms they understood.

It can work, and work well. But it's far less automatic than people think, and far more likely to turn into cargo cult agile.


👤 shp0ngle
For me, scrum is really about splitting code development into 2 week chunks called "sprints". And I like that.

So instead of, on hand, having constant daily storm of thing, or, on the other hand, having tasks that take forever and never end, you have time-boxed 2 weeks sprints that you plan beforehand and do them. It's not overly planned for the next year, it's also not no planning, it's "just right". Management is happy that they see what is going on, developers are happy that they are not micromanaged.

Daily meetup is just to check up how things are going. It's good, but it needs to be really checked by someone to not exceed some time and not be yet-another 1 hour meeting.

All the other things can be safely ignored; all those managers and owners and masters, they would exist with or without scrum and they effectively don't matter all that much.

What I do hate is "story points" and "velocity", because they at the same time don't mean anything and do mean something. In my head I convert them to "mandays". I don't know why people don't call them "mandays". "But they are not mandays" you say... well they mostly are, let's call them that.

I never had experience with all the other weird rituals like the cards.


👤 kovac
I personally find the ritual boring but it's not without its value. Below are a few points I've found useful to me personally.

1. I get to see the progress of the project as a whole on a daily basis. Without the stand ups, I probably would have no idea how and what we are doing as a team and I'll just be doing my own thing.

2. There were times I mentioned an issue I ran into and others chipped in with helpful ideas (sometimes even the solution) saving me time. If it weren't for the stand up, I would have just solved it on my own anyway but could have taken more time. In a way, this opens up a helpline.

3. If you are a team lead, this can help make things more predictable. There's an understanding what everyone is expected to do in a regular meeting than scheduling meetings when you think is needed but others may not have the same motivation for a meeting and can end up same few people talking every time.

I hate meetings in general, but I hate surprises even more. So, seeing meetings pop up suddenly on my calendar is something I really dislike. Agile and the stand ups at least make things predictable like short 20 minute meetings every day. After I get through that, I know I'm not gonna be bothered again for the day :)


👤 triggercut
As someone who has worked in Project Management of Bridges, Enterprise ERP transformations and everything in between, there are definitely benefits in certain use cases. It really comes down to the type of "thing" being delivered and how to deal with the inherent risk.

Agile works best in environments where the scope or execution methodology can not be discerned up-front or where it is crucial you need assurance that expectations are aligned. Your risk profile is much higher due to the number of unknowns, so a lot of time is spent doing work "around" the design and delivery of said thing to mitigate all that risk. As such, it works well for mostly corporeal endeavors such as building new software, or things that . This helps operationalize a feedback loop of try, test, re-align, try, test... etc. across stakeholder groups to help make small rapid course corrections until you get to where you need to go or abandon at an optimum time without marching like lemmings to a cliff.

It also works well in technical environments where there is a lot of collaboration and interfacing between different specialized groups. Forcing everyone to come together and be accountable for their dependencies to each other reduces those instances where blockers, compounding delays and finger pointing send things off the rails.

Estimating, assigning, controlling and monitoring, what you would typically term "earned value", in a project management sense is extremely difficult for these types of things. If the scale of work is large things naturally land on amounts that aggregate up to something useful

The two things I often see in agile projects/organizations that are often done poorly and lead to failure are:

- Maintaining a proper understanding and separation of the delivery risk (risk associated with building, creating) and the delivered risk (the risk you've baked into the "thing" by aspects of its design)

- Not allowing for or tracking risk mitigation, or how residual risk is trending

- Thinking because every project is unique that they are unique and therefore need a unique way of managing the project (i.e. re-inventing basic project management methods)

- Thinking your business is unique (it's not, less than 10% at most) and that therefore everything you do, including how you execute projects is unique (you don't).


👤 mdlm
The daily standup is not part of agile.

Agile is defined here: http://agilemanifesto.org/


👤 Revester
"Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress" Agile is for quick feedback on made progress, to compare it to expected progress and to be able to report your progress and forecast to business people to let them know how far behind the schedule you are as quickly as possible.

Let's say it's January and you need to deliver a product with a 200 use cases on July. After just a few first iterations you will be able to tell if you can deliver all use cases on July or quickly give feedback to business people that you won't be able to. From there you have options: close the project and stop investing time and money in it, add people to the project because you got your info very quickly that you won't be able to make the deadline in 6 months.

Uncle Bob talks about it in depth in one of his lectures here: https://youtu.be/SVRiktFlWxI https://youtu.be/qnq9syXUuFE

And in his book Clean Agile: Back to basics.


👤 Revester
"Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress"

Agile is for quick feedback on made progress, to compare it to expected progress and to be able to report your progress and forecast to business people to let them know how far behind the schedule you are as quickly as possible.

Let's say it's January and you need to deliver a product with a 200 use cases on July. After just a few first iterations you will be able to tell if you can deliver all use cases on July or quickly give feedback to business people that you won't be able to. From there you have options: close the project and stop investing time and money in it, add people to the project because you got your info very quickly that you won't be able to make the deadline in 6 months.

Uncle Bob talks about it in depth in one of his lectures here:

https://youtu.be/SVRiktFlWxI?t=1807

https://youtu.be/qnq9syXUuFE?t=3400

And in his book Clean Agile: Back to basics.


👤 rvdmei
Below is not just my experience, but also from other teams I have worked with over the past 10 years in an agile / scrum setting.

Sprints:

- pros

Helps to avoid continuous changing direction at request of stakeholders. 2 week sprint feel really good as planning horizon: not too long, not too short. Teams do not commit to anything beyond that timeline. Any roadmap commitments are based on stats and product owner responsibility. Team is not accountable for any missed deadlines.

- Cons:

It can feel like wash-rinse-repeat sometimes. Can be a killer for flow and feel inflexible when you are nearly there (getting it done) and the sprint review interrupts the flow. If the balance is bad you should probably look at kanban.

Daily’s:

- Pros

Excellent way to find out if team members need help or some syncing is needed. If done well team will “feel” if your getting closer to getting everything done. With work from home good to see everyone on the team at least once a day.

-Cons:

Hard to get right. Should be about inspection by the team to help adapt the plan and get to your goal, but this is often forgotten. Might become a way to “control” the team and put pressure on people and check for performance of individuals.

As for micromanagement: this is not exclusively found in agile / scrum. A micromanager will find a way to abuse any method to “control” their world. If you let go, set a clear purpose and direction, start helping team members to get more autonomous you will find that performance goes beyond what micromanagement can achieve.

Scrum (as defined in the scrum guide) can work, when it doesn’t: adapt and try again.


👤 danielovichdk
Sounds like you are not doing scrum. And I only know of the term 'daily' being prt of the scrum process.

So. If you're not doing scrum you are not leveraging it's potential and even more important, its rules.

The rules of a daily is non-disputable. It has a formula. If you're not following the formula, it's not scrum.

A daily is not about progress. It's about communication. You communicate what you did since the last daily, and what you expect to do before the next.

But you're not being measured on what you communicated. You are merely sharing what you' re doing.

If there is discussion in a daily, it's not a daily. If you're not using a board for the baseline for communicating, you're fucked.

The role of a scrum master is to take note of what is going on and help out if she hears anything that sounds off. A good scrum master is a bit like a dictator. Focused, on top of things, helpful and listens to what is going on and does not bend to outsiders.

Good scrum masters are hard to come by. That's most often imo, why scrum had a bad rep in some places.

Also remember, agile is something that must happen on a top level, otherwise it will not work very well.


👤 cjfd
The way you talk about this makes it sound like you are in a very bureaucratic world. The original idea of agile/scrum was to cut down this bureaucracy and only keep what is actually useful. But in most practical cases one still needs some degree of structured communication. The degree of structured communication could then perhaps be the famous scrum ceremonies. However, the way you talk about it, it sounds like the scrum ceremonies come in addition to the already existing bureaucracy. To me that sounds like putting the cart in front of the horse. A more agile way of looking at it would be to look to some bureaucratic procedures that seem burdensome and replace them with something lighter. The famous scrum ceremonies could be taken as suggestions if you like.

It also sounds like there is not very much trust between team members. You immediately go to 'signalling progress vs. actually making progress'.... The scrum ceremonies are actually meant to support an environment where developers trust each other and one developer helps another when s/he could use it.


👤 JulianMorrison
I think that it takes freedoms and responsibilities away from developers, chops work into chunks that are too small, forces constant arbitrary deadlines and a lack of a relaxed pace (they are not called "sprints" for nothing), and incentivizes under-estimation to "fit things in", resulting in overloading or overruns. It also treats developers as fungible which is very much not the case if specialist skills are not evenly distributed. The constant "scrum meetings" serve as an unwelcome goad and very rarely convey information that anyone except micromanagers care about.

Editing to add: learning is an important part of being a programmer. Experimenting, reading the manual, trying it out, these are all things that get managed out, when you have to beg for "spike" time to do them, and somebody else doesn't see the importance.

The upsides are that it does make it somewhat easier to pivot or to shelve-and-resume when you know which of the bitty pieces are still to do, and it makes long term estimates slightly less arbitrary.


👤 Ragnarork
I still think it's wrong to conflate the two, at the very least.

Agile gives you principles as to how to envision developing software. Scrum is just one implementation that tries to follow these principles.

I'm not a fan of Scrum, although I can understand why some of its components could be attractive. Velocity for example is interesting, as it's an attempt to empirically measure how "fast" a team can develop, and base estimations on that instead of just throwing a bunch of hours/days as an estimate when in fact it's hard to do that. I still think it doesn't work well to solve this, but to be fair I don't think there's a single method that solves it.

In the end, I think Agile is beneficial (in my experience!) but more importantly that you need to use and tailor a software development methods to your own needs and context, and stop blindly following existing models but instead see them just as what they are: tools.

As another example since you mentioned it: daily standups can be good, or terrible, it depends what you make of these. I've worked in a company where it was basically a "scheduled waste of time", but I moved to a place where we mixed it with basically a "hey good morning" type of coffee break and it worked rather well in a casual way, chatting up what was coming and that's it. And we keep in mind that if some kind of "ritual" becomes useless, then we skip it altogether as soon as we agree there's no value in it.

That last part feels important to me because that's ultimately where a key aspect lie: when you say it's a "micromanagers' dream", I think it just shows that the software development method can always be twisted and hijacked by some people given enough power/representation/influence.


👤 l0b0

  > Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress.
There are two massive red flags in that sentence. If the standup is being used as an excuse to micromanage something has gone horribly wrong. And if people don't use it to make progress (that is, asking for help and mentioning blockers) something else has gone terribly wrong.

There are about a million discussions about how broken Agile is, most of which discuss some abomination of a process with very superficial similarities to Agile. It's not like having a standup is some sort of magically good thing on its own if people just use it to do things the way they've always done them.

Cue the inevitable "If everybody is doing Agile wrong, maybe there's something wrong with Agile?" response, to which I would simply say that I've seen Agile work in at least two completely different workplaces, and I've seen how terrible non-Agile processes are in at least another two.


👤 myth2018
The pros and cons are typically thought of as intrinsic properties of Agile in general. But they are not.

Agile has a number of assumptions regarding organizational culture and the people involved on the project. Those assumptions are usually not discussed very often, which is bad, since I believe they are typically related to those many cases of failed Agile implementations that end up getting different explanations depending on how one likes/dislikes Agile.

To summarize what I'd like to answer about your question:

Pros:

- They are great tools to break larger projects into smaller chunks and to keep track of their progresses. Experience shows that it's easier to reach success on smaller projects, and sprints and daily meetings are ways of emulate such sort of project even when working on larger ones.

- There's an opportunity of catching and fixing schedule slippages, requirements misunderstandings and other sorts of deviations before they get too expensive to fix.

Cons:

- You need a bigger deal of maturity and commitment of people involved. As IT professionals, we usually complain about users being unprepared for working on Agile projects, but we have to admit that many professionals show a significant decrease in performance when they are not under a certain level of healthy pressure.

- When you favor people over processes and communication over documentation, a higher level of mutual trust is required. You can't find that everywhere, for a number of reasons. Some say that such organizations are not prepared to work under Agile rules. Some are more pragmatic and adapt. I stick with the latter. Agile talks a great deal about embracing change on requirements, and I don't see what is the point of being a purist and refusing to adapt the method to deal with risks.


👤 dm03514
I think scrum functions as an engineering accounting system. It’s worked really well in my experiences and has allowed me to forecast capacity which helps Materialize timelines.

https://on-systems.tech/109-toward-predictable-engineering-v...


👤 danparsonson
With respect to all involved, I've so far worked on two projects using scrum, and hated it both times. The biggest problem for me is something I haven't seen too many people mention here - scrum apparently goes hand-in-hand with feature-driven development. Some list of requirements is divided up into small vertical slices through the software, which are drip-fed to the team via the backlog; the end result is akin to building a house in vertical slices. It's possible to work like this but very difficult and without near-prescient levels of foresight on the part of the team leads to large amounts of otherwise unnecessary rework, especially when the requirements inevitably change, which is supposed to be where 'agility' comes into its own. That's not agile, it's clumsy and wasteful.

Far better in my experience to spend time analysing the requirements as a whole, to distil the essence of what's being developed, and design a set of components that express that essential nature in a flexible way, such that the features arise out of the combination of those components rather than being developed in isolation and then mashed together as the project progresses. Accept as a given that intial requirements are just a best guess, and design accordingly - to cram piles of poorly-thought-through code through reams of unit tests is to fight this reality, not to embrace it (note that this is not to rag on unit testing itself, which, like any good tool, is extremely useful when deployed appropriately).

Doing this kind of analysis up front and then developing the components using scrum - that would probably be OK, but I've yet to see or hear of anyone doing that.

As for the process side of scrum: stand-ups are fine if they are kept very short and simply used to express and work through problems, but this appears to require active policing to prevent people rambling, and the retrospectives again are potentially useful, but in my experience turn into long awkward sessions of scratching around to find items for the 'things that went well/went wrong/would change' lists - and more often than not 'things that went well' could be summed up as "we all did our jobs". Celebrate genuinely awesome results, sure, but as a software developer, I don't need or want a pat on the back just for developing software successfully. Overall I would say that the principles of scrum sound nice but when they meet real people the results are somewhere between mediocre and painful.


👤 timwaagh
Daily stand-up has the pro from a management perspective that people feel pressure to perform. It does make sure people focus on the things they should be focusing on. The associated con is that not everyone performs under pressure.

The pro of having a sprint is that the team knows what they can do in advance. I don't need to ask my boss for a new task, I just pick the topmost of the board that's not been worked on. The con is sometimes added pressure to finish a sprint (beyond normal pressure and without real-world cause) and a lot of time wasted in team wide meetings to plan a new sprint.

'refinement' meetings as far as I understand are unfortunately usually a waste of time.

Estimations in terms of 'effort' points are a recipe for failure because ultimately they will be converted into man-hour units yet were not supposed to think of them as time but 'complexity'. As a result velocity and burn down tools are just a cause for strife. I'd recommend using a normal time unit instead. Skip the conversion.

The other way these things can possibly be made useful is if the most important metric is not velocity but reliability (which most teams don't use but is used in at least one team in my org).

Retrospectives have the potential to be a cause of strife for obvious reasons. Usually they are pointless because people understand it's a powder keg so you never learn anything.

Personally I don't like agile/scrum but if I'd have to do it myself I would keep at least some elements, like the board you can take tasks from. Standups I would like to see alternatives for. Estimations I would try to do myself or maybe have a tech lead do. I wouldn't even bother communicating it with the rest. Ultimately I never learned anything besides agile scrum so I'd have to adopt at least parts of it no matter that I dislike it.


👤 fsloth
Well, if you don't communicate, don't plan or don't do any retrospectives then those omissions will have a high probability to cause problems.

In that sense scrum is like "training wheels for self organizing teams". Once you understand the benefits, a small team should be capable of modifying the system.

If we look at productized processes Kanban is much better at getting the essential framework in place.

Scrum is not the worst process that could be applied to software production for large orgs. Worse examples include for example a no-process, hardware companies shoehorning software development into hardware development framework and so on.

IMO as a junior dev over a decade ago it was nice to have scrum when I started at a company since that framework made it very explicit what the rules of the process were. A no-process would have been much worse and stressful.

But high performing teams tend to realize there is no one shoe fits all solutions to complex processes and then evolve their own system.


👤 osrec
For me, agile is synonymous with a common sense approach: take small steps to your goal, and don't be alarmed if you need to pivot your strategy along the way, as no one has a crystal ball.

Having said that, I've seen a lot of agile projects fail, because people are too busy worrying about being "agile", while forgetting to apply common sense.


👤 lowbloodsugar
You are describing cargo-cult scrum, or consulting-driven scrum. At this point, I think scrum is a lost cause, because, at best, people go through the motions, but more likely, managers use it for the opposite of its intended purpose.

I did my first scrum training with Ken Schwaber. Ten years later I did it again with a "Scrum Consultant". Same "processes", but utterly different reasons, utterly different outcomes.

And there's no hope for it. Managers can't be convinced by me that Ken Schwaber didn't mean whatever bullshit their high-priced consultant is saying. Even without the consultant, there are far too many ambiguous things, that Ken gets into specifically, that don't come across when discussing Scrum. Scrum will result in the manager doing none of their responsibilities (e.g. proper planning), while micromanaging the engineers.

If I ever start another company, we will do Scrum. But otherwise, I won't go near it.


👤 matt_s
Following any process to the letter by some text book is problematic.

If you consider things in the Agile Manifesto and the spirit of being agile, the pros are things like you don't waste time building stuff nobody uses. Why gather requirements, design, develop, test, deploy of features that have minimal or no usage. I've seen many cases that by the time a feature gets out there, its not needed/wanted any more. There are charts and stuff on this regarding Lean Software Development. Another pro is barriers are identified quickly and can be problem-solved quickly. Figure out your unknowns really early and you can adjust what you're building.

Over the last year with everything going on there were days where at standup people said "got distracted" and that is perfectly fine. I took that to mean they didn't get anything done during the last day. There were some major life distractions this past year. Those meetings aren't for management to keep tallies on people for some fictitious scoreboard, they are there for the team to identify barriers, ask questions, etc. so the work can get done. Agile comes from lean principles from manufacturing, its about eliminating wasteful steps in a process.

Some cons would be with the wrong culture you get micro-managers, people measuring stuff that doesn't matter (ticket size, velocity, whatever) and possibly people gaming whatever nonsense you are measuring. If there is bad culture the project management process being used doesn't matter really, its not going to be pleasant working in that.

If there is high risk in what you are delivering, like if you're building software for controlling a nuclear power plant, ICU medical devices, etc. you may need a lot tighter controls around the project process because software bugs can result in really bad things. Maybe a waterfall process works better in those situations, otherwise use agile that fits the people and organization.


👤 ChrisMarshallNY
Quick story: I worked for a Japanese company. A really good one.

Anyone familiar with Japanese business/engineering process knows that the principal engineering project management fuel is meetings. Highly organized and structured meetings. Our headquarters building in Shinagawa had two entire floors, dedicated to conference rooms, and every floor had at least 4 conference rooms, along with "ad hoc" conference rooms, made up of file cabinets, set up like a grade-schooler's home "fort."

We had to book conference rooms six months in advance, for a half-hour meeting. Once, we were ten minutes late for a meeting, and the booking system automatically knocked us out, and assigned our room to another team. We went out to the coffee shop, but couldn't "talk shop" outside the headquarters building.

Yeah...they take meetings seriously over there.

So my team (based in the US, but run from Japan) hired a really sharp guy to be our process/infrastructure person. He was loved and valued throughout his six-year tenure, and we cried for years, after he moved on to greener pastures (this story might illustrate the appeal of said "greener pastures"). He was a fairly new Agile proponent, and proposed a daily standup.

So, anyway, the spirit of a daily standup, is to be informal and fast. Start of day, 15 minutes, no chairs, lightning talks, very brief Q&A, What I did, What I Want to Do, the Challenges I Anticipate, etc.

So, our Japanese liaison member (the person responsible for learning our process and representing Tokyo's interests to us) takes a liking to these, because...meeting GOOD. You get the picture.

So our "standups" ended up becoming hour-long daily pre-lunchtime events, with a booked conference room, seats, a fixed agenda, and a daily report to Tokyo.

Be careful what you wish for.


👤 BatteryMountain
I hate it.

The place I work at is doing it wrong in my opinion: sprint points are directly mapped to time (instead of complexity), meaning that each day = 2 points per developer. Stand ups are really just status updates to our product manager - developers don't actually chat to each other about issues, we just report to the pm. If the pm is in another meeting, then standup doesn't occur at all.

The worst thing about it: There is no end in sight. There is no natural endpoint. It's just ticket after ticket after ticket, with the almighty burn down chart looking down on us. It just never ends. In a way we are assembly line workers. We cannot take slightly longer than what the ticket says, then you are forced to explain where you are stuck, even if you aren't stuck, so people thumb suck reasons.

(With something like carpentry, you build something, apply finishes, enjoy the product, AND IT IS DONE. With software development + scrum = infinite treadmill. You get deprived of ever getting a sense of accomplishment.)

During sprint planning we also assign the ticket upfront to specific people, so we have hectic issues with knowledge silo's.

On the sprint point side, we basically either have tickets that are 3, 5 or 8 and nobody dare picks another number. Using their system of 2 points = 1 developer day, some tickets should be 20 points, simply because it will take the person at least the whole 2 weeks to do. Some tasks are inherently complex or tedious and will take longer, but at this company we basically have to rush everything. Nobody ever has downtime and time to think.

I'm kind of over the company and over scrum. Looking back after 10 years, the only place where scrum did work for me was at one company (that sadly closed down (infighting between directors)) where we didn't take it serious at all - it was all for fun, no drama/seriousness, no care about mapping points to time, retro's was super funny (and not a moan fest) - basically nobody took it seriously and our productivity was crazy good.

Another place I briefly worked used old school Gantt charts which worked surprisingly well even though I didn't like it in the beginning (it was a more waterfall-like approach, loads of planning upfront). We would spend a WEEK planning and then code for like a month and release basically near perfect code to production. It did feel a bit boring in a way because there was very little wiggle room - everyone just followed the plan.


👤 frugalmail
Scrum, and "certified" (or not) Product Owners, Project Managers, Product Managers, Scrum Masters, Technical leads, architects, engineering managers, and QA that don't come with years of code slinging under their belt have no place in software development.

Kanban makes so much more sense when that kind of garbage is in your work environment.


👤 kuang_eleven
Yes, if done properly. I have had great luck with an Agile/Scrum methodology, to the point where I actively advocate for it over other management/time structure styles.

There are a few points that are important to it working well though:

* Team size should be small, but not pathologically so. 3-8 is about the range it is ideal.

* Strong ownership and trust between engineer and product owners, both way.

* Engineers should have broad, or at least T-shaped competencies, not narrow, exclusive focuses

* Meetings should feel useful to all participants, at all times. Specifically, standups should be useful to the POs because they get a rough idea of how things are going across the team, but it is also useful to the engineers to ensure that engineers are actually working together, not simply siloing themselves.

* Engineers should be competent, in general. They don't need to all be 10x engineers, but a team comprised mostly of leaderless junior engineers will fail, even more so with Scrum/Agile


👤 nihil75
Yes, it's working for us, but not without cost.

It's a good way to set expectations for what will be/is to be delivered in a Sprint, and limits going off-piste in too many directions while not delivering functionality (which is a problem for creative/broad-skillset developers at times).

It also limits the impact/waste in case the requirements change - you only worked two weeks in the wrong direction. (and they say changing requirements is the biggest problem in software projects since ever)

However, I find that it often reduces developers to mindless drones, just trying to satisfy acceptance criteria without thinking about the big picture. (You know you're there when Refinement meetings are very quiet and the Architect does most of the talking).

As for estimation/scoring - I find that estimating "complexity" is nonsense. Treating points as "days" is more realistic and leads to better time management from everyone.


👤 ineptech
I'm a manager who (I think) does agile right, and will now defend it because I think it's brilliant (when done right).

On standups: first, I rarely speak in standup; if some other manager uses it to micromanage, well, that's on them, not on the general concept of daily checkins. Second, it's very difficult to "signal progress vs. actually making it" with your teammates. That's part of the point: intra-team accountability. If you're making no progress, you might fool me with generic excuses and you can certainly fool a business analyst or a project manager, but you can't fool another programmer who works on the same code and sits next to you.

On agile having a lot of bureaucracy layers: compared to what? The agile "bureaucracy" my teams endure is: standup, refinement, and retro. That's less than two hours per week. What methodology involves less bureaucracy than that, other than anarchy?

On points: OK I will kind of give you this one, but only because they don't bring value to you. Story points aren't for you, the dev, they're for PM and execs. What do execs want, in terms of estimates? They want to know exactly when a feature is going to ship, to the day, even if it's years away. What do devs want, in terms of estimates? To not give one, ever, for anything. Story points are the compromise. And pointing a story takes maybe 30 seconds, so it's hard to understand how anyone can see it as onerous.

So in summary, I think agile is very good when done right, and in places where it seems bad it is usually because one of the basic ingredients (a team empowered to change their own process) is missing. That, to me, is the core of agile: a team that iterates on their own process. If your team is not willing to or allowed to do that, IMHO they're not actually agile. And if they are, well, take your objections, bring them up in retro, and propose something better.


👤 Jtsummers
I just remembered I had this book above my desk. In Sterman's Business Dynamics, chapter 1, he has two diagrams of the "learning loop" (pages 16 and 19).

In my mind, the benefit of agile is that it encourages a movement towards the double-loop learning model (pg 19), which is a struggle for many people and most organizations, from a single-loop learning model (pg 16) (assuming there is even a learning loop present at all).

The single-loop learning model:

  Mental Models of Real World
      |
      v
  Strategy, Structure, Decisions Rules
      |
      v
  Decisions <------------+
      |                  |
      v                  |
  Real World             |
      |                  |
      v                  |
  Information Feedback --+
Note that the loop only goes back to the decisions, not the mental models and strategies.

The double-loop learning model (another ASCII art attempt) closes the loop and brings the feedback back to the mental models (using abbreviations to shrink it a bit):

  MM ------> SSDR
  ^|           |
  |v           v
  IF------->Decisions
   ^           |
   |           |
   +--- RW <---+
Agile promotes exactly this sort of thing, which many process-centric organizations do not. Waterfall doesn't promote learning. Most processes, as written or as implemented, fail to promote this learning and updating effort. For people willing to step back and read the Agile Manifesto, to read some of the texts on Lean (manufacturing or software), to read about the origin of the idea of DevOps (rather than assuming it's a job title), to read about the Theory of Constraints, you'll see this continuous learning and improving element is common to all of them and to many of the case studies. It's not about standups, it's not about time boxing, it's not about cross-functional teams. It's the ability to introspect, learn, and adapt.

👤 laurent92
> Do these extra bureaucracy layers, meetings, checkmarks and vague "man-points" estimates actually bring any value.

Seems like your company is doing it wrong;) Agile is supposed to 1. remove bureaucracy, not add some; 2. adapt to the situation. Before Agile, you would read specs and implement them, and those specs had been carefully written by a team of analysts (8 people for a year). Any change to specs had to circle around the analysts and customers. Agile should first be an improvement on top of that.

But if Agile is still getting in your way, seek to remove that too, and your managers will be happy. Agile should be about adapting. Anything that does not bring features is unnecessary.

Last note for humor: “The wrong way to do Agile” depicts how things actually happened in Waterfall: https://youtu.be/l1yWusiaLCM


👤 diavelguru
From my perspective of being on scrum/agile teams for many years I have learned to love it when it’s done well, though it took a while to get over the shock of the daily standups and weekly events. The feeling I get is one of accountability from each member of the team that we are working as one toward the same goal. Once in a while when someone’s stuck, if everyone feels empowered and the psychological safety of the group has been set by management and the group itself, issues and problems get raised quickly and are also quickly put to bed. If a team has one 10x engineer, they are able to support múltiple 1x engineers and all are productive and moving the ball forward. When the PO is on top of the ball and the backlog is up to date and communication with the stakeholders is ongoing and the grooming meetings are run with input from the whole team and the stories and tasks and spikes are discussed at length so everyone has the best understanding they can, it is a pleasure to behold and be a part of. I just attended an Agile training today and one of the most critical paths are to try to keep team turnover to a minimum, thus reducing the ramp up time of new members. While not always possible, when the team is able to find their stride with the estimation and all agree on what the appropriate estimation should be things move smoothly. Sometimes there will be wildly divergent estimations; that’s ok, it just means more discussion is needed to understand the task at hand. This does require lots of patience for the existing members as once the code is known we skew our estimation based on our own ability and familiarity with the code. I’ve seen some estimations within one team, one one story, post discussion go from 1 to 8 on a Fibonacci estimation. We discussed and turned out we divided the story into 3 and got 2 points of estimation for each story showing we were closer to the 8 point estimation rather than the 1 point. My point in all of this is the dev team in my opinion has their fingers on the pulse of what’s going on as well as the PO when all work together toward the common goal.

👤 ssss11
In my opinion it's seen (at least where I've worked) as better for the following reasons:

1. Better visibility of progress and blocking issues - this is a big plus to senior mgmt and if you're technical it will help you alot that they understand you're making progress rather than being a blackbox that they hope delivers something in 6 months time

2. More adaptable to change - every project changes, the lnger it runs the less suitable it is at the end. Agile/Scrum theoretically allows you to change course better (not that you couldn't do it under waterfall..)

You do make a good point that it can be a dream for micro managers if you're unlucky enough to work for one, there are many potential faults but it depends on who's in the team frankly. The standups can become mundane and useless if people can't be honest about blockers or where they need help as well.


👤 brightball
Separate agile from scrum. Scrum is usually terrible, badly implemented and often still includes sprint commitments even though they were changed to forecasts 10 years ago.

SAFe for larger orgs or Kanban for smaller teams are excellent approaches to agile.

The book 2nd Generation Lean Product Development really gets into the weeds on what works and why.


👤 sneeuwpopsneeuw
I think it all depends on what kind of software you are making / supporting.

The game industry is a famous example where scrum just does not work. There are to many pipelines and to many disciplines, and everything depends on shipping.

So in the game / VFX industry there is most of the time a strict waterfall structure that does not help you to do scrum. If the hours a team is spening on a sprint is not the same every time then you are just using postid notes to track the progress. (crunch hours are unfortunately very common in the game industry)

So in general I would say, Scrum/Agile is definitely beneficial if you are shipping multiple versions of a product. But if its all about shipping 1 final product or if the time team members are going to work on it is not specified then you are just using it to track you progress and it is therefor not any better then good communication.


👤 u678u
"Agile is a Adjective not a Noun". It was supposed to empower devs but has been hijacked by management to enforce standards.

from Pragmatic Dave Thomas: Agile is Dead https://www.youtube.com/watch?v=a-BOSpxYJ9M


👤 blablabla123
Pros: if done properly it makes software delivery actually predictable

Cons: everything else :-)

I enjoy the non-scrum world, but every time I try it, I realize how bad it actually is for everyone involved, especially if there are timelines. But also I think unless you're sufficiently experienced, Scrum is micromanagement hell indeed.


👤 domano
In my org dailies are mostly helpful and not a reporting tool. We work in project teams for our customers and are about 300 people.

Also our agile approaches mostly work out well, but our whole organization is structured in a way that facilitates this.

We have only 2 levels of hierarchy and crossfunctional groups for arbitrary topics like "wage transparency", "consulting" or "technology". Anyone interested can take part in those and they get some budget too.

Every few weeks there are townhalls where economic development is reported by the executives to the rest of the company and anyone can ask questions. Since covid we do this via google meet with great success.

All in all agile approaches only truly work if acceptance from the higher ups is high. If agile is just used to get tighter deadlines out of devs it is actively harmful.


👤 junon
No. It's never worked anywhere I've seen or heard of. There is always resistance, missed deadlines, managers that start treating their teams like children because burndown charts aren't being adhered to, etc.

You can't streamline software development. I don't know why people keep trying.


👤 buster
Well, there is no mention of estimates in the manifesto. It's just people want to know if the thing they buy might cost them one million dollars or 100000 dollars. So giving estimates has nothing to do with agile per se. You probably needed to tell your customer or your boss how much time/money you think something will cost before, didn't you? If you didn't, I don't see why you should now.

Daily meetings are not to micromanage and show off that you've done so much work yesterday, but to identify issues that need to be resolved and a good place to ask the team for help if you're stuck.

Unfortunately, agile nowadays is mostly scrum, following some non sensical plan taught by some agile coach and too much management, whereas agile was invented solely by and for developers (not managers).


👤 larryfreeman
The challenge with agile is how it is run. Agile/scrum is an opportunity for micromanagement. Agile/scrum is an opportunity for greater freedom to developers. I think that this reveals that company culture is more important than any methodology. If the company culture does not fit agile/scrum, then it will not work. Another important factor is the experience-level of the team. For novice developers, scrum/agile seems like unnecessary process. For a small team of experienced developers, it may not be necessary because they may already be following its best practices. From my experience, scrum/agile is best done when it fits company culture, has buy-in from the most experienced developers, and is used with a team of mixed experience.

👤 throwaway889900
The incentives have changed. Now I just work to say something at the standup, and standups are like 30 minutes long because people keep turning it into classical waterfall style discussion meetings between two people while everyone else listens. I hate it and the fossils that perpetuate this.

👤 movedx
> Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress.

If by "micromanagers" you mean, "just managers who like to understand how time is being spent", then yes that is what Scrum/KANBAN are for, among other things.

Story time...

I remember working at a startup in the UK around 2013/2014. We had guy working for us who did the UI for the portal our customers used to interact with our service. We had another developer doing the back end in Ruby on Rails.

At this point in time we didn't do Scrum so as a result we didn't do daily stand ups. We also didn't do any form of TDD, BDD or any testing at the code/module/lib level at all.

Fast forward a few months and another programmer joined the team. Really great programmer and big on testing and Scrum. He convinced the CTO to try Scrum and go with daily stand-ups, planning meetings and retrospectives. That was all he was asking. The CTO agreed.

The UI was fired a week later. Turns out he had spent two weeks allowing the side menu slide in and out from the left of the web page. He did this from scratch.

The new guy then convinced the CTO that TDD was important for at least the critical paths through our application. He wasn't asking for 100% code coverage, nor would he (because he's smarter than that.) The CTO agreed.

The back end guy upped and left two months later. Turns out he didn't like doing testing of any kind, so instead of writing useful, meaningful tests, he wrote tests that simply returned "true".

The lesson from this is: Scrum can, like systems, highlight problems inside of an organisation. By implementing Scrum were got a daily snapshot of what everyone was doing, keeping people accountable for their actions, and knocking down blockers sooner rather than later. There is no "micromanagement" here.

These simple systems, like TDD, Scrum, OKRs, and so on, are excellent when used correctly.


👤 ulfw
"Agile" or scrum is one of the worst idea in software development that can happen to a company. I've only seen it kill creativity in lieu of "productivity" (which really is a code word for reporting to management/downwards micromanagement)

👤 shivenigma
I have never had a good experience with Scrum, sprints, standups, retros. I mean you can fucking take what I worked on, what I'm working on from JIRA. Why should I waste my time reporting that on a meeting?

Like others said above, Scrum did reduced the time we between when we finish a feature and when it hits production. I like the idea of quick feedback cycle and fast iteration.

But most companies abuse scrum and see sprints as a way to squeeze more out of dev teams. I've been working in a scrum team (leading the tech team as a tech lead, not product owner) for 3 years and I'm burned out now. Trying to get to a different place soon enough.

It is good for the product/managers, but for dev teams it can be bad if not done well.


👤 flarg
Scrum is great because it encourages hyper-communication through ceremonies but there needs to be some acknowledgement of its purpose, right now it has been hijacked by consultancies so they can save money on BAs and analysis, so it always works out badly in practice.

👤 sershe
I think scrum is very useful if executed properly, especially when something new is being developed. Small-scale attainable and clear goals, the daily sync/unblock, having clarity for 2 weeks (no randomization beyond livesite because all work goes into the backlog), and having a ready set of tasks to work on if you run out of work is great.

However scrum can really suck if executed poorly, especially the daily syncs. One of the keys I think is taking things offline and not ratholing, enforcing the time limit (15min), and if there's any manager or PM present not doing engineering work they cannot speak unless spoken to, or perhaps once at the end with any short updates/concerns w.r.t. backlog.


👤 tluyben2
The agile idea is not bad and some ideas from scrum are not bad, but I have never seen an environment where the dev team thought daily (sometimes twice...) standups were a great idea. That could be my experience of course, but I'm almost always an outsider (coming into teams to help them implement our products) and asking around; in most places I get to, standups are seen as a show off session and so, automatically, as a 'punch the weaklings in the face' session. Fill up the time with rattling off blockers (aka blaming others) and allow for just enough success for the bosses to see you are a 1000x'er.

Communication is important (vitally so), just the format is entirely wrong imho.


👤 brailsafe
Every company fails in some respect with at least rate limiting. The last thing you should do in software dev is introduce more meetings, but that's how managers interpret agile. If I didn't get anything done, or only a trivial part of a bigger picture, the last hing I want to talk about or hear from anyone else for 30 minutes first thing in the morning is that. Likewise with only being able to the fastest things done in two weeks, or small parts of them if the sprint schedule isn't adapted to the team very well.

In most circumstances, one or two updates a week would be fine, preferably followed by the rest of update meetings so more contiguous hours of problem solving can happen.


👤 qcoh
Some things I like:

* Frequent feedback from stakeholders and customers

* Retrospectives

* Standups

These can be annoying but they help make sure that the right thing is developed.

Things I don't like:

* Things get rushed to get them done before the sprint ends (even if there is no deadline pressure)

* On the other hand, everything takes at least two weeks to get done

I feel that this turns the output of a very high-performing developer into that of a mediocre developer. I'm not a 10x developer, so I can cope. ;)

Things I don't like but don't blame on Scrum:

* Jira

* Storypoints

* Estimating: All estimates beyond the current sprint are completely unreliable. Still, people use storypoints to derive release dates and worse, measure the productivity of employees using them.

FWIW, until I learn of better processes, I prefer Scrum without "buts" and with continuous deployment.


👤 mns
I think it is, up until politics and managers come into play. If you leave to the team level, and you have some good senior people in a team that can also help and guide junior developers, you can do great.

In the end it depends on the people, and the biggest thing that can make or break this is the product owner. We had someone as a product owner who had absolutely no political play in the game, he was a designer that stepped in and understood the product. All he did was explain some quirks and come in to help if there are questions or things that are not clear. On the other hand, when the product owner tires to be a manager of the team and the processes, it all goes extremely wrong.


👤 bob1029
We just nuked our daily stand-up.

The idea that we could have a call at a fixed time each day to figure out and reorient active development priorities is a manager's fantasy.

Some developers need a whole week to get momentum on very difficult tasks. Breaking their time up into discrete 24 hour chunks where they have to constantly report ambiguous progress can create incredible amounts of unnecessary stress over time.

We are now operating 100% async. I worked with our implementation group to ensure we have a buffer of priority issues so that developers always have a way to grab the next task, even if it's 3am on Saturday. Some people get inspired at weird times and that's totally fine.


👤 svaha1728
My dad and grandfather were both doctors, and I somehow ended up in Startups as a programmer. Sometimes, in the middle of retrospectives, I start to daydream about what operating rooms would look like if managed by Agile(®)...

`Dr. Andrew's has certainly given his opinion about what we should do next with the patient, but what does Fred think? Fred says masks are pointless. Dr. Andrew, we're all equals here, you shouldn't let your emotions take over. We'd like you to perform this surgery without a mask...`

Luckily, it's just a software management technique, and generally speaking there are enough adults in the room that it moves forward regardless...


👤 geocrasher
In a perfect world? Yes. On paper it is very good. And making people accountable for their work is a good thing. So is organizing work to be sure it gets done. I'm not a developer, but my department is developing a product for internal consumption, and using the Agile method is good for this purpose. I'm a terribly disorganized person so I like the structure it brings.

Beyond that, it's just a way of doing things, much like an OS. It doesn't matter if you're running W10, MacOS, or some flavor of Linux. If it's the right tool for the job, then it's the right tool for the job. But if it's not, then why is it in use?


👤 dmead
No.

Agile/xp started at Chrysler as a way to push back on management on give engineers a chance to pace/structure/set expectations for their work

Modern agile is just a management framework used as an excuse to micro manage the shit out of your work force.


👤 OwlsParlay
I'll explain my experience, from starting as a newcomer in a business and ending as a Team Lead / Scrum Manager.

When I first started, we operated on textbook Waterfall standards - I'd be handed an issue from my manager, I'd spend an unspecified amount of time trying to fix it or implement it, and repeat. I had no context about what my other colleagues were doing, or about the greater scope of the project. We had several projects going on at once, which frequently missed deadlines or changed scope halfway through. I might spend a day on an issue, or two weeks - there was no assessment of how complex an issue was. Due to the age of the codebase, various parts of it had no unit tests or documentation.

Some of my other colleagues proposed using Scrum to organise a new project they were working on. Issues were organised, broken down as small as possible, and progress was delivered in Sprints. They estimated their issues, estimated a delivery date for each phase, and met it. They also implemented unit tests and completed documentation for the code.

Over time this method was expanded out to all new projects, with my colleagues organised into teams who focused on one project at a time (while handling maintenance of the older system).

I've found that pairing Scrum with other modern development techniques like unit testing and MVC architecture has made the projects much more maintainable and has given the teams more investment in driving the projects.

We use three parts of Scrum - standups, weekly sizings, reviews. While retrospectives were important early on, mostly everyone is happy with the level of Scrum we practice. A key thing is to not let these meetings overrun - that seems to be everyone's main complaint about Scrum is not letting it distract from actual work, but using the time to better plan it out. My managers can see the progress of a project in rea-time as well, between reviews and looking at the team burn-down mid-Sprint. We can better track issues that people are struggling with on a day-to-day basis.

I've now found it a lot easier to deliver projects on time, and to better justify why delays occur because of the increased amount of planning. My team members are now better invested in the project and morale is much higher. I see Scrum as enabling picking up other good practices as well, but it's not worth doing if you're not also pairing it with these other techniques, or it's just a way for management to hold lots of meetings. It really requires a team-based focus, which is why I think a lot of lone wolf programmers bounce off it.


👤 angarg12
What we think shouldn't matter, instead we should look at the evidence to judge if Agile is beneficial for software delivery.

The problem is that research into software engineering sucks. The silver lining is that some people have done small scale studies on this subject.

The studies I've read range from no impact to a significant improvement of using Agile methodologies over, say, waterfall processes. This large variability is a hint of how inconsistent these studies are, but I've seen more evidence piling up in the "good" side of the scale.

However, from your loaded comment seems clear you aren't really interested in data anyway.


👤 Graffur
I have worked in projects where agile/scrum worked really well and on other projects that it did not work well. Since the process is so variable, I think it is bad for software delivery.

The parts I didn't think worked:

* Retrospectives which had no actions as an outcome

* Daily stand ups that were led by a project manager who discussed each persons work 1 to 1 within the group

* Bugs not really fitting into the flow of work

* A poor planning session can set up a bad sprint

* Sprints often ending without any working software

* Team members working in silos

* Outside dependencies blocking work

* Estimating turning into 'how many hours will this take?'

* People reporting working on two or three things every standup

* and the worst imo, work not on the sprint board that must be done


👤 MaurizioPz
As many other have already said it all depends on how it is implemented, and most companies do it wrong. Scrum is hard, not because it is difficult to do it, but because in most companies it requires a change and changes are hard. In my company we implemented scrum in an iterative fashion, changing one practice at a time, till we got to (almost) full scrum, and I like it.

You need to take in consideration what scrum makes you do (stand up meeting,...) but also what it is meant to prevent and you shouldn't usually do (interruptions and working on requirements that change daily)

It's hard but when done properly it's great


👤 axaxs
Unequivocally, NO. Please don't tell me I'm doing it wrong.

The cons are it's a huge waste of my time.

I much prefer a system where someone just tells me what they want/expect, and leaves me alone while I do it.

I have no idea how tracking should be done.


👤 gumby
I do like the standup if it really is “stand up” (so short that it’s not worth sitting down).

What I’ve seen work best is just a quick “hey this is what I’m doing today/this week, will depend on yyy” so that anyone who depends on what you’re doing (or not doing) knows; alternatively, “wait, you’re depending on my project yyy?”, no discussion except, “hey, let’s talk directly after this”.

Not for any manager’s benefit, just for each others’. Like a code review there should be no judgement. If anybody wants discussion do it elsewhere so everybody else can get on with things.


👤 kitsune_
If you want to grok Scrum you should read James Coplien's A Scrum Book or his related work on patterns.

Also, the bean counters have won. In most enterprise companies "Agile" is nothing more than top down micromanagement.


👤 simplecto
Daily standups seem to work ok for operations teams like SRE. I find it is the human equivalent of alerting and observability.

SCRUM/AGILE/whatever for development and product teams is a red flag for me. I find that bi-weekly demo days seem to set a better culture and pace for things without the constant oversight.

Sprinkle in some weekly "forums" across teams to chat, BS, and discuss issues. Invite people to bring their agenda questions, concerns, etc.

The biggest thing (especially in remote) is that all your humans have visibility to the other humans in a semi-consistent basis. The org-chart matters.


👤 tester756
I see value of daily standups and planning next sprint e.g 2 weeks and I like them

but we dropped that bullshit like "story points" - you know, abstraction over abstraction of time/effort whatever it is.

we estimate stuff in man hours.


👤 gilfoyle
I have found agile rituals like standups, retros, iteration planning meetings etc helpful because it gives multiple forums especially for junior developers to participate. These help break down information asymmetries that can creep up.

However, it is essential to keep in mind why these things are done and not just cargo cult them.

I have felt Scrum is cargo cult agile which helps non technical managers retain power post "agile transformation" in the form of "scrum master". Just that title changes the power balance in meetings and kills the spirit of what they are meant for.


👤 crdrost
Hoo nelly! You’ve asked a question that can easily get HN to write 50+ pages. Hope you like reading!

To make a meeting matter, make a decision. You can make the daily stand up ritual into something meaningful to the participants, if you recast it as “let’s decide what we’re gonna do today.” If it is just a progress update, then it can be done better asynchronously.

But, the daily stand up actually does increase productivity as a status update, if the work is not planned out properly. So let me get into what that means: in theory, on any software project, there is a dependency graph of steps which have to be done in order to achieve the next release. This graph also has implicit dependencies just because we have finite resources and one person can't do everything at once. The steps also come with some time estimate, and then we know that there is uncertainty in that estimate so we add safety buffer. Whether the work is planned out properly comes down to whether this safety buffer is spent, or squandered. If the most important thing is not being worked on, if it is sitting waiting for review say, or if it is just an ugly messy task that nobody wants to pick up: then your safety buffer is getting spent but you're not getting much for it. And the easiest place that this happens is at the start of a new release when there seems to be so much abundant safety buffer that it is now time to play and relax and experiment with random ideas. In fact, give arbitrary amounts of safety buffer to a poorly planned software project, and it will overrun whatever buffer you give it, simply because of this lack of urgency at the start, it becomes even less urgent if it's not due in one quarter but is instead due in three quarters.

So that is where standup comes in and imposes an artificial urgency. And somebody randomly happens to work on the critical path and it starts moving forward. Until you run into a big ugly problem that nobody wants to solve on the critical path, then the project gets delayed until there are no other things to work on, someone has to slog through the pain. you still miss the deadline but not by nearly as much as you were. Lights a candle under everyone's ass. It's not the right approach, the right approach would light a bonfire under one person's ass, the exact right person's ass, until they passed the baton to the next person.


👤 FpUser
I've got a pleasure to watch this Scrum thingy in action while consulting for one rather known company. To my eyes it was colossal waste of time and resources. I was an independent vendor so I did not really need to participate and only came to their offices every once in a while. Still out of curiosity went to few standups and that got me pretty depressed. In my eyes at least from what I saw the only "value" it brought was giving a job to a people who should not be let near software development process.

👤 occz
To me, Scrum is kind of like someone packaged cargo culting and started selling it as a product. All of the routines and processes that some successful team had at one point, with none of the underlying understanding. There is a kernel of Lean in there, somewhere, though. The most recent incarnation is probably the DevOps-movement. I think the principles behind Lean are pretty solid, and understanding them and then applying them in forming how your team works is a genuinely good idea. Scrum is not.

👤 jimbob45
What matters is critical thought in optimizing whichever methodology you use for your team.

No methodology works right out of the box and it’s insane to think that any could. You have to look at your specific requirements and mold Agile around your team. Agile literally says to do this but most just ignore it.

The more thought you put into your methodology, the better it will work. I know most want Agile to replace critical thought because they don’t want to have a target on their back if things go wrong but there is no substitute.


👤 dazsnow
Agile is about being able to respond to change quickly by delivering value sooner.

Scrum is a gimmick invented to sell scrum courses. It's an easy-to-understand framework for convincing managers that their teams are agile, but I've never seen it work in practice.

Some of the scrum practices - such as daily strandups - can be extremely valuable for software teams. Standups, for example, are an opportunity for alignment, or more accurately, for correcting misalignment. And like all practices, they can be practiced badly.


👤 alfiedotwtf
I’ve found that the best value I’ve ever gotten from Sprints, was to manage upwards. We had a CEO that would request features daily, change priorities hourly, and get angry when nothing was delivered.

So by having each Sprint accounted for and signed off, whenever he barged in and demanded something new, the first question was asked - what would he like removed from the current Sprint. By him signing off that things were removed, he could no longer ask why it wasn’t completed as originally agreed to


👤 dpedu
I've seen agile/scrum implemented very well exactly once. I could say some clichés about well-meshed gears. It was a great experience to work within. Was it just a well built team or did agile/scrum actually help? I think the latter based on the general ease and stability of our software releases.

I've subsequently seen agile/scrum very poorly several times within both large and small companies.

I like working within Agile/Scrum - when it's implemented well. But that's rare.


👤 tcbasche
There seems to be a lot of confusion in the comments over what agility means vs the bureaucratic cargo-culting safe/scrum nonsense that has been perpetuated by enterprises and “certification” providers.

The ideas behind agility in software development were all about reducing bureaucracy, focusing on small slices straight to the customer, strong focus on quality and testing practices and continually readjusting and improving. None of it was ever about stand ups, estimation, using Jira etc.


👤 thiht
In my team we took some agile practice and threw out some others.

We do:

- sprints

- retrospectives

- healthchecks (from Spotify squads)

- story points, and kinda compute our velocity. Well, we approximately know how many points we can do in a sprint

- say no. We routinely refuse to do stuff coming from the top of it doesn't align with our vision as engineers

We stopped:

- daily stand-ups. They're completely useless

- poker planning. We still evaluate tasks together but without the useless ceremonial, and autonomously reevaluate during the sprint if necessary. It's considered bad, we don't care, it works.


👤 tommilukkarinen
"Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress."

Sounds you would like proof that scrum does not work. Instead, how about looking at the parts that could work for your team, and discuss if you should adopt?

When we need a bit more torque, we tend to adapt more process and when we have plenty of time to waste we abandon process and take it easy.

If you are lazy and dont want to work, you probably dont want processes that expose your slack.


👤 ephaeton
The idea of the agile manifesto is great. The implementation sucks. As-is-done the value proposition of the management style is in the negative. This negative value, aka cost, is then used to support extra roles nobody needs - scrum masters, agile consultants, etc. From a, e.g., YC POV, agile is great, because you can sell useless cloud-worded services surrounding it. From a dev POV, out of the trenches, it's an annoying fad - at best.

👤 EdwardDiego
It depends on what you were doing previously.

And it also depends on how you implement it - doing it well relies on buy-in from anyone touching the dev team in any way.

So, yes it can offer benefits, for some companies, if done well.

Just renaming managers into product owners and renaming hour long meetings where you explain yourself to the manager "stand-up" is not going to get you anywhere. Doing it right involves significant change to process with no-one trying to circumvent it.


👤 tomerbd
Scrum and sprints is like placing an obstacle in front of a blind person, you trick the developers into thinking it's good for them, while you tricked them they work harder and harder and then you also trick them into OnCall so they also work at nights, give them laptops so they don't stop working from home, give them slack on their mobile so they are fully connected and here you have it .

👤 fn1
Slightly off-topic but there should really be a "no-scrum"-hiring website, which displays companies that are NOT following scrum.

👤 Scarblac
It depends on what you compare it to. It's supposed to be fewer meetings than the alternative.

Standups aren't supposed to be about managing, there is no manager present. Ours takes 5 to 10 minutes before lunch.

However Scrum has become so formalised, so focused on certifications and titles and the exact way to do it, that it's become the opposite of what Agile was trying to achieve.


👤 segmondy
The idea of Agile/Scrum is great.

The practice varies, if done correctly it's beneficial, if done poorly it's a nightmare like any poor software engineering practice. Can't tell you definitively about how beneficial it is to the software industry, but I believe it's a net positive since it has encouraged faster shipment over big bang releases.


👤 ulisesrmzroche
I’ve been thinking a lot about this, but im on my phone so quick answer is I think we should file it on the “x is considered harmful” pile.

Most people aren’t doing agile, they’re doing a custom, lightweight version of it. This is a good practice though I still think it hurts projects; but not as much as quote unquote real agile.”

Can you make it a poll? That would be really interesting


👤 natch
Define Agile/Scrum.

Oh, a few months passed?

Define Agile/Scrum again, because one of the key decision makers has moved to a different role, so we’re changing things. So what’s the new definition?

Oh, some more time passed?

More org changes! Time to change the definition of Agile/Scrum again.

Now, what was the question?

“Well if you’re doing it right, it should survive though changes of management.”

Oh ok, but tell me... when did that assumption ever hold?


👤 EamonnMR
Standup is a thing you do in scrum but I don't think it's the most important thing. I think the most important thing is getting better at estimating work over time and leading to better ability to plan realistic chunks of work, and the mindset to respond to changing plans. It lets you impose a predictable rithym on unpredictable life.

👤 itoocode
When done right Agile as a process is beneficial to product development. In the framework Scrum, dailys facilitate communication, and increase productivity.

Cons of any product development process is not taking into account human interaction and assuming a perfect team.

Build a team first, choose process to get the best out of this team be it Agile/whatever.


👤 rukuu001
A good team will produce good software, regardless of methodology.

But a good agile team will be more responsive to changing customer needs.


👤 mjul
I think it is useful to rephrase your questions to make the intent of sprints and standups more explicit:

Sprints: What are the pros and cons of delivering working software incrementally at regular intervals?

Standups: What are the pros and cons of teams members spending 15 minutes together every day talking about their work and how they might help each other?


👤 psmithsfhn
No.

That's what I want to believe anyways.

It would be interesting to see an actual study, though.

Team A does project 1 with Scrum.

Team B does project 1 without Scrum.

Let's say over 3 months.

Who wins?

We could look at time to finish, bugs, code quality/resilience, etc.

I know there is a 'study' out every other day from some Project Mgmt org saying, "500% of IT Projects are fail!", but obviously we need real studies.


👤 vgchh
"Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan" -- Agile Manifesto

Whatever we do in agile/scrum of Today is anything but that.

I am curious to know if Teslas/SpaceXes/Googles/Stripes of the world practice Agile/Scrum?


👤 piccolbo
Can anyone name a well-known important software project (say linux, python, tensorflow, angular) that was delivered via Agile/Scum? And some of you may enjoy this linkblog https://againstscrum.tumblr.com/

👤 pojzon
Agile - yes, Scrum - no.

Like with any great idea there was someone who decided to monetize it. Thats how scrum was born.

I see that with every pragmatic solution good devs try to share:

- TDD

- Agile

- FP

Sooner or later some “hot-shot” shows up and decides to “teach” ppl for money “how to do things correct way”.

After that great ideas turn into crap, because too many people want profit from it instead of learning from it.


👤 atak1
Extra bureaucracy do bring value but not for the operators. Rather, they benefit the learning of the organization at the cost of overhead to every operator.

Pros: helps team uncover and jump over costly roadblocks Cons: overhead

There’s probably a better system out there. Till someone invents it, Scrum works fine for my teams


👤 muzani
Good waterfall is better than good agile. Bad agile is better than bad waterfall.

Many places also do agile badly. The ones that have stand ups without a (certified) scrum master are likely doing it wrong and can often be anti-productive.

Kanban is fine though, and a good low overhead technique for multiple people in a team.


👤 stephc_int13
From what I’ve seen in the video game industry, scrum is pointless and often destructive.

I’ve often seen coders staring at the void during so-called standups, and very weak devs closing tickets while doing almost nothing useful for the project, because their managers cared only for this metric...


👤 djcjr
The opponent is software complexity. The task is iterate design, to create a simple solution. Money will be made or lost depending on whether the solution is both simple and useful enough.

Scrum, management, meetings distract at best, crush at worst, this critical creative process.


👤 StopHammoTime
As it's done in reality? No.

If done properly (very rarely done properly) it works as described on the box.

Most people simple use Agile as a way to generate interactive Gantt Charts that management can change willy-nilly. It's very rarely done to empower teams or improve effectiveness.


👤 steerpike
Agile is the worst possible way to deliver software except for everything else we've tried.

👤 furstenheim
I find value in part of it. Dailies I find very beneficial. You get to hear what other people are having problems with, and maybe you already faced something similar. Or the other way around, when you face it you remember that someone solved a similar issue.

👤 lifeisstillgood
Think of this as a plateau point in a new industrial revolution. Steam engines were great, and improved mines and factories - and then we had to redesign society around the effects (slums, poverty etc. Oh no wait, new housing, new cities, ... it took a while)

We are trying to build a new way of building value - this time using code as technology. My usual comparator is this is software literacy - and we need to look at the effects of the European literacy explosion of 1450's as a guide (renaissance Italy still kept glassblowers as virtual prisoners)

The things that are broken and I think in need of change

* Capital vs Management. Executives often capture too much value, and control too many of the allocation decisions. Huge corporations are inefficient - in a similar scale to centrally planned economies. (For example, I cannot imagine that Jeff Bezos spending billions on rockets is the most efficient means to produce value from those billions)

* command and control vs democracy. Again with the decisions best taken at small scale. How would your (big) company behave if instead of executives deciding which projects got what funding, it was voted upon by employees? It would be radically different. Would it be better? I imagine the discussion forums would look a lot like Linus' rants. How would we moderate that? Would hiring people be different? Would you hire someone politically different to you if they might vote against you? Would you even get a hiring decision?

* Project Management stops being about dates. This bugs me a lot - at some point all the nice agile - we need certain level of quality, story points are a measure of complexity not time, we discover as we go, all that falls apart and becomes a date in a plan at the board level. Mostly because the tools used at board level (and the mental models) cannot cope with ideas of alpha, beta, prod quality, or if this date slips all other dates slip too - cones of uncertainty are a good approach to this, as are other mapping functions about the relationships between features and capabiites. I dont have a good answer here either.

But there is a lot going on - its not a fad (ok Scrum might be, but this is not about scrum - or agile - its about how do we humans produce this new code thing at scale and change our society around it as we did in 1450 with words, or 1890 with cars.

If you have the skill to write code, then dismissing this as "management crap" means giving up an informed voice on one of humanities most important inflexion points since ... the last one.


👤 ab8
Daily stand-ups and scrum events work very well when used as a self organizing tool for the scrum team. Micromanagers are not invited. And neither are managers. (I am saying this as a manager myself.) This is what causes the process to breakdown.

👤 bedobi
Love all the comments to the effect of if agile/scrum/other buzzword isn't working, it's because you're not really doing it/you're not doing it enough/you're just cargo culting it bla bla bla

👤 mixmastamyk
It’s great in theory and sometimes in practice. However it’s also a dangerous tar pit for rule followers.

Whatever you do, make sure you review all procedures to decide if they make sense for your team. Don’t follow them blindly.

Kanban is an approach with less ceremony.


👤 elindbe3
I think it depends on what the Scrum/Agile process looks like and what it is replacing. For example, I think its pretty useful to have an iterative forecast of achievable work rather than a huge BRD and a solid deadline.


👤 g051051
There are no "pros". Agile was created by consultants to sell consulting, and the so-called "Agile Manifesto" is nothing but silly aphorisms unrelated to the task of developing and delivering software.

👤 anothernewdude
Can be, but the last place I was in that tried to adopt agile ended up changing managers, and now have one guy assigning tickets and expecting people to show up to "his" stand-up meeting.

I wasn't the only person that left.


👤 andrei_says_
I recommend the “Agile is dead (long live agility)” talk by Dave Thomas, one of the creators of the Agile Manifesto.

https://youtu.be/vqz8ND-N1hc


👤 comprev
It's all about cutting the time in standups down to a bare minimum. I don't care what you did yesterday, I want to know in one sentence what you're doing _today_ and if you're blocking anyone.

👤 heywherelogingo
They're patronising, micro-management that might work on juniors, but are offensive to anyone else. I can't stand them, and have only seen them cause harm. Monotonous, tedious, theatrical speed bumps.

👤 stunt
Have you heard about DarkScrum?

The Agile manifesto doesn't talk about roles or how the process should be, but Scrum does it.

Agile itself was introduced by bunch of software engineers came up with the Agile manifesto. It's simple, abstract, and effective. There are many successful tech companies that already have something more extensive than Agile. Agile manifesto is just a good starting point if you don't have anything in place.

But somehow Scrum became the recipe to implement Agile and we ended up with a job title called Scrum Master which has been increasingly taken by non technical people inside traditional organizations.

I've seen teams that implement Scrum by the book. They have a person called Scrum Master that facilitates all team meetings. It basically turns other team members into reactive players instead of proactive. But, do we really need a person to facilitate team meetings and ceremonies?

I talked with a few Scrum Masters, their job satisfaction is actually very low and even though they don't admit it to their own team, they don't believe they are adding real value. What they all have in common is that they all want to switch to a different role and they are looking for an opportunity.

I couldn’t find anything similar in other industries, and it's hard to find a successful development team that implements Scrum by the book. What you find most of the time is what is called "other Scrum flavors" and I think that's a problem in our industry. What many teams are doing isn't Scrum, but anything that has a short release cycle, a daily update in any form, and a retrospective is called Scrum.

The irony is that most of the Silicon Valley and successful tech companies don't use Scrum at all. In fact many of them don't even label what they have as Agile.

What is happening right now is many companies wasting lots of time trying to implement Scrum by the book until they fail and move on to something that they call a Scrum flavor. I think we should stop calling it Scrum so others don't have to repeat the same mistake again and again.

If a team fails, Scrum compares it to its book and says the team failed because they didn't implement Scrum properly. And when a team with one of those so-called "Scrum flavors" is successful, Scrum takes all the credit.

I personally think we should kill Scrum. We shouldn't advocate it and we shouldn't call any team with a daily update a Scrum team. Many successful tech companies don't use Scrum, but they aren't vocal about it.


👤 timmit
I cannnot say it is benifecial for delivery, but it is beneficial for engineers, cos' focusing on processing not the results.

A good agile process, make development work less stress.


👤 chriskanan
Has anyone here used scrum for research oriented machine learning projects at a company? How well did it work and if it worked well, what tweaks did you make, if any?

👤 closeparen
Considering that “old-school non-agile” can mean many different things, it would be very surprising if Scrum were uniformly better or worse than all of them.

👤 k__
Depends what you build.

For experimental stuff, agile could be good.

For product stuff, Scrum could be good.

For commodity stuff, six sigma could be good.

Using one of these for something it isn't meant to do will lead to failure.


👤 mempko
A lot of people misunderstand scrum. It doesn't slow you down but speeds you up. Why? It enpowers the team to cut out all the bullshit.

Standup is a status meeting? Who told you that? It's a planning meeting. You plan the day with your peers. If you do it right you don't have to talk to anyone the rest of the day and just flow.

Don't listen to the consultants. Learn about real scrum from here. https://sites.google.com/a/scrumplop.org/published-patterns/...


👤 frugalmail
Scrum is a ridiculous waste of time today due to non-software savvy (as in aren't afraid of code) folks polluting project manager, product owner, product manager, and software manager positions.

Tickets come flying in, blockers get turned into a mountain from a mole hill, planning meetings are multi-hour time wasters, retrospectives cover the same things, and everybody is just nice to each other rather than raising their concerns. Deadlines are a fallacy, other than giving substance to these ritual meetings.

Kanban makes so much more sense. Allows estimation via cycle time


👤 nobodyandproud
Done right, I see scrum as a good way to get a team ease into an agile methodology.

What bothers me is that scrum masters are being groomed as the next-gen MBA.


👤 forgotmypw77
out of many places i,ve worked which practiced agile, only one did it well. we spent entire day on planning, another entire day on retro. we broke down tasks to no more than three points. we did not try to squeeze out more than possible. our software turned out robust and reliable, and our estimates were spot on. everyone was happy. the key was the manager.

👤 ojciecczas
Yes, because the developers understand better what brings the money, so they invest their time and resources more efficiently.

👤 droobles
no

too much chin wagging, not enough building too much synchronous communication

for being called agile you don't build software very quickly with it


👤 rajacombinator
Of course not. But it’s good for the manager industry. Slow the gears down enough and create more and more overhead.

👤 musicale
I've never found any advantages from daily standups.

As you note, disadvantages include micromanagement and perverse incentives.


👤 geocar
Yes. They make it easier to co-manage larger teams with people with drastically different philosophical opinions and can (if well-trained and practiced) help avoid burning out your team.

That is to say, in a lot of ways a small clever theologically-aligned team is going to be better. But if there’s a good reason you can’t have that, scrum can help you make the most of it.


👤 st3fan
Scrum is not agile. You really should not write scrum/agile. That is just as bad c/c++ :-)

👤 thrower123
No, as generally practiced, it is not of any value aside from keeping project managers busy.

👤 rtkwe
I think there are types of projects where Agile/Scrum works well and makes sense and that's mostly in web or direct customer facing applications and especially in those with either very quick or already setup infrastructure. There small changes can be presented quickly and iterations can be fast.

Unfortunately I've been working in backend data movement since college where the final product is very well defined in the old waterfall model. Our intermediate tables aren't any use to the internal customers and there's not really much iteration needed, they come to us with data that's somewhere other than where they need it and we bring it to where they do. Recently though our org has taken to Agile/Scrum and the results are a little painful especially with our projects that require significant infrastructure setup, all of which is owned by external teams often understaffed so their backlogs are weeks to months long and while we're waiting on provisioning or approval from governance we're stuck looking for stuff to do that will meaningfully move things forward.


👤 godisdad
A fun game: try and guess who the ICs are in the replies and who the facilitators are

👤 molsongolden
Is the goal to deliver software or to deliver value/solutions to the users?

👤 slackfan
For software delivery? Absolutely.

For engineering and software quality? Absolutely not.


👤 markus_zhang
Instead of standup I think we should do more interteam meetings.

👤 master_yoda_1
I am not even understand the purpose of manager in the team.

👤 nottorp
Part of the original Agile concepts make sense.

The rest is just a religion.


👤 xtat
Neither of these is valuable in my experience

👤 cmrdporcupine
I worked in a couple shops that did XP ("extreme programming") in the early 2000s. At the time this was a kind of progressive movement, associated with empowering developers, came out of the Smalltalk world and other "odd" places, was associated with a rather more grassroots engineering culture. Prototype and iterate. Very different from "classic" engineering orthodoxy. At the time very new, and came along with a bunch of other stuff that promised more rapid development; heavy object oriented dev, dynamic languages, test first design, etc. etc.

I had mixed experiences with it but absorbed a lot of good lessons. While I can't speak to "scrum" that much (I've seen degraded forms of it a few times but not the actual "real" thing) I think many of those fundamentals have been lost in the intervening years... err.. decades (cry).

Two things key for me, that it seems that people don't care about anymore:

i. Developers doing their own estimates. Absolutely essential to managing scope. This one always goes out the window or gets ignored first. I have worked in so many "agile" teams that would choke on their own vomit before taking the power away from managers or "experts" on the team to decide how long something will take. If this is the case, there is no point in scoping in an "agile" process anymore. You'll just have to crunch to meet their deadline, and that's that. That's not "agile" that's "sweatshop." (Or, if you routinely blow out / pad the estimates too large to compensate... inefficient)

ii. Ship the minimal viable product, and then iterate on it. You ain't gonna need it, etc. Release frequently and often and in small chunks. Absolutely foreign concept to most of the recent UX and PMs I've worked with, especially at BigCo, who treat the design doc / mock / spec as the finished product, with the actual development just being a kind of "last mile." Want to know what changed between their last giant spec document and now? Read the whole 50 pager again. My wife was taking UX design courses and even there, while paying lip service to agile there was all this type of "produce a planning document" with big upfront information hierarchies and total project design. And yes, even working in embedded and other things not front facing, I found this to some degree. A fear of iteration, still. The act of forcing the customer or PM or whatever into a discipline of an incremental thought process honestly helps with frequent delivery, and keeps the process responsible to the user, the real final customer.

What is so often missed is that agile in the classic XP sense was an exchange, some compromises: I (the engineer) agree to work rapidly and ship frequently and to give you great visibility, but you (the customer) agree to be provide me with constant feedback and prioritization, to accept my estimates/scoping, and to think incrementally and practically about what you want now rather than what you think you might need 6 months from now.

Daily standups and iteration meetings and story cards? Handy. But these are just part of the mechanics and can easily devolve into theatre or pantomime of "agile" if the other pieces aren't there.


👤 dccoolgai
My pithy quote about agile is how much it is like communism: 1. Both started with a manifesto. 2. Both are meant to deliver some downtrodden group (serfs or developers) from their lowly state but end up making it worse. 3. Any criticism of the obvious flaws in both systems will elicit wails of "it works, everyone else just did it wrong"

👤 anewguy9000
let me also ask you about timesheets...

👤 ChicagoDave
Old school team management was always a disaster. No project manager in my 36 years of software development could ever accurately "estimate" the level of effort for developers. Asking us to estimate was never helpful either.

I've worked on scrum and other types of agile project management over the last ten years. In that time, I've seen many bad implementations and only one good one. At Redbox, they had it down to a science and it worked perfectly. They had meetings for developing stories run by business analysts. They had sprint planning meetings run by scrum masters that only involved fully vetted and story-pointed stories. They used Fibonacci numbers for voting and everyone had a vote, including the QA people. They had QA people! We only started a sprint if everyone agreed on the stories. We (the developers) selected stories. We were never assigned anything. Stand ups were very quick. What are you working on, what did you complete, do you have any blockers.

The entire point of agile/scrum is transparency and to focus on delivering incremental value. Over time, that value can be packaged and reported upward to show management what features are being added or improved. No one can hide. If you're not pulling your weight or invested in your work, everyone will know within a day or two. If you legitimately have issues with your assignment, you need to communicate that and the team will help you.

The issue that comes up over and over with agile/scrum is how management and budgeting interact with the backlog and prioritization. There is often zero trust from the people writing the checks on "incremental continuous delivery". They want feature X boxed and completed by an arbitrary date. In my experience this _always_ fails. What you end up seeing is "something" being delivered by that date, but with an "acceptable" number of "defects". Which is to say the entire feature isn't really complete and everyone has agreed to lie about that fact.

So continuous delivery via an agile process is the only way to do the work and make sure things stay on the rails. The harder problem is getting people in management circles to understand this process and embrace it and set aside their old school project success reporting techniques.

Like I said. In ten years I've only seen this done well once. And then a few places did it "okay". Most places do what everyone laughingly calls "fake agile", which is a mix of waterfall and agile.

Don't get me started on things like SAFe or Pivotal. Those are ways of putting process behind agile and that breaks one of the primary tenets of agile. People over Process. It's also clearly an attempt to monetize agile through testing and certification or by putting an app in front of it.


👤 Emigre_
The concrete "how it's done" and the "culture" of the people involved - how they behave with each other - will influence your experience with them much more than the ideas behind these methodologies. I've had a very positive personal experience with them, and I can give you a point of view as to how they work and why they can be a positive way of working.

Regarding the "standups", for example, they are definitely not meant to be about "micro-managing", "signalling process" or any kind of "status report" (definitely not to a manager!). The idea behind these kind of agile methodologies is to allow teams to self-organize. The standups are meant to be a brief way for the team members to catch up with each other, and seek help if necessary. There's no need to say anything if you don't feel that you need to sync with your team members, and it's definitely a way for managers to control what you are doing. When done right, they are short, concise, helpful and positive. The same idea applies to the "retrospectives". Don't call them that if you don't want, but it helps to get together as a team and see what you want to change in the current "way of doing things" - and it's good to actually have the autonomy to change it!...

About the concept of "sprints". Dividing work in sprints is both about planning and, again, about self-organization. It's about fairness in a way: leaving developers the time to deliver something, in a way, "protected" from route changes and with a clear goal of something to deliver. But it's also about not setting up goals too far in the future. Because the goal is set up in (usually) a couple of weeks time, the results can be analyzed and the product, or whatever, developed incrementally, with management reviewing the progress bi-weekly. You wouldn't want to set a goal three months in advance and discover at the end of that period all the things that you assumed were one way that were actually not that way.

"Agile" touches several points and one of them is that during work it's important to talk face-to-face about requirements and how whatever you are building is meant to work. That is, as others have commented in this thread, that it's a good thing to have a conversation during development with whoever is the representative of the product side of things to solve doubts, instead of relying on a list of requirements.

That's, from my point of view, less bureaucratic than a formal process. The regular meetings are also meant to be lightweight and to the point. You don't have to have a highly formalized process to "point" tasks. The underlying idea is to try to allocate a reasonable amount of work to a certain period. That also does not mean that bugs or unexpected issues can't be fixed during the sprint - there are ways to make all that work.

You have to understand what all these practices are for, the ideas behind the whole thing, to do them right. And you have to work with people that behave in a certain way, that have a certain good will, that have a certain working culture, the righ experience, etc. The particular circumstances will make all the difference.

I think that seeing some of the answers in this thread it seems a little bit discouraging, but, in my humble opinion, one just have to be lucky, find the right company and the right people to work with. I hope that my personal perspective helps.


👤 Malisman
This one will be long ;)

First of all, I would like to address the "haters". They rant on and on about how Scrum does not work, how its slowing them, unnecessary meetings, etc. But if you look at what they say, it's always the same. They screw up, did not used it correctly. Its like when you want to cook a dinner, and burn yourself instead. Do you blame the fire? Or your stupid ass? :D

Scrum is not a silver bullet. It is not useful everywhere. For example for very small teams, who have like one, standalone responsibility, they know it well,... having Scrum is a waste. All they need is someone who will be able to give them (feature) request and they will do the job well. They are essentially self-organized.

However, for bigger teams, more complex product, more teams involved, this does not work anymore. One guys can THINK he is the owner because he coded that particular component, but there is another owner in second team and they clash. Often times people work like crazy, but the whole product does not work. All the pieces are there, but they cannot work together, gazillion ideas how to make it work, ego-driven heated discussion how we should use this library instead of this one. How everyone else is stupid because they do not integrate with us first, etc.

Scrum it is NOT a waste of time. Any fool that say a 3-4 hours during two weeks is great waste is total junior. That amount of time will never ever mean difference between "job well done" and "oh no, we fucked up again". If you are desperately thinking that the extra hour you spend coding instead of 4 daily standups (15 minute each) will save your product, then you already are on the edge of "crunch time" and doing something incredibly wrong.

Scrum - when implemented properly - provides many benefits:

1) Little to none micromanaging: The amount of micromanaging and reporting is lower, because your progress is visible without the need to actually report to the boss.

2) More option for your own time schedule: If the team evaluates that something is "hard" and give it huge number of storypoints (if you use SP), you are expected to work on it for some time and no-one will bother you like every half a day.

3) Predictability: business oriented people can easily "calculate" the time of delivery based on your predictions/estimates. You are shielded from that bullshit AND you are earning more trust every iteration, which means you have more option to do it your way.

4) Knowledge is shared: there are no silos, everyone potentially can work on anything within the competence area of the team. If someone gets sick, work just don't stop because the "owner" of the lib is out and we know nothing about it.

5) The power to stand up to the brass.

And others, I personally value those the most. And you can achieve some of those using different frameworks, but Scrum is proven to work the best all around. Also important note is that there are some basic rules for Scrum, but most of it is just recommendations. If you follow the book to the letter and do not adjust for your team, you are screwing yourselves.


👤 anonyfox
Disclaimer: My job title is "LEAN architect", so I might be biased here.

The point is, "agile" emerged from accepting that building new things primarily deals with the uncertain. You plan something, and then there are the "unknown unknowns" where things will take orders of magnitude more time than planned. Additionally, more often than not it isn't even clear how the solution actually looks like or if the stakeholders even articulated what their real problem is. So the solution: just start with something and then establish a short feedback cycle to steer the next steps in the right direction, which wasn't obvious in the previous cycle. Therefore all the ceremony, like doing daily standups to resolve problems that arrive while iterating the problem space, or retro/review where progress gets presented and the next steps are agreed upon. The heart of the principle translates to "be flexible" in the face of uncertainity. This also implies that the team is trusted to decide on the spot.

In reality, "Agile" often comes in the form of something like "Scrum", which isn't agile at all. There is ceremony and cargo-culting how one should behave without any understanding _why_ to do things. Management gets sold the idea that they get a tight grip on all decisions (Micromanagement) and can closely "watch how workers perform" with a short feedback loop. Because "we cross the bridge when we come to it", all the "engineering" parts of software development are thrown out of the window and essential things like caring about sound architectures/maintainability/... are supressed. This gets even more emphasized with the usual mindset of "Velocity", translating to managers as "build more features faster, now!". This in turn leads to some early successes but mostly turns into swamps of unmaintainable glue code and after a while the voices wanting a "rewrite" become louder... back to square one. Oh, and do not forget that "Backlogs" (especially with months/years ahead planned and communicated with stakeholders) are just chunked Waterfall processes without any flexibility, ironically killing actual flexibility. Daily standups become just virtue signalling happenings where everyone agrees that they're "on schedule" or "things will take longer".

There ARE teams that deliver high-quality solutions without getting slower over time using Scrum, but know what? These teams would achieve the same with any process, including some internal Waterfall variations. Great/experienced people deliver great results, even more so if they can act autonomously.

So instead of some magical "Agile Processes" that everyone has to follow and great results will appear (in reality: they won't), my job is to increase the chances for actual success in the real world. How? by following some LEAN values (instead of processes). But here is the next catch: there are huge misunderstandings about LEAN when it comes to software development!

Classical "LEAN Production" comes from a world where physical things are manufactured in large numbers, basically doing the same thing again and again, and tries to optimize how to do this thing better/faster/cheaper. In software development the root problem is inversed: we are never actually doing the _same thing_ more than once (except cases of reinventing the wheel). All attempts to use classical LEAN Production techniques to software projects will fail miserably (except you have awesome people to begin with, see above).

Then there are the "Lean Startup" people which start with the actual problem space and cycle in "build measure learn". Makes absolute sense if you are a startup and have to find _something_ that sticks. The problem: teams that act like this are doing the job of actual business founders and require the trust to change the business itself. This doesn't work within a traditional company when you have executive teams and a management hierarchy.

So what could be done if these things don't work? Dig deeper and formulate _values_ everyone should follow. Examples:

- "decide as late as possible" -> do not lock yourself in hard technical dependencies (this will only run with MariaDB v123 on Google Cloud with Setup ABC) early on, or else you will have a hard time being flexible (like migrating to AWS Lambda because some compelling technical/business reasons). Yes this way is not able to leverage minute features of a ultra specialized solution, but chances are high something generic will do (like: we need a sql database)

- "build quality in" -> in many cases it does _not_ take significantly longer to build something that is well-tested, decoupled and documented than to hack something together, especially when you are building it right now and have all requirements in your head currently. In fact, most code that is designed with maintainability is more on the side of an asset (you can build on it) instead of a liability (should be replaced in the future/does not get used because noone understands it or its purpose/... bitrot.). So when your building blocks are actually solid, you may even become faster, which often shows in mere _weeks_ after a project starts.

- "Eliminate Waste" -> the posterchild value of LEAN... but the quintessence. Everything that prevents the team/individual to make relevant progress right now must be stopped. Relevant progress is anything that produces value for the customer (read: _not manager_!). Waiting hours for feedback if a code snippet works? Make it fast. Sitting in pointless meetings or ceremony processes? Cancel them. Deployments/Builds need mental energy to execute? Automate it. "Feature Ideas" from managers? Let them prove that it WILL bring customer value, ideally: how much. Can't stress this enough: do not build anything that does not clearly increase customer value, no matter who demands it internally, never follow the "what if..." rabbit hole or you end in feature creep and potentially dead code areas that still cost maintenance.

... and so on. You can google more infos about "LEAN Software principles: if you want. The main takeaway: act based on clearly defined values _enables_ actual agility, acting based on arbitrary processes (like Scrumfall) _decreases_ actual aglity.

But even this (my) approach has a big downside: success is measured in ... success. Whatever the Team does, they must show that there is a measurable business impact, or share why something failed (so that bad ideas will not get tried again later... and again...). This is a stark contrast to the "virtue ethics" approach many are happy with, where "trying with best (displayable) effort" is good enough and gets rewarded. I will just look at the outcome: what did you do, was it executed as good as possible within given constraints, and which impact did it have, followed by the question: what did you learn and therefore what is the next logical step?

Many people still prefer to work without the "pressure for success" for 8 hours per workday and go home, where working is just the thing one does for earning money. No issues with that, but chances are even LEAN will not work when you only have people with this mindset. Not disciminating, just my experience.


👤 notmars
After 14 years of trying and helping teams experiment, repeating what other have said, here is what we’re doing nowadays:

- don’t mix up Agile with Scrum...

- see Agile as aspirational (aka read an try very hard to go back to the manifesto to clear the clutter)

- see Scrum and XP as tools

- prefer XP to Scrum : yes, it’s better to have good software in the middle of a shitty process than a good process around a shitty software. believe me, good software, even in nightmarish organization can bring joy. don’t be the opposite. :-)

- be concerned about the internal well oiling of the team first and the the product: same than with the process, a good team can course-correct a bad product decision or a user backslash (to a point), the opposite is way harder...imaging trying to keep your users telling them your product is superb, it’s just that the software works half of the time...

For the’code part’

XP if you can/know, or just start with automation (basic ci/cd or cr, tests). Then raise collaboration by making it easier to ‘code together’, agree on ‘code expectations’ and communications expectations whatever that means for your lot. THEN everybody should approach their ‘quality standard threshold’. The way is just up from there: code coverage, TDD/BDD, code review, IaC, you’re already pretty ‘software agile’ at that point, but like a circus artist, reach for always more agile

Next the ‘product part’:

That’s where most Scrum consultant will hammer you with the dailys, the demos, the ceremonies and all. Back to the manifesto. Learn what your people like, what and when it makes them productive. Make it weird, unwieldy but a perfect-fit for you all.

If a consultant looked at it, it should say ‘oh, ok, that’s a weird way to do it, but I guess it could work’.

To put my money where my mouth is, here is what we do (but it’s full of our remote, bilingual, socially multi-diverse quirks).

We start and end at a demo to our C-level and business ‘patron’.

Just after the ‘last one’, we pick what we will try to demo next time. We talk about the value of it. To whom in our demo audience/user it should evoke excitement. What would be ‘minimum’ otherwise we dont show up. What would be ‘nice’ and what would be mind-blowing. We all agree what a user should see. We settle on it for the next weeks (yes, no prefixed date). In general there’s one or two ‘big things’ that would constitute ‘the meat’, we create one/two sufficiently descriptive stories with personas that should match what we discussed for the demo and Condition of Success in JIRA and put it as In Progress. Everything else, except production issues, is considered unimportant and optional. If one of us has time during build or waiting for a review, we tackle the ‘little things’.

The PO/Business DoppleGanger goes get what we need to do all that (wireframe, design, translation, legal wording, marketing spiel,...). He/She works directly with the devs that need it. We meet every Thu and Fri for 5/10 min (usualy, max 30) entirely to make sure sub-groups or individuals are not missing on what other will be doing and profit from it. We talk about what we’re working on next not the past (the past is done, stop wasting time talking about it!!! :-)). No task, no story bs, no past ‘blocker’ discussion lingering. If people want to track their stuff in github issues or JIRA, they do it on their own. But they better make sure it’s tidy and up to date cause we do not accept messy backlogs.

In between those ‘bi-weeklies’ if someone in the team need to discuss anything or are blocked, they shout on Slack and wait. If it’s an emergency, they send a mean Giphy. If they really need someone, they DM a lead. and so on. People own what/how/when they do 200% up until we approach the end of the 2 week threshold.

Then it’s about all that we achieved. The big question is asked ‘are we ready to demo’? If a majority don’t think we have enough to show, we wait another week and ask the same question. Then week 4, same. At that point we need to have a freaking good reason not to be showing something after 4 weeks. Even if it’s minimal. Even if it’s a bunch of HTTP calls and some JSON.

And we cycle.

In summary:

- 2 meeting of max 30 min (you can drop of after that)

- lots of behind the scene ‘ad-hoc’ interactions per need (that respect a ‘rule of engagement for collaboration’ the team agreed on, btw)

- 1 demo, tailor-made to the actual delivered value by the team (not the dreamt one) every 2, 3 or 4 weeks

Practice wise: IaC all the way (tks Pulumi and Google Cloud team), CI/CD (with real automated delivery not CR), code-review using PR and on-demand env, fully diamond-shaped code coverage, dependabots and automated CodeSec audits, conventional commits with semantic versioning, and we’re just starting.

-> No planning (except the 40 min discussing the next demo just after the current one).

-> No poker estimate. In fact no estimates.

-> No backlog burn downs and cycle time and resolution time...

-> No WIP (technically, yes, this is Scrumban-ish with a WIP of 2...).

We do one quarterly product vision discussion with everybody that feeds team growth and high level product roadmap (no precise estimates, in terms of Q or 2 month span).

That, I believe, can be called agile :-)


👤 tikhonj
Scrum is like PowerPoint or C: I'm sure it's possible to use it mostly well, but its defaults actively push bad patterns so the vast majority of Scrum implementations are actively counter-productive.

In the most common case I've seen, Scrum quickly devolves into Scrum-flavored micromanagement by some combination of actual managers, business teams and "product owners". Short sprints, daily tracked tickets, process-based decision-making... all effective at taking away autonomy from the people doing the actual work.

Even if you avoid the worst sort of micromanagement, though, Scrum still has fundamental problems. The process is primarily team-oriented, which sounds great until you realize that it's creating strong psychological incentives through peer pressure—and they're the wrong incentives. Standups, Sprint Planning, velocity... etc all push people to hyper-focus on small tickets with tight deadlines without considering the broader context.

I've seen this create massive problems on teams:

1. People feel siloed on their "assigned" tickets. Having constant public deadlines means that everyone feels pressured to make visible progress on "their" work which actively stifles ad hoc collaboration. On Scrum teams, I see people guilty for asking their teammates for help!

2. For the same reasons as 1, people feel pressure not to work on anything that isn't "their" ticket. In my experience, the best way to maintain a quality codebase is for everyone to fix small problems as soon as they see them; while this is possible with some Scrum implementations, you're fighting the current. This also robs people of any ownership over their work or their code, which is another key component to quality software development.

3. Scrum incentivizes consistency above everything else, whether impact, progress or work quality. Teams get bogged down with technical debt that accumulates gradually enough for estimates to adjust, but they continue to look productive anyway. After all, slow, incremental progress is actually more consistent than fast bursty progress!

4. The nature of the processes pushes individuals away from understanding the broader context of their work, and encourages managers/product owners/etc to communicate at the wrong level of granularity. Instead of giving programmers the context they need to make effective tactical decisions, Scrum pushes for trying to adjust work through small, artificial tickets. Too much information flows from the team and not enough to the team. I've seen managers get annoyed that their programmers don't seem to care or understand the broader context of their work—where's the passion!?—but how is anyone going to understand or value context if they don't have the space to make any real decisions with it?

5. Constant public deadlines absolutely destroy psychological safety. The teams I've worked with using Scrum are consistently under more stress than other teams. It's no surprise—needing to show up to a standup every morning to say "I'm still working on X" is pretty depressing, no matter how much impact you may have in absolute terms. The process provides plenty of ways for programmers to feel like they're falling behind or letting the team down, and provides no real upside. There's little room for real creativity or agency within a heavily process- and ticket-driven system; the best you can hope for is doing your assignments faster. How can anyone really excel in that sort of setting?

I've been working in Target's AI/data science team for almost five years now, and I've worked on and with teams that were heavily into Scrum, teams that didn't treat it too seriously and teams that operated with minimal-to-nonexistant processes. Some Scrum teams did okay and some were complete trainwrecks. Much lower-process teams weren't always great themselves—there are a lot of ways to bog down software development!—but each of the most productive and innovative teams I worked with was on the low-process part of the spectrum, and people working on those teams were noticeably happier.

At this point I've spent enough time both observing and thinking about Scrum-style processes to have some strong conclusions:

1. Process imposed from the outside is usually awful. Scrum especially so.

2. Process legitimately adopted by a team can be okay—even Scrum—but still has a real chance of backfiring. Scrum especially so.

3. You don't need process for poor management, but the two seem to go hand-in-hand.

4. The best teams have leaders—formal or not—who effectively communicate context, motivation and direction then leave room for individuals to figure out how to get there and how to communicate up about it.

Now the challenge is how to help incubate environments like this myself, and how to judge whether future teams and companies have a culture like this or not.


👤 ysavir
Agile and Scrum are different things.

Agile is the recognition that that in the modern world, especially in digital products, we learn new information faster than we can act on new information, and so we benefit from structures and "processes" that allow us to discover and act on information as quickly as possible. "Processes" is in quotes there because this usually translates to a _lack_ of process. Formalized process slows things down and agile wants to act fast. Agile prefers for us to live and communicate in the moment rather than through some structured form. This is also why agile tends to be a bottom-up organizational structure, giving the most agency to the people doing the work rather than managers and middlemen.

Scrum is weird, and very, _very_ misunderstood. Scrum, at its heart, is trying compensate for one of agile's "weaknesses"--or at least, what many organizations might view as a weakness: disempowered management. Most organizations aren't willing to adopt the agile values that allow them to move fast because it means higher ups have less direct control and visibility into what's going on. Scrum tries to compensate for this by introducing an agile-flavored framework that isn't really agile, but can provide organizations that won't adopt agile values with structure that can still give them a bit of what they want (namely visibility) while providing some of agile's benefits.

Scrum's Achilles Heel, however, is a tragic one: Organizations that aren't willing to adopt agile's values aren't likely to adopt Scrum's values either. So despite all the effort and "restructuring" organizations put into place to "do Scrum", they end up with the same values and processes they were already using, but now with a Scrum-like vocabulary. This is why Scrum gets a pretty bad reputation: At its best, it's not as good as agile, and at its worst, it's twisted into a mask for the processes that were the original problem. You're usually better off either doing straight agile or not bothering with either.

As for the pros and cons of the concepts and meetings, let's clear up what each of them is about:

Standup - Often used as a daily check in. This not the intended usage and doesn't do the team much good. A well-used standup is simply an opportunity for team members to expose any blockers they're encountering so that others might jump in and help if they're so able. If the team has good communication habits already, a daily stand up won't bring them much benefit. That said, it's also serves as an opportunity for shy team members, or those who don't want to bother people, to regularly get a chance at communicating their problems, so it can be practical depending on the team's personalities.

The Sprint - Most teams think of the sprint as a unit of time around which they should plan work. This is incorrect; in fast paced environment, there's no such thing as planning work reliably enough that you can assign just enough for the sprint's duration. There are too many unknown unknowns for that to work.

A sprint is the maximum amount of time the team goes between syncs about the priorities, current problems, and what works needs to be done. Sprints aren't about planning out work and getting to it, they're about making sure the team regularly aligns itself on the important things. To accomplish this, we usually have two meetings per sprint:

Grooming - A session in which the team comes together and reviews all the upcoming work, changes, etc. The goal is for everyone on the team to be familiar with what's being worked on, how the product should behave, and that product definitions/specs are clear enough for work to begin.

Retro - A session in which the team can explore organizational or other obstacles getting in the way of productivity, and then collaborate on solutions to these problems.

Checkmarks, point systems, velocity tracking--these do not contribute to productivity and are not worth incorporating into your team. Usually, the people that benefit from these are not the people who benefit from productivity, but the people who want to have "data" they can use to prove to _their_ manager that they're doing a good job (and deserve a raise/promotion).

There's a lot of depth to agile, and done properly it can be a huge boost to fast-moving teams. But it's also very easy to get lost and go down a bad road that satisfies no one. Agile is worth pursuing, but only if you have a good guide that can keep you on the right path, and the full buy in of the organization, so they don't pull out on you halfway through.

Credentials: I'm a certified level 1 Scrum master.


👤 matthewmacleod
At the risk of being reductive - yes, it’s fine. Most of the complaints you see are a result of people basing their opinions on whatever broken processes they have at their broken company which are kind of semi-agile, and this applies to the caricature you paint as well.

You cannot fix bad management or ineffective teams by applying a methodology, and many companies have both broken management and broken teams. Sprinkling “Scrum” on top won’t fix that, and there’s a widespread failure to realise that the symptoms people see are not the result of Scrum or Agile or anything else, but would exist regardless of the development process being used.

So, for example of how I find this working well: total process overhead for my teams is about two hours a week, averaged over the two-week sprint. This incorporates all of the planning, reviews, and daily standups. Outside of rare or one-off events like project kickoffs, post-mortems, or long-term roadmap discussions there are no other process-related meetings.

Daily standups are very much a “good morning” meeting to say hello, discuss plans for the day, and make arrangements with anyone who wants to team up or get some input from others. 10 minutes maximum. Development team and product owner only.

Fortnightly review meetings are the chance for all of the teams to get together and briefly talk though what they’ve been working on, since they don’t necessarily interact with each other all the time. This is a good chance to highlight anything that might affect others or ask any questions. 30 minutes with all the teams, including business development, management etc.

The retrospective is a chance to flag up and discuss any general issues or ideas - maybe proposing spending some time on fixing a frustrating bug, calling attention to something you’ve found that works well, or proposing some process change. Also a chance to thank particular people or teams for stuff they’ve helped with. Another 30 minutes again with everyone.

And finally the planning meetings. Reviewing what was completed and not completed in the previous sprint, picking out the tickets (from the backlog of work) that we want to do for the next, and then running through them to make sure we have all the details required for each one. Maybe adding some additional tickets for anything that’s missing. Then a quick planning poker estimation of story points, agreeing on an estimate for each amongst the team, followed by comparing the total estimate with the previous sprint to see if it looks roughly in-line or we have tried to pack too much in. Usually 1 hour, developers and product team only.

The developers will also spend a bit of time over the course of a sprint documenting anything they want to do as a ticket and collecting the appropriate requirements. The product team will also file tickets for anything that has to be e.g. delivered to a customer, as well as long-term roadmap items that form the bulk of the work.

That’s basically it. There are no teams of bureaucracy, or micromanagement, or “progress signalling”, or reporting, or piles of useless meetings. Just regularly checking in with each other, and periodically reviewing and adjusting what we are doing.

The goal of any of these systems is to help produce quality work at a steady pace. Take the bits that work and drop the bits that don’t. We have small teams so I’m sure the nature of the process will change over time, but I’ve worked with far larger teams that were pretty much the same.

Honestly, at this point I find it hard to think of a method of development I would prefer.


👤 imvetri
Don't think, just do the job.

👤 danjac
Supporters of Scrum remind me of the people who say Communism really works, it's just been implemented poorly.

👤 jimmyvalmer
Speaking as someone from the financial world who was shocked to learn about daily standups, no, agile is complete * invented and promoted by non-technical armchair lieutenants.

Mba-speak, translated:

Value prop = You don’t really need this

Data Science = Not a Real Science

I have it more or less working = It’s not working

I got it working = Please don’t ask me about this anymore

Does this make sense? = Are you even listening?

Let’s stop talking about talking about the issue = We’re halfway through this meeting

Please enter a jira estimate = I am or want to be your boss

Quick stand-up = I’m interrupting your flow

Daily stand-up = I’m interrupting your flow every day

PM = Tom Smykowski

Product = Paid Intern

Feature complete = See “I have it more or less working”

Deep dive = I have no intention of pursuing this

In-flight = I enjoy dramatizing the trivial (See “How Can We Land the Plane”)

This is not intended to offend anyone = This probably offends everyone


👤 cynoclast
>Ask HN: Do you think Agile/Scrum is beneficial for software delivery?

Yes.

>Besides being a dream for micromanagers, it seems to be more about signalling progress vs. actually making progress.

It is. Management being able to change direction every 1-2 weeks is fantastic for management but can be really bad for burnout.

Every day you have to talk about what you worked on and what you planned to work on like you're toddlers who can't be trusted to do work.

Every two weeks you have agonizing meetings where you're expected to analyze the past weeks, and come up with plans to improve them as a team. This sounds good on paper but after years of it, you mostly want to shoot yourself.

And that's assuming your team doesn't agree to a 1 week sprint, where the total meeting load can be 10% of the time spent working.

And that's at companies that are pretty good at it.

So yes, it's good for software delivery. But for something called agile/scrum, it's awfully process heavy, and it sucks as an engineer.


👤 jtdev
Yes, Agile Scrum is definitely beneficial for software delivery in my experience, but only when actually practiced. I see far too many teams doing stand-ups and using Jira and thinking this constitutes Agile Scrum...


👤 baybal2
I read a few books on Agile-Scrum, and still can get what the hell it is.

Each new book tells a different thing.


👤 b0rsuk
The main advantage of Agile is for project managers, who can change requirements on the fly.

👤 jimmyvalmer
Agile = Marxism

Scrum = Communism


👤 dkarl
Scrum was a boon for snake-oil salesmen. You don't have to be very smart, or know anything about software, to become a scrum consultant. Anybody can learn the structure of the process, dress like management, and be dogmatic. The only special ability you need is the ability to make promises without caring if you can keep them, and to keep promising over and over again that the reason nothing is working is that you haven't been given enough power yet.

That said, some of the ideas in it are good, and I think these days people try to intelligently incorporate individual elements of scrum into their own process. In the long run, the influence might be net positive, even though there's a lot of damage to make up for.