Live data from Hacker News

Why I'm not a big fan of Scrum

okigiveup.net

321–330 of 387 posts

Re: Why I'm not a big fan of Scrum

#321
post #106

Earlier quoted context omitted.

I am Product in a large corporation, and it's a certainly a fine balance. In a previous life, I was a developer, and I dealt with similar issues. I have a lot of respect and empathy for the the Tech team. Therefore, I asked my Tech team to inform me when things are getting out of hand -- that's the responsible Product thing to do . I instituted that technical debt is part of our KPIs. If it's not captured, it's not a…

> technical debt is part of our KPIs. If it's not captured, it's not actionable This is where I suspect manager-types and developers have a vigorous divergence in values. Professionals routinely encounter situations where something is wrong and needs to be "actioned" but its wrongness isn't effectively measured by any metric (other than the opinions of the experienced people looking at it). There is a certain species…

On the other hand, at the end of the road - or the rewrite - something should have been gained in terms of money, risk or time.

Being shitty is not reason enough, but it's almost always possible to reason and quantify and weigh the cost versus the benefits.

Re: Why I'm not a big fan of Scrum

#322

Earlier quoted context omitted.

The points are (also) an estimating mechanism. They let you estimate a new task in points (effort measurement) instead of hours (time measurement), and then use history to predict a likely timeframe based on your typical rate. The extra layer of indirection helps to account for uncertainties in the task, imprecision in the estimate, and chaos (in the scientific sense) in how long individual tasks take relative to agg…

That's surely worth something, but it's easier to think of estimates as a 90% outer bound: "I am 90% sure that the task will be completed by date X." Uncertainty can be incorporated, and you don't need to learn a new conversion factor from time to points.

That doesn't work when you can't predict what other tasks might interrupt you between now and date X. That's why estimating in units of effort is much more reliable than units of time.

The drawback to units of effort is that estimates eventually bubble up to non-technical people who don't discern the difference between effort and time, and for most projects there are going to be some time-based constraints on the schedule.

Re: Why I'm not a big fan of Scrum

#323

Earlier quoted context omitted.

