top | item 7389940

Coconut Headphones: Why Agile Has Failed

180 points| jackhammer2022 | 12 years ago |mikehadlow.blogspot.co.uk | reply

130 comments

order
[+] hpaavola|12 years ago|reply
All these late "agile has failed" posts are out of touch with reality. They assume that it is always possible to get the best developers and best managers to work with the problem on hand.

I'm a consultant. Officially my title is Senior Test Engineer and usually my job is to go to a company where shit has already hit the fan or will hit in a short time.

The reality is that the company has a bunch of developers who are mediocre at best (and maybe one or two good ones) and managers who do not understand the situation. And of course the budget is already been eaten.

They want to ship their product and make some money with that so they can continue to live their life. If I go there and say hey, you need better developers, more rapid prototyping and managers who are technical enough, nothing will change. Nothing will change because there aren't "rock star" developers avaialble, there isn't time to find new managers and definetly no motivation to change everything right now.

Sure in some sense I might be correct to say so, but my goal is not to show my superiority, but to improve the situation.

But if I teach them a little Scrum, help them setup some CI and so on, they almost always perform better.

And then this statement "Because creating good software is so much about technical decisions and so little about management process, I believe that there is very little place for non-technical managers in any software development organisation."

No. Good software comes from understanding the needs of your customers and meetings those needs. Shitty developers have and will create awesome products just because they know what the users want and need. "Agile" helps even the shitties companies to meet the needs of their customers.

[+] mattmanser|12 years ago|reply
I've read your comments a couple of times and still can't really see what you've added.

You're talking about very abnormal situations. Companies that are so technically incompetent they have to hire you.

And then saying that we should listen because in your abnormal experience of dealing with teams so dysfunctional they can't even ship bad software that agile at least gets them going a little bit.

I suspect almost any change would get them going a little bit as the change itself is the trigger.

EDIT: The more I think about it, the more your comment reminds me of the people defending the other fads of years gone past. Workflow diagrams, OOP-design (as a be-all-and-end-all process), UML, Worflow Engines, RAD tools. Your comment reminds me of the defences of them. These things worked because those desperate teams need a light to guide them, not because of the tool itself.

And with each of those tools, it turned out the tool itself is mainly counter-productive to functional teams. I think we're realising Agile is another of those false prophets.

[+] collyw|12 years ago|reply
"No. Good software comes from understanding the needs of your customers and meetings those needs. Shitty developers have and will create awesome products just because they know what the users want and need."

Depends what you class as "good software". My colleague left some code which "worked" and "met the needs" (at the time). I made a small change to the database it interacted with and it fell over. I had to go in a debug it, but it was so badly written I had to completely refactor it just to debug it properly.

So her software met the needs, my rewrite of it met the needs, and has been far more reliable and maintainable. I would say that is better software.

[+] efsavage|12 years ago|reply
Agree. "Agile" methologies are a great way for:

1. Good managers to manage new or mediocre engineers. 2. Good engineers to control new or mediocre managers.

No system will completely mitigate bad managers or bad engineers, and if they're both good the right system will manifest itself.

[+] briantakita|12 years ago|reply
Agile is the new RUP.

The main audience is shifting toward the shitties. It's the circle of life for cultural movements. Nothing wrong with Agile. It's just not my thing anymore.

[+] wpietri|12 years ago|reply
As somebody who has been involved in the Agile movement since before the term existed (I was using Extreme Programming in 2000 or 2001), I agree 100% with this.

I definitely think the consultants get a good chunk of the blame. But as I explain in detail elsewhere [1], I think that happened because executives, the consultants' customers, were mainly interested in buying BS. Not consciously, but when they were offered a choice between hard Agile and easy Agile, they bought easy Agile.

It's sad, because in the 2001-2005 timeframe, there were a lot of great people doing a lot of great stuff. There are still some doing great stuff today. But yeah, among most of the people I talk to that are "doing Agile" (as if there were such a thing), Agile is just putting new labels on the same old power dynamics.

