Monday, September 21, 2009

Management: Top Ten Things Programmers Hate About Agile

Sometimes Agile emerges from a grassroots initiative, but as Agile gains buzz, more and more managers and executives are initiating the move to Agile. Folks in management are often caught off guard by the reactions they get from their programmers. I’ve compiled a list of common gripes that I have heard and/or experienced firsthand to help folks in management avoid getting off on the wrong foot.

While this list may also apply to folks other than programmers, this post was created specifically with the good folks over on reddit/r/programming in mind. By the way, before posting there, I highly recommend reading "The Unspoken Truth About Managing Geeks." If you are a programming subreddit regular, thanks for visiting. I look forward to your feedback and hope that folks in management reading this take your feedback to heart. Without further ado, I give you the Top Ten Programmer Gripes with Agile!

#10 Agile is Snake Oil sold by Snake Oil Salespeople
Let the buyer beware! There is definitely an element of truth to this. “Agile” can mean almost anything and there are definitely folks out there taking advantage of the fact that many people are new to Agile. Not only are they just looking to make a buck, they often either have no idea what they are doing or have simply repackaged whatever they used to sell with the “Agile” label. The good news here is that these folks are pretty easy to uncover. Just keep in mind that there are Agile snakeoil salesfolks out there, do your normal due diligence when evaluating Agile advocates and you should do fine.#9 Agile Has Too Much Jargon
Say, how many story points did we burnup during this sprint? It seems like our velocity went up after the product owner started using user stories in the backlog. What’s up with all of this jargon? Is it really necessary?
Rather than answering that question directly, let me ask you this: doesn’t every subject have its own subject matter jargon? Isn’t OO programming “jargon rich?” Isn’t .Net “jargon rich?” Heck, programming in general is “jargon rich.” I’ll bet you didn’t even bat an eye when I used the jargon terms “object-oriented” and “.Net” ! Oh wait, I didn’t even say “object-oriented,” I only said “OO.”#8 Agile Means The End of Freedom
This is an interesting one because when Agile is implemented well, there is actually much more freedom for all involved. I think the message here is that management needs to keep in mind that programmers are understandably wary of new initiatives that smack of yet another way to impose control. When talking to programmers about Agile, be sure to emphasize that Agile will affect the whole organization, management included. After all, “waterfall” is primarily a management method and does not include specific technical practices.
It is true though that Agile means focusing on customer value and frowns on major re-architecting projects. Agile promotes incremental architecture where the architecture is built or improved over time and directly tied to implementing customer value.#7 Management is Only Doing This Because They Think We’re Not Very Good
If you want Agile to succeed, you need to point out, and be sincere about it, that Agile will affect the whole organization, management included. Otherwise it can come across as an “us vs them” situation where management isn’t the problem, the programmers are the problem. And lets face it, waterfall is a management method, not a programming language.

#6 The Agile Consultant Will be A Pain in The Neck
From experience, programmers know that if you are going to introduce some new thing there’s probably going to be a know-it-all consultant coming in to point out all of their flaws and give generic advice without even getting to know what they do.
Let the buyer beware! See #10 - "Snake Oil"#5 Gross! Pair Programming!
You probably don’t have to worry about this one because you probably won’t introduce it anyway. On the surface it seems like paying double. While there is definitely value in this, it is far enough off the beaten path of Agile that nobody reading this needs to worry about it.

#4 Stand Up Meetings == The Inquisition
Stand up meetings are not a question and answer period. . If somebody turns them into an inquest, you have a problem and it isn’t Agile. Agile can’t help you with this, but it can make it more obvious. If you are a manager and feel tempted to turn the stand-up meeting into an interrogation, you are going to end up with a room full of unhappy and uncooperative programmers. Time to re-read "The Unspoken Truth About Managing Geeks."#3 Drive-by Agile Transition
Some managers (not you of course) read an article about Agile, declare “we’re going Agile” and then ask at all future meetings “how are we doing on this Agile thing” and then don’t react well when they see lots of blank stares.
If you do this, Agile will fail.
One other point on this, not only will an Agile Drive-by fail, your programmers will be pretty upset that they weren’t consulted in the decision. Going Agile is a big change and you are much more likely to succeed if you involve everybody in the decision.#2 Management Isn’t Fully Committed to the Transition
Going Agile takes sustained commitment. Not only will you need to see the transition through the tough parts, you’ll also need to provide budgetary support. That is, you need to fully fund the transition.
Depending on the size of your organization, it is likely that you will need to hire at least one Agile consultant to see you through the transition. You probably don’t have a Continuous Integration system, enough virtual machines, enough real machines, an Agile Project Management system, etc, etc. Whereas before you probably only needed one of everything, for instance an Oracle test environment, you will now probably need at least double. That said, see #10 - "Snake Oil."#1 This is Really Just Another Way to Demand More with Less
Especially now, people are pretty sensitive to the call to “do more with less.” Agile can be perceived as a way to do more with less. But of all of the benefits that Agile provides, “doing more with less” is not one of them.

Well, if you hate the fapping then why spend the time reading a post which is likely to fap? :-)

In any case, the process is only important because of the software being made. Many folks dislike the fact that they end up building things that customers don't want and part of that has to do with the process. Clearly not just the process, but there is a balance. Building what people really want in a timely manner requires both good bits and a good process for creating those bits. Otherwise you may end up creating the absolute best version of something that not enought people actually want.

I agree that most developers would be so happy to see agile/scrum managers die in a fire. I have been involved in agile at 3 different companies and they all sucked - big time. People like to rely on PROCESS instead of creative developers. Agile is killing software quality - and no, I do not care to hear anyone dubiously defending agile/scrum - it is a cancer. I bet Obamacare website was an agile project. Nuff said!

I have been a developer for over 30 years, mostly in the private sector, but I now work for a federal government agency. We are currently having Agile foisted upon us, and I have to say that it hasn't been the a pleasant experience.

The attitude that "We don't need to document, we're Agile," or "We don't need a design, we're Agile," etc., is simply mind boggling to me. We constantly have to try and rehash what we're supposed to be doing because nothing is written down anywhere.

Also, as far as a development methodology is concerned, in my experience, methodology is meaningless. Methodolgy is only there to track the progress of a project, and to track the artifacts created for a project. It's the people working the project that makes it a success. Not the metholodogy. If you have a good team of people, you can do a project on the back of a paper towel and it will still be successful.

If "success" is how you judge a methodology, then I've used Waterfall successuflly for 30 years. In fact, the only project that I was ever involved in that was not a success was on where the methodology was RAD/JAD. After months of meetings, we had to revert back to Waterfall to get the project off the ground.

I may be a dinosaur, but my philosophy is, "If it ain't broke, don't fix it."

I also hate it like many others. My main frustration is that we all have to do the and be the same. It is like that teacher in Pink Floyds movie the wall, when the uniform sausage comes out. Do you know that part? We all do the small tasks, we all pair program, one fit, we report daily, we're interconnected as the Borg, and we all pretend to be happy when the manager steps into our room. I wonder if somebody has had suicide thoughts after being forced to apply scrum for example. It kills individuality and creativity. It's a phsycho death trap, it is the living hell.