> Successful big waterfall engineering projects where waterfall is actually applied exist. You are engaging in equivocation. > Want to construct a bridge or a rocket, design a microprocessor? You are not going to do that with "stories". Nor are you going to use the software development methodology described as the waterfall method (you may use a physical engineering methodology that was among the inspirations for tha…

Ok I maybe went a little far for the bridge, but today a microprocessor is way more similar to software than it is to a bridge (at least in some of the design phase, but then now even in some maintenance phases). And a modern rocket also contains tons of software. And waterfall is similar enough to (at least non-software -- but in my thesis also software) engineering to even consider a direct equivalent for the bridg…

> Engineering is mainly about "processes and tools"

And Agile does not avoid processes and tools, it recognizes that process and tools must be specifically fit to the particular team and context of work (Scrum, particularly, is a baseline set of processes and tools that is designed to serve as a framework for common contexts of software work -- its intentionally incomplete to avoid specifying too much that would narrow its scope of applicability.)

> "individuals and interactions" are also needed, but there is no need to oppose them

The need to oppose them comes from the authors' concrete experiences in the software world before writing the manifesto, where very frequently canned (often consultant-pushed) processes and tools were being adopted by management in shops without considering the dynamics of the existing team and the particular work being done. (One of the sad ironies of the Agile movement is that the "Agile" banner itself has become a tool for the same kind of thing.)

> "comprehensive documentation" is critical in all kind of domains

Yes, it is; the preference stated in the manifesto is, again, the result of concrete experience where projects were quite often focused on producing mandated documentary artifacts because there was a checklist and that was how "control" was exercised, but the documents required and delivered were often irrelevant to (and not consumed by, or updated to reflect changes resulting from, the process of) delivering working software.

> Customer collaboration over contract negotiation; again, highly dependent on the field and specific project if this is something where it makes sense to even have a "preference" or not.

This is intended specifically in the content of developing specific software requirements (and, really, its more about the dev team pushing the customer to engage rather than provide hands-off requirements.)

The Agile Manifesto really deals with concrete problems encountered in particularly enterprise software contracting (but bad practices from the enterprise world were, at the time, getting exported to the rest of software development, so not limited to the enterprise world.)

> "Following a plan" is what you do about how you organize your work when you use Scrum.

Scrum, like most methodologies that attempt to implement agile values, focuses quite a lot on managing potential rapid change within the plan.

Re: Why I'm not a big fan of Scrum

#324
post #257

I disagree with most of the major criticisms here. I think it is a valid description of an experience using scrum half-heartedly, but not an argument against its purpose or value. Points, for example, the argument is based on the premise that teams are obsessed with points. What if the teams use points as a framework to discuss complexity? I have worked in scrum groups where if something was given a large point value…

Perhaps but this could be viewed as the "no true scotsman" thing. My main objections to Scrum are a) you need to shoehorn things into user stories that are not naturally expressed that way (as a user I would like all relevant data in the database associated with standard ontology?) b) In a special domain (healthcare) it requires good developers with some level of domain expertise and I find this rare c) (and this is…

I feel like specialized domains in general require devs with domain expertise.

Maybe waterfall with unusually good specifications can use cog-like devs, but the few times I've seen that done it didn't turn out very well.

Re: Why I'm not a big fan of Scrum

#325

Earlier quoted context omitted.

In agile, the estimates should be decided by consensus of the whole team. Requiring a single engineer to come up with an estimate is a smell. Here is a quick 4 step planning meeting process based on planning poker: 1. Pick story from backlog, explain in a couple minutes what do you think would take to implement it. 2. Team members pick an estimate of the effort. 3. If there is consensus, note estimate on story, pick…

And that's where the 'incremental tasks with no architecture' part comes in. When the scheduler needs rewritten to support whatever robustness; when the server feeds need to be redundant; maybe only 1 team member has any real idea what it takes. Coding isn't always about putting up another web widget or making another database entry.

That's the point: while there might be just 1 team member with a clear understanding of the effort, everybody gets to pick an estimate based on their own knowledge of the subject matter, even if they know nothing.

The exercise of just enumerating in a couple minutes all the steps to complete such a story gives everybody, including the one who is going to do the job a clear idea of the effort or whether they need more information before proceeding.

Btw, while Scrum is great for software development, they are not ideal for maintenance and/or infrastructure management where a defined process such as waterfall might work better. Trouble tickets and bug fixes should be kept outside the sprint unless they become stories.

Re: Why I'm not a big fan of Scrum

#326

Earlier quoted context omitted.

Ok I maybe went a little far for the bridge, but today a microprocessor is way more similar to software than it is to a bridge (at least in some of the design phase, but then now even in some maintenance phases). And a modern rocket also contains tons of software. And waterfall is similar enough to (at least non-software -- but in my thesis also software) engineering to even consider a direct equivalent for the bridg…

> Engineering is mainly about "processes and tools" And Agile does not avoid processes and tools, it recognizes that process and tools must be specifically fit to the particular team and context of work (Scrum, particularly, is a baseline set of processes and tools that is designed to serve as a framework for common contexts of software work -- its intentionally incomplete to avoid specifying too much that would narr…

Well, I've got "concrete experiences" in the software world after the manifesto, where this has been interpreted has fuck processes and fuck tools (except those of Scrum, regardless of their applicability -- which is not the majority of projects, far from it) and let idiotic work continue to be done, now that we have a noun for it. This is not better than the previous situation. Honestly if some management is stupid enough to force badly suited processes and tools instead of letting (competent) teams choose better ones, I doubt they will suddenly see the light by reading the Agile manifesto. And again, in too many actual implementations, Working software is not really an output of Agile processes... except now you don't even have a doc anymore. Actually, to get non trivial "Working software", a good documentation is essential. You don't solve anything by casting that you prefer "Working software", especially more so when you are trying to fix a situation where the documentation is mandatory but poor. And guess what, the "client" also want "Working software"...

Scrum is what you do when you try to do software engineering without actually doing software engineering. It insanely meta, and like explained in other comments, the improvements you get from its loop are too often meta (we should evaluate more accurately). I prefer to stick to the real thing, and core engineering practices. Scrum attempts to fix situation when core engineering practices are misunderstood and used as constraints instead of being used as something essential to the dev of a good product; but it is vain to try to fix such a situation by engaging key people even less in core engineering practices, and more in mundane discussions where the real problems are never addressed.

Re: Why I'm not a big fan of Scrum

#329

Earlier quoted context omitted.

> Keep in mind that Scrum was designed by consultants working for organizations that don't understand software development. Scrum was "designed" by Ken Schwaber, a software project manager at the time looking for a better way to control software development processes. Schwaber discovered he could use an empirical process, rather than a defined one, to control software projects. He created Scrum following this princip…

Good point, thanks. I was thinking of XP coming out of Chrysler. I'll stand by the last two sentences of that comment, though.

> the person running the Scrum process needs to know how shit really works. This is rarely the case.

I agree, while a very simple process, people who don't get it tend to complicate it. They focus on the process instead of the result.

Most failed scrum teams I've seen out there skip the retrospective meeting, which is in my opinion, the key of the whole thing: that's the meeting where team members usually realize they "own" the process and can steer it any way they desire.

Re: Why I'm not a big fan of Scrum

#330
post #321

Earlier quoted context omitted.

> technical debt is part of our KPIs. If it's not captured, it's not actionable This is where I suspect manager-types and developers have a vigorous divergence in values. Professionals routinely encounter situations where something is wrong and needs to be "actioned" but its wrongness isn't effectively measured by any metric (other than the opinions of the experienced people looking at it). There is a certain species…

On the other hand, at the end of the road - or the rewrite - something should have been gained in terms of money, risk or time. Being shitty is not reason enough, but it's almost always possible to reason and quantify and weigh the cost versus the benefits.

Of course something should be gained, but that doesn't mean you can always tell how much would be or was.

There is no mature "actuarial science" of software development. The market can provide concrete pricing for new feature development; engineers can't tell you how many dollars of tech debt you're in or give three significant digits on the probability of a major outage tomorrow.

That doesn't make money/risk/time costs which are difficult to measure any less real and it doesn't make them smaller than the ones which are easy KPIs.

Nor can you necessarily look at the movement of measurable KPIs and say "man, that rewrite was a waste of money." Who's to say things wouldn't have been worse without it?

Post reply on HN