Is it April 1? Andy poo-talks Agile and then drops GROWS (TM) on us? You have got to be kidding me.
It's been mentioned on here a lot that if you have a skilled set of programmers on your team you probably don't need Agile. They are self-managed and tend to do the Right Thing (TM) on their own.
I have seen Agile work and when it does it's pretty fun. Things move along, issues are dealt with, and nobody panics when things get behind a little. Just move it to the next release.
I think the problem is that The Consultants sold Agile to enterprise dev shops and they really ate it up. I don't feel Agile works from the top-down but rather organically from the bottom-up. In fact I believe that is true for most programming methodologies like this.
> I don't feel Agile works from the top-down but rather organically from the bottom-up.
I believe that is the crux of the issue. Larger organizations, and especially those that view IT as a cost center, do not feel comfortable giving control to programmers.
Every time a consultant proposes a new method with a new name, it seems like it's just a way to create a side industry; a long con that doesn't really attempt to fix the larger issue. I believe the hard problem to solve (which may be impossible, I'm not sure) is getting an organization to see their programmers as business collaborators rather than an inconvenient necessity.
This. Craft and passion beat any process. These people will organize themselves into the most efficient process eventually.
My direct experience of working with programmers over the years is that this will generally descend rapidly into an inefficient mess. Yes – maybe it works, sometimes. I'd argue that's the exception, rather than the rule.
If you work with people who dont care, youre screwed. Nothing will ever work to force them to actively engage with the process of creating good software.
..but, surprisingly, when you do work with people who do care, they self organize remarkably well. The Valve megacorporation is fundamentally based on this. It works. Thats been my personal experience, over the years.
The problem that has to be addressed is convincing people to care, and self improve.
Forcing a process on the unwilling is going to fail no matter what you do.
I agree that a group of people who don't care will almost always produce substandard results.
I don't agree that people who do care necessarily self-organise well, or that this self-organisation is compatible with other business goals.
Sometimes it works, and a group of engineers et al. do a good job of forming a coherent team with minimal process. Valve's maybe an example – I don't know. My experience is that this is the exception, rather than the common case.
A good process can provide tools that help good people who care communicate and deliver more effectively. They help us to keep track of how we're performing and analyse pain points, and to make sure that there are methods for dealing with common problems.
For example, if my team felt that daily stand-ups were an inconvenience that weren't helpful, then we wouldn't do them. That's the goal; there's no cast-iron set of rules, just a generally applicable set of principles to follow.
You know, I probably don't know as much as you do, but every time I've ever seen lots of negative reinforcement get applied to teams both in software and outside, it seems to have the opposite effect. Sometimes you have to quietly handle the most toxic people, but on the whole, when you take this sort of approach to managing, I would be very surprised if you only make the situation drastically worse in the long run.
And often they self-organise by taking an established process and bending it into something that works out for them. Which is fine. But that doesn't mean designing a process is useless - if it's a good base it'll be easier for the team to adapt it into something that is good for them.
> if you have a skilled set of programmers on your team
Emphasis mine. You probably have more experience than I do, but largely I've seen it to be true that skilled (or, in the absence of skill, passionate) programmers tend to self-organize, as long as they all have the same goal (which hopefully is true for the majority of your team - if not, no methodology is going to help you).
At several previous jobs I went on and on about how most process was unnecessary and nobody would believe me that you could do with less process. Then I joined a company with better people that has minimal to no process, and we make it work well, and it's the best job I've ever had.
All the companies I was at before this one that hid behind process had the usual problems with quality, scheduling, communication, etc. There's no process that's going to pull excellent work out of average people. It's just band-aids that keep people from taking real responsibility because they believe the Process will take care of things.
Absolutely... as others here have said, if you don't have people who want to think, then no amount of process can save you. You only have deal with any official bureaucratic process or government department to see that.
From my POV, a minimum amount of process is useful to keep things on the rails when the pressure goes on, so people don't end up doing things wrong. After all, unit tests, git and CI are 'process'...
Those people also cost money, and most managers are allergic to spending money on good people (ignoring the difficulties in finding those people in the first place).
> if you have a skilled set of programmers on your team you probably don't need Agile. They are self-managed and tend to do the Right Thing (TM) on their own.
"Any sufficiently complicated company w/o management contains an ad hoc, informally-specified, bug-ridden, slow implementation of management”--wycats
I largely agree, but think it has more to do with passion or interest than strictly skill. Any process that leads people to work with each other to GSD seems best. The best project I've ever been apart of was with myself and a couple others in other time zones in our free time. We communicated by email with our progress, what we planned to do, what we needed from others, etc. And since the team was small, everyone had their place and pitched in, and we created something beautiful at an amazing pace. It is an open source project I work on to this day, though largely just small fixes anymore.
In a corporate environment, you tend to have some burn outs, some 'holier-than-thou', some paycheck collectors, etc. The biggest difference probably is that you can't choose who you work with. It seems Agile as I've seen is implemented around that, which ultimately discourages the behaviors described in the prior paragraph. It becomes one writing quickly to finish things for the manager, rather than writing things for your coworkers.
^^^ Exactly this. I've seen Agile work extremely well when experienced developers decide "we need to change how we've been doing things". Coming down from management it becomes just another way of lowering the boom on development. Furthermore I think the correct pronunciation for "Scrum" is "Scrummerfall".
I have just bought a "Learning GROWS" book from the Pragmatic Programmer online store, and have hired a consultant to educate (inculcate?) the team on the new methodology.
We even are using one of the new open source libraries that tests and enforces the process, it is called 'poison ivy' - it hurts, like all good software engineering processes do!
Edit: do the downvoters disagree? We don't think there will be books, courses, tools for this new methodology?
We're not humor impaired, there's just a higher bar. Otherwise it becomes like every other internet forum ever: dominated by one-liner meme-based reply-chains that drown out the real conversation.
It's been mentioned on here a lot that if you have a skilled set of programmers on your team you probably don't need Agile. They are self-managed and tend to do the Right Thing (TM) on their own.
I have seen Agile work and when it does it's pretty fun. Things move along, issues are dealt with, and nobody panics when things get behind a little. Just move it to the next release.
I think the problem is that The Consultants sold Agile to enterprise dev shops and they really ate it up. I don't feel Agile works from the top-down but rather organically from the bottom-up. In fact I believe that is true for most programming methodologies like this.
And Scrum. Don't get me started on Scrum.