And it's those power dynamics that are the problem, and no matter what methods you supposedly adopt, unless you change those, the system will return to making powerful executives and managers feel safe and in control. At the expense of productivity, quality, value delivery, and a whole lot else.

[1] http://agilefocus.com/2011/02/21/agiles-second-chasm-and-how...

[+] jdlshore|12 years ago|reply
This. So much this.

I got involved with Extreme Programming in 2000. Loved it. Best thing since sliced bread, yadda yadda. I was completely spoiled for other kinds of work.

So when that contract ended, I went looking for other opportunities to do XP. But guess what? In 2001, there weren't any. So I started teaching people how to do it. Bam! I'm a consultant.

Several lean years later (I don't mean Lean, I mean ramen), I'm figuring out this consulting thing. I've got a network, I've got a business entity, people actually call me, and oh, oh, and I make a real damn difference.

Then Agile starts getting really popular. Certification starts picking up. Scrum's the new hotness, XP's too "unrealistic." I start noticing some of my friends in the biz are dropping out, going back to start companies or lead teams or something real. But I stick with it. I'm thinking, "Sure, there's some bottom feeders creeping in, but Agile's still based on a core of people who really care about doing good work. Besides, if we all leave, what will keep Agile on track?"

It gets worse. Now I'm noticing that there are certain clients that simply won't be successful. I can tell in a phone screen. And it's not Scrum's fault, or certification, or anything. It's the clients. They want easy. I start getting picky, turning them down, refusing to do lucrative but ineffective short-term training.

Beck writes XP Explained 2nd edition. People talk about Agile "crossing the chasm." I start working on the 2nd edition XP Pocket Guide with chromatic and it turns into The Art of Agile Development. We try to write it for the early majority—the pragmatics, not the innovators and early adopters that were originally attracted to Agile and are now moving on to other things. It's a big success, still is.

It gets worse. The slapdash implementations of Agile now outnumber the good ones by a huge margin. You can find two-day Scrum training everywhere. Everybody wants to get in on the certification money train. Why? Clients won't send people to anything else. The remaining idealists are either fleeing, founding new brands ("Software Craftsmanship"), or becoming Certified Scrum Trainers.

I write "The Decline and Fall of Agile" [1]. Martin Fowler writes "Flaccid Scrum" [2]. I write "Stumbling through Mediocrity" [3]. At conferences, we early adopters console each other by saying, "The name 'Agile' will go away, but that's just because practices like TDD will just be 'the way you do software.'" I start looking very seriously for other opportunities.

That was six years ago.

...

Believe it or not, things haven't really gotten worse since then. Actually, they've gotten a bit better. See, 2-5 years is about how long a not-really-Agile Agile team can survive before before things shudder to a complete halt. But not-quite-Agile was Actually. So. Much. Better. (I know! Who could believe it?) than what these terribly dysfunctional organizations were doing before that they're interested in making Agile work. So they're finally investing in learning how to do Agile well. Those shallow training sessions and certifications I decried? They opened the door.

And so here we are, 2014. I see these "Agile is dying" threads as a good thing. Because they mean that the word is getting out about Agile-in-name-only. Because every time this comes up, you have a horde of people saying "Yeah! Agile sucks!" But... BUT... there's also a few people who say, "No, you don't understand, I've seen Agile work, and it was glorious." That's amazing. Truly. I've come to believe that no movement survives contact with the masses. After 20 years, to still have people who get it? Who are benefiting? Whose lives are being changed?

That means we have a shot.

And as for me... I found that opportunity, so I get to be even more picky about where I consult. But I continue to fight the good fight. Diana Larsen and I have produced Agile Fluency [4], a way of understanding and talking about the investments needed. We've released it, permissive license, for everyone to use. Use it.

Because Agile has no definition, just a manifesto. It is what the community says it is. It always has been. Speak up.

[1] http://www.jamesshore.com/Blog/The-Decline-and-Fall-of-Agile...

[2] http://martinfowler.com/bliki/FlaccidScrum.html

[3] http://www.jamesshore.com/Blog/Stumbling-Through-Mediocrity....

[4] http://www.agilefluency.com

[+] amputect|12 years ago|reply
> when they were offered a choice between hard Agile and easy Agile, they bought easy Agile.

This touches on what I believe to be the real, underlying issue: you (as a company) can't manage yourself out of a hole you've managed yourself in to. If management is defective, it will taint any process no matter how well conceived, because the underlying problem is not that the process is flawed, but that the people enforcing it are.

Edited to add: your (fixed) link is right on the money

[+] MartinCron|12 years ago|reply
It's a basic law of economics: If the market demands shit, someone will step up and sell shit. Externalities be damned.
[+] datawander|12 years ago|reply
The demotivation poster (we'll ask for estimates, but then treat them as deadlines) really strikes a chord because that is one of my major 'gripes' with the agile planning process. Particularly when a manager is heavily involved in that process. It may be no coincidence that the best projects I have been on are the ones where the manager deliberately stepped out of the room or was not a part of those phases of the planning process.

Agile is part of a more disturbing trend I've noticed [0] of companies striving very hard to turn software into a literal sausage-making factory [1] and to make software engineers just another cog in the machine or a replaceable part to fatten the bottom line with a lower salary. This is provably the aim of some of the top companies given news on no-hire agreements. [10].

[0] with Java being the favored "currency" of programming languages being the other disturbing trend-- it's much easier to replace a Java programmer than any other for a reason

[1] you know what they say about how sausages are made

[10] http://gizmodo.com/apple-guilty-of-price-fixing-730018979

[+] wpietri|12 years ago|reply
Yeah. 100% agreed.

In some ways I don't blame people. Industrial approaches to organizing people provided a major leap forward for humankind. And they work well with primate power dynamics; modern corporate structures are basically feudalism in suits. It's natural that people would just want to take the top-down, command-and-control structures and replicate them in the new thing they're doing.

But they just don't work well. They don't even work well for industry anymore; there's a reason that Toyota, which has a very different management philosophy, wiped the floor with the US auto companies, which stayed stuck in the early 20th century.

To be fair, Agile started out to be 100% the opposite of that sausage-factory approach. I know a lot of the early players, and they sincerely had a very different vision. It makes me sad to see their work used as just another stick to beat developers. Meet the new boss, same as the old boss.

[+] jaggederest|12 years ago|reply
I think the correct way to do it is to do the old 'pick two' method - quality, features, timeline, pick two. (I'd say you never want low quality but... situationally.)
[+] zimpenfish|12 years ago|reply
Always double your estimates because management will cut them in half anyway.
[+] programminggeek|12 years ago|reply
This recent meme about agile is so dumb that I feel like I shouldn't say anything at all, but here goes anyway. I'll keep this as short as possible...

Agile works fine for teams that embrace it. It's going to work totally different from team to team. The real point is to find the process that works best for your team to deliver software that meets the customer requirements and budget. Agile for a team of 1 or 3 is not the same as agile for a team of 10 or 100.

Agile tends to fail in two places and they are both communication related. First, developers give terrible estimates because of pride. They don't think through the problem, they don't consider complexity, and they want to look awesome so they ALWAYS over promise and under deliver. That makes them look bad and destroys confidence in the project because it's dishonest.

Second, managers will take estimates and turn them into deadlines because that is kind of their job and they are doing the best they can with the bad information that developers give them (see bad estimates above). A good PM needs to really push their team for real esteems. Poor estimates lead to poor communication because when things go badly, nobody wants to send up the signal flare for help or tell the boss that the project is not going to hit the deadline. This is often compounded when the client decides to firedrill a feature or bug fix mid sprint, and the manager doesn't push back and say that it is going to push everything else back.

The best estimates are the ones that are the most honest, not the shortest.

Between the bad estimates and the poor communication that comes out of it, there are plenty of times that "Agile" goes wrong, but it's not agile's fault. It's your fault. It's your team's fault. It doesn't work if you aren't willing to continuously tweak and reevaluate the process until it fits your situation. That means doing retrospectives and making improvements based on them.

Continuous improvement makes agile work. A stagnant process is doomed to failure as requirements and resources change over time.

[+] vonmoltke|12 years ago|reply
I think you are missing a couple, somewhat related failure modes.

First, if the software project is part of a larger integrated hardware/software project, people above the project manager may be making promises of deliverables without consulting the program manager at all, thus creating externally-imposed deadlines that cannot be changed without rippling through to other teams, who may or may not be in your own company. Of course, the same upper management that pulled deadlines out of their asses is reassuring the customer and other teams that they are Agile, so this won't be a problem.

Second, you have a stubborn customer who wants deliverable deadlines, holds you to them, and views your Agile-based explanations as "excuses". The US federal government is notorious for this.

[+] jasallen|12 years ago|reply
> it's not agile's fault. It's your fault. It's your team's fault

That's what everyone has said about every dogma they've ever believed in, ever.

[+] ebiester|12 years ago|reply
That Is Why You Don't Do Estimates In Hours.

Relative estimates are much more reliable than absolute estimates. That's what fibonnaci sizing, etc. is about -- you can gauge effort relative to other effort.

Once you have an actual consensus of the complexity of tasks broken down, you can then apply that to the team velocity and make estimates.

Better is Arlo Belshee's system of getting everything to roughly the same size block. http://arlobelshee.com/planning-with-any-hope-of-accuracy/

[+] romaniv|12 years ago|reply
First, developers give terrible estimates because of pride. They don't think through the problem, they don't consider complexity, and they want to look awesome so they ALWAYS over promise and under deliver.

This sounds like bullshit. More often than not, bad estimates are a result of built-in bias in the overall estimation system that gets blamed on the people.

For example, I routinely see people underestimating larger tasks when the cost of splitting them is prohibitively high, while the cost of being late with a task is largely imaginary.

[+] eliasdelatorre|12 years ago|reply
I'm stuck trying to finish a project as a vendor. The original team in charge of selling the project has put a guy as Project Manager that takes pride everytime he says: "As you know, I'm not a technical guy" just before explaining something completely wrong from the technical standpoint, or agreeing into something that can't be delivered as explained. I can't agree more on the quote that says "Please don’t put non-technical managers in charge of software developers." I just hope finishing this without a lose, and getting a better position for the following projects.
[+] wpietri|12 years ago|reply
I think the problem isn't with who you put in charge. I think the problem is the notion of "in charge".

One of the best things for me about teams that were working well is that everybody was in charge. Everybody felt responsible for the outcome. Everybody cared. Everybody knew they could make things happen, and that differences of view were resolved through collaboration and experimentation, not power.

You can see that explicitly in the structure of Extreme Programming, a major Agile process. There were developers and there was a product manager (called "customer"), and neither controlled the other. Indeed, people created an XP bill of rights that described the balance of powers:

http://agile.dzone.com/articles/worth-repeating-xp-bills

You can see that working in the large at places like Spotify, where teams are cross-functional. People do have managers, but they aren't on the same team, and technical people report to technical managers, not generic businesspeople. Those managers aren't "in charge" in the typical sense. They mentor and support the people working directly on teams. They only really manage when things go wrong.

And I think that's what the Agile community was going for early on. It's a shame that fell by the wayside.

[+] abalone|12 years ago|reply
He just vaguely blames everything on "non-technical management" without really offering a cogent argument why.

When he does get to concrete points, one of them is "Short feedback loops to measurable outcomes create good software." And yet "two week iterations" he calls "agile nonsense".

The overal tone is kind of "technical macho" to me.. like, Real Developers don't need management and if you slipped then it's because your programmers suck and you should just hire better ones.

[+] SixSigma|12 years ago|reply
It would also suggest that someone who isn't a qualified doctor couldn't run a hospital. I continually run up against this attitude that programmers are somehow special and the rules of management somehow don't work with them.

The sentence should read "The core problem is that bad managers will usually fail, or at best be counter productive, whatever the methodology".

[+] briantakita|12 years ago|reply
Non-technical agile management usually gets in the way. They get in the way with rigid prioritization. Prioritization means less gets done because you are optimizing sequential outcomes instead of a solid development process. Good engineers will evolve the architecture toward where the product is heading.

Non-technical agile management uses points to measure the work that gets done because they don't know any better and they "need" to measure something.

The technical architecture starts to go downhill over this never ending treadmill of the prioritized backlog with the non-technical task masters whipping their developers to get more points done.

Sure, we can educate the non-technical management over keeping a low standard deviation of points. We can bargain to get technical cleanup time (marked as chores). We may even have a debt cleanup week out of the month.

However, the spirit of the engineering endeavor is lost to the marketers, or their henchmen, running the project. It's too bad because subpar products and subpar code are the result.

[+] asdkl234890|12 years ago|reply
I worked for a large corporation which used a hard core water fall method to produce software. And yet it called it Agile. Why? Because why not.
[+] collyw|12 years ago|reply
I have noticed this. Every one claims to be doing agile, even though they pick and choose the parts they decide are "agile".

I just continue to write software the way I always have. Kind of disciplined version of cowboy coding I would say. Sometimes I have design documents - when I feel it helps. Other times the problem might be less clear, built a prototype, and iterate from there. It really depends on the problem you are trying to solve and the time frame you need to do it in.

I get software working, usually in a decent time frame. Is that not what agile is supposed to be about?

[+] donretag|12 years ago|reply
I worked in a similar environment. Sprint 1 is requirements gathering. Sprint 2 is coding. Sprint 3 is testing. Water fall really is agile!
[+] carsongross|12 years ago|reply
To the extent that I've seen development methodologies work, they appear to mostly fix organizational barriers that get in the way of The One Thing That Actually Works[1]: hire a small group of extremely talented developers and product designers and then let them work.

[1] Assuming your codebase isn't already a monstrosity. If it is... well, then nothing works.

[+] brightsize|12 years ago|reply
> hire a small group of extremely talented developers and product designers and then let them work.

Spot on. Whenever I go into one of my own anti-"Agile" rants, among my main points is that formal organizational process is simply unnecessary with talented, motivated development teams. In my long experience across many start-ups (which tend to get the aforementioned sorts of teams), if you just put a bunch of really smart people (devs) in a room with a project to do, Good Things happen. They know what needs to be done. They know how to do it. Any kind of formal development methodology just gets in the way. Management in those environments (and I've done that) is about care and feeding and listening and gaining consensus. It's not about religion or process. When I first read the Manifesto, not long after it came out, my reaction was YES! But in no time the Formal Methodologists came out of the woodwork and hijacked the whole thing, turning an attractive philosophy into just another management fad, one with nearly as much religious orthodoxy as what it replaced. Agile, with a capital "A", can't die quickly enough.

[+] joshyeager|12 years ago|reply
How big is a "small group", in your opinion?
[+] adorton|12 years ago|reply
A "people manager" should never be put in charge of project or schedule management. It creates a conflict of interest between the realities of the project, and the outside pressure the manager may receive from other teams.

That's why, at least with Scrum, the agile manager, if he or she is part of the same team, reports to the same manager as the development team. The agile manager's job is to keep the agile process running smoothly, removing impediments, etc.

[+] jayvanguard|12 years ago|reply
Has it really failed? It seems like at least some of the principles of agile are just a given now. 10-15 years ago that wasn't the case. People actually believed in waterfall.

Of course many individual teams fail at agile but those teams would probably fail no matter what approach they were using.

[+] wpietri|12 years ago|reply
It's a good question. But personally, I think that people would have stopped believing in waterfall approaches anyhow. Anybody sticking with 18-month release cycles today would seem like an idiot whether or not anybody had heard of Agile. And really, what a lot of supposed Agile teams are doing is really mini-waterfall: all the ceremony, shorter cycles, but just as much horseshit and self-delusion.
[+] EdwardDiego|12 years ago|reply
> Has it really failed?

It works fine for us, but we have the ideal conditions for it to - business product owners who understand that their role is to provide a prioritised backlog and clarify stories in a timely manner - and nothing else. We have an organisation that accepts that the developers will drop features from a sprint to safeguard reliability and quality. We have teams that have stable core domains so that our estimations are, for the great majority, sufficiently accurate within that core domain.

Every time I see a "Agile is a scam / it's dead Jim / it's a myth" post, it usually involves into someone doing something dysfunctional and then trying to justify it with "But Agile!" in a game of Buzzword Bingo.

I went to help a local government IT department that was trying to implement Scrum to get some clarity on what the hell was going on in their dev teams, and I sat in on sprint retrospectives where all the talking was done by the 'product owner' - who was actually a rebranded business analyst who had no authority to prioritise backlogs. He wouldn't stop talking either, even when I explained to him that the retro was for the team, not him.

To that team, Scrum was a bunch of bullshit. To me, how they were doing it was obviously flawed. That said though, ultimately, that organisation has derived value from their half-assed implementation of it. It's shown them precisely who contributes in their IT team and who is cruising. They've got a few people who claim a monopoly on certain areas and jealously defend them because it makes them feel necessary and as such, safe from being laid off. Hence I had a GIS guy telling me that "You can't expect .NET developers to learn GIS!!" and an ABAP developer saying the exact same thing.

Now that organisation faces the challenge of managing the coasters out - unlike the US of A we don't have at-will employment.

[+] crag|12 years ago|reply
No... agile has failed cause most of the "enterprise" apps written in the "agile way" (and many claim to be) are crap.

This isn't the fault of the agile manifesto. It's the fault of consultants who used Agile as a buzzword. The same consultants who never understood agile or cared to; producing apps riddled with bugs.

Agile was heading to the abyss the day it was co-opted into a marketing buzzword.

[+] McP|12 years ago|reply
I found that in my team that agile worked brilliantly for us at first - we were working together to create features that customers loved.

Then support queries came in for the features we developed previously. At first a couple of team members would split off and work on the existing features while the rest of us carried on working on the new hotness. As we increased the number of (quite diverse) features, the more diverse the support queries got.

Now we're basically no longer a team, but a group of individuals working in different areas, who happen to be in the same stand-up each morning.

I am actively looking to fix this problem. I'm sure this must have been discussed already but I can't find it! Any suggestions?

[+] joshyeager|12 years ago|reply
We have a similar support load, but have been able to avoid that problem. I attribute this to two things: - We have a highly skilled support team that can handle pretty much everything except actually writing bug fixes - Every iteration we pull the whole team back to swarm on feature development together. They may get pulled into different historical features for support, but new development is always done as a team.

Support is still very costly for us, because the distraction of working on old features slows down new development. To combat that we're putting a lot of effort into fixing the root causes of our support issues and training our support team to handle more and more technical problems.

[+] mhw|12 years ago|reply
It depends what you mean when you say 'support queries' - I'm guessing it's more than just someone not understanding how a new feature works. Here are some possibilities for what you're experiencing:

* 'support queries' are actually bug reports: you're getting something wrong with your automated testing that's letting bugs get out into released code. Ideally you should have acceptance tests that make sure the code is doing what it should before you release it. Check what your team's criteria for 'Done' is - are they cutting corners to get things out the door?

* 'support queries' are actually missing functionality in new features: you're not getting all the requirements for the feature in the sprint where you implement it. You need to make sure the conversation with the product owner covers everything that the feature (user story) should do.

* 'support queries' are actually new feature requests: they should go in to the backlog and be prioritised along with everything else. You shouldn't let people push work into a sprint that hasn't been prioritised by the product owner.

[+] EdwardDiego|12 years ago|reply
We have a team that is made up of 1 person from each of our three teams. It rotates on a weekly basis, and that team does the bug fixes / investigations / support queries that come in.

The advantage is that disruption to a sprint is amortised to a constant instead of being a variable. The weekly rotations ensure that people who are writing bugs aren't isolated from the fixing of them - it also maintains morale, being stuck on a bug-fixing team is a bit of a gulag for devs IMO.

[+] wpietri|12 years ago|reply
I think the error here is a common but artificial distinction between "existing features" and "new features".

From the point of view of a well-run Agile team, there's just work to do. It all gets managed through the same process. One queue, one team.

In my last team, we created a rule that when you finished something, you'd just pull the next card at the top of the stack. You could ask for help as needed, but it was your job to see that card through to completion. That forced us to cross-train. Which was certainly fun. But it also really helped us to make better software. It was very consistent, both on the surface and under the hood.

[+] briantakita|12 years ago|reply
IMO, the worst meeting you can have is the "agile inception". Do not allow a consultant who has no skin in the game to lead an inception. Do not allow them to have a louder voice than the engineers in the project. They can set a tone which is not coherent with the engineering team, which is bad, bad, bad.

I've been involved with a few inception meetings. Two of them had terrible consequences for the life of the project. I got into a disagreement with a high level company executive in one and an "inception master" consultant in the other. They had no accountability for their "guidance" and they nearly killed the projects from the start.

[+] allochthon|12 years ago|reply
> Because creating good software is so much about technical decisions and so little about management process, I believe that there is very little place for non-technical managers in any software development organisation.

Well said.

[+] nnq|12 years ago|reply
Yep. Good software companies tend to get this. But the zillions on creative digital-media agencies that popped up recently, and realized that yes, what they are doing is software development and nothing else, and that their "creative secret sauce" only contributes 10% max to the business fail to get his big time!
[+] bowlofpetunias|12 years ago|reply
Once again, this is about mismanagement rather than Agile or software development.

Besides the objections concerning throwing out the baby with the bathwater when it comes to Agile, I also object to the notion that non-technical managers cannot manage a software project.

True, 90% of all non-technical managers do not have the knowledge necessary to manage software development, but very little of that actually includes hard technical knowledge. As a tech manager with 25+ years of development experience, most of my work involves management skills, not technical skills. The technical insight needed can be taught to any smart non-technical manager.

Also, managing a software project is not about being "in charge" and micromanaging, but mostly about serving, protecting and coaching a team. People in the "no management" camp mistake management for hierarchy. Being the manager is a team role, just like being a back-end developer, and interaction designer etcetera.

None of this is about Agile or management, it's about two sides, old school hierarchical "programmers-are-codemonkeys" management and tunnel vision "we-don't-need-no-stinking-suits" developers, trying very hard not to understand each other.

And using Agile as a stick to beat each other with.

If Agile is dead, it's because it's been brutally murdered by two factions unwilling to face their own shortcomings.

[+] bitwize|12 years ago|reply
Those who can, do. Those who can't, become methodology consultants. It's as true of agile as it was of six sigma...
[+] MRSallee|12 years ago|reply
I'm only superficially familiar with Agile. I feel this piece isn't very specific -- specifically, what benefits of Agile are being missed and why?

I like the Cargo Cult analogy, and the author paints a fairly clear picture of what misapplied Agile tends to look like. Just not clear on what it should look like.

[+] keeptrying|12 years ago|reply
Has anyone actually seen a product manager cut features to make product better and to make sure the product gets shipped asap?

Well now you know why agile was just iterated waterfall in most organisations...

[+] hibikir|12 years ago|reply
The issue is not really having a manager that is technical or not: I have met great managers that were not technical, and terrible ones that were technical.

Success comes from trusting your people, having a clear goal the team believes in, and a team of the right size to accomplish said goal. Every successful team I've been a part of had all three. When even one is missing, there is much dysfunction.

The agile rituals are there to try to make those things easier, but they are just a way in: If you meet the important principles, you do not need them. Just look at the Valve method: No management, no ritual, but a hiring process that attempts to just get the kind of people that focus on those principles like a laser.