The road to hell is paved with agile intentions
yusufarslan.net
yusufarslan.net
I agree that wholesale adoption of Agile methods is problematic. But one thing every Agile approach has in common is an inspect-and-adapt component, so I'd call wholesale, ritualistic adoption essentially un-Agile. The Extreme Programming people are most explicit about this: they say that by-the-book XP is a good place to start, but that they don't expect anybody to stay there.
But when I read his examples, it seems like he doesn't know that. (Or perhaps that's the people in his examples.) Agile approaches aren't supposed to make everything better. They're supposed to expose the problems with how you're working so you can fix them. In the first case, it exposed the client's lack of interest and the conflicts of interest inherent in their organization. In the second, it made clear that the backlog was unreasonably large versus staff size.
Those aren't unintended consequences of adopting Agile methods. That's what's supposed to happen. Hidden problems are now obvious, which is progress. He seems to suggest that more planning is the solution, but I think just the opposite: with both those fictional shops I'd encourage them to fix the visible problems, and try to do so in ways that shorten feedback loops and help surface other hidden issues.
[1] http://agilefocus.com/2011/02/21/agiles-second-chasm-and-how...
I don't suggest more planning. I suggest more profound thinking before changing things.
Edit: you edited your comment.
I agree that more thought may be required. But that has nothing to do with Agile. If anything Agile should be commended for bringing the problems into focus.
The problem is that Agile approaches are perceived and promoted as a solution for these kind of problems. And I don't see well known Agile consultants do anything to change this view. That's why I wrote this.
That isn't an Agile problem, except to the extent that Agile is the flavor of the moment. It's a problem with the industry. And really, with people in general.
Many people want to buy magic beans. Some people will sell magic beans, either because they are cynical jerks (which is rare) or because they don't understand beans all that well (which is common). That doesn't make beans bad.
If you picked on the people or the culture making these claims it would make more sense to me. You spend time explaining why Agile can't solve a problem no methodology could solve, which seems rather pointless.
It's an odd thing to witness; when management finds a new cure-all for their software development and IT management woes (in my place, these concepts have been extended to DBA's, BA's, Cognos jockeys, etc), as there is an almost childlike enthusiasm and loyalty to this new silver bullet concept.
I feel like the rift occurs right about here, and the blinders go on for the suits while developers and other plebes shake their heads in disgust, as another wave of "paradigm shifting management strategies" sweep their inboxes with mandatory training meetings and promotional material from Gartner and the likes.
The biggest issue is that we all want the same thing: Good Software Development, but the business environment seems to hammer technical workers with the same insanity wrapped in a new packaging, sold down the line from some haughty focus group that contracted an outside company for a $100k "Agile training package".
The only place I've ever managed to get past all of this cruft is when freelancing with a small team directly with a client; this has never happened at my day job.
Never do we worry about specific methodologies, just three people coding and skype / irc / email with clients. Treat people like humans, and learn to say no when appropriate. Good software development is just organized, civil cooperation.
The problem with that is not much unlike waterfall, it provides little to no transparencyfor the employing party, very little accountability and almost no meaningful measureability.
This is why the majority of start ups fail. Developers have a ridgid vision of product, and then they spend 6/7 months building that product and then at the end you find out no one actually wants that product. Even though the product is good, its just solves a problem no ones interested in.
You need have system to actually work discover if you are creating value. You need something to hold yourself accountable.
In reality most successful start ups have a phase of constant learning, just to discover who are their customers, and what they place value on. And they normally have various metrics to hold themselves accountable.
The best way I have encountered is agile development with experiments to find out what customers actually need. Then metrics to see how people react to changes. If your vision isn't going anywhere, then you need a fundamental rethink which again needs to be tested.
More planning (at least to me) sounds like "let's break this down into a list of tasks that need doing".
Basically profound thinking sounds like the creative exploration of the idea (and surrounding ideas) as opposed to a dogmatic execution of an idea.
From what I've seen, using scary stories to encourage people to think harder before experimenting just increases fear and inertia. That lengthens feedback loops that are usually too long already. I'd much rather people just try something thoughtfully now and learn from it.
"Guess what! We're going to be Agile and do Scrum!"
Whereupon they sent a bunch of PMs off to be trained as Scrum masters.
On the first project, Management then said:
"Okay, go do that Agile stuff. And we think it will take you 13 sprints. Also, here's the stuff you'll be doing in the first sprint..."
Soon after, there were daily management meetings where people's burn-down rates were being discussed, based on the daily status reports that the PMs were collecting.
Just another way to micromanage people.
I share the same sentiment. And I hate to be micromanaged.
In a previous job a manager actually admitted to me that agile was a means to get more control over the developers and approach software development more like factory work, instead of creative work. A few months later I decided to leave, cause I need some sort of creativity in my approach to work, and for creativity I need freedom, not constraints.
Without metrics, you can end up at whim of managers gut feeling rather than what actually has been done.
I think that larger projects need more planning than Scrum, but if you look at Scrum's successes you'll see they are largely on projects where a lot of similar prior work had been done. In a sense, the design and up-front thiking came "for free". You usually can't get away with that on something that hasn't been done before.
> The department has understaffing and the requests are piling up. The waiting times are very high and there are many complaints.
Sounds like they just paved a new road IN hell, not TO hell...
The crux of the problem with process is premature generalization. People see a couple, or 4-5 examples of something, and then want to make a rule for all projects in an organization. There's waaaaaay too much variance for it to work like that.
Readers face a similar problem when reading about success in startups. There's a ton of books on how to make a killer startup -- but most all of them rely on a few examples or a handful of stories. They're long on selection bias and short on usefulness. Orgs do this same thing all the time.
There's also a mismatch in the model many technologist bring to organizing the work and the work itself. Since we work with things that move data around and functions that perform data changes, we begin to feel that a well-run organization is built on certain data and functions. It's simply the analogy that is most convenient for us. In reality, we're finding psychological and social factors are playing a much more important role than sets of rules, processes, or data structured and handled in certain ways. This is a big change for many to accept.
Still, always good to hear more voices. It continues to amaze me how you can take a kick-ass team of 5 guys and conquer the world. You can then scale that up to a kick-ass team of 100 guys -- and create one of the most miserable work experiences ever.
Shameless plug: for those interested in reading some of the stuff I've written about this, check out my blog devoted to the topic: http://tiny-giant-books.com/blog
In my experience, the market is full of people who CLAIM to have "readymade products" and who will ASSURE you that they'll be available for a fixed price.
Neither statement is typically true, however - nor is the idea that even "simple" client problems can be solved without any custom work.
If your firm's clients get mad when an agile process and its risks are explained, what they're really pissed about is that you won't lie to their faces during the sales process anymore...
(Analogy: the person whose body was riddled with stage 4 cancer started flossing every day. She still died of cancer soon after, but her teeth were cleaner).
Developers often find themselves interrupted by needs to participate in processes that are necessary to "track or improve the progress" instead of focusing on making the actual progress happen.
At the end of a project, do an overall retrospective, and perhaps make changes for the next project.
Small, incremental experiments and changes are great for process improvement. They can even feed up the chain and promote cross-team experiments, so long as there isn't a top-down directive to implement new thing B at the same time.
Do experiments, keep what works, discard what doesn't.
It's also about guidance. The people implementing the project, probably don't have accurate representation of customer value, only the customer does. Teams often have vision of how things should be, but normally its inaccurate and you implement things with the wrong priorities. The constant feedback from the customer helps ensure the right things are being worked on.
Also the solution always seems to be inappropriate skills of the developers
And vise versa, you can have a team of dysfunctional developers and give them any process - yet they'll most likely fail to achieve what they set out for.
Oh, and replace process with framework if that helps...
"Scrum is not a process or a technique for building products; rather, it is a framework within which you can employ various processes and techniques."
https://www.scrum.org/Portals/0/Documents/Scrum%20Guides/Scr...
These are just some examples that wrong causes can get attributed. And yes, a lot of times there is a mismatch between the skills and the expectations of the developers. (Without judgment where the error is.)
With SCRUM dictating that you should have X meetings of Y hours length producing artifacts A, B, C, that sounds like a process to me....