Archive for the ‘Humor’ category

Agile Kids Say the Darndest Things

November 28th, 2011 by lorne cooper

I hope I don’t end up with a seized engine on the side of the road, but if I do, I’ll know I should have had that oil change. I hope I don’t end up on the Worst Dressed List, but if I do, at least I’ll know I should have given away those old shirts.  I feel sorry for those on the “Worst Agile Implementation” list who don’t even know they’re there.

In the past few months I’ve had the privilege of talking to approximately fifty organizations about their Agile implementation.  Most of them are doing well, and many of them have great insights about how they customized Agile to fit their process requirements.  But some of them really Say the Darndest Things.

“We do Scrum, it’s just the rest of the company doesn’t.”

“So first we break the requirements specification into pieces and call each of the pieces a story.  Then we do our iterations and pass them off to the release team.  We’d sure like to get Product Management, QA, and the customer involved, but they don’t want to.”

There are a lot of places an Agile approach can add value, and I’d hate to adopt a “waterfall approach to going Agile”, but you’re really not doing Scrum.  The biggest chunks of value, the incremental use of customer feedback, and going from “completed state” to “completed state” in each iteration are lost if you can’t get more support.

“We’re Agile until the development is done.”

More than once I’ve been speaking with an earnest development leader who’s describing the Scrum process.  They’ll launch in, with obvious pride, and tell me how they’ve gone to two week iterations, do standup meetings, and work from a backlog.  “Terrific!  And how do you do QA?”

Oh, yes, of course they do QA, silly!  In fact, they demo the completed development to the QA team every sprint review and send it off to get tested.  Sometimes, unfortunately, QA actually finds some bugs that need fixing.  So that’s why they put the sprint on hold for a while to fix the bugs and loop them back into QA “’cause we don’t want to wait an entire sprint before they can restart the testing.”

The other side of this one is the guys that take the old “Release Tail” loophole for all it’s worth.  “Yes, Lorne, we’ve been agile for three years now.  We do Scrum, unit testing, standups, and play in the World Series of ‘Planning Poker’.  We do that for about six weeks, or until the release.  Then we have a three month release testing tail, which follows a ‘modified Scrum process’ … the project leader estimates the amount of work on each bug QA finds, and assigns it to a developer.  Sure, sometimes we have to work on new functionality during the “release testing tail” … you can’t expect the customer to stop needing improvements for three months!”

Folks, I don’t think I’m sharing any great trade secret when I tell you the QA process needs to be completed before the story is considered “done.”  I don’t want to be Klaus Fuchs of Scrum, but here’s the secret: you’re going to have to invest more in testing up front.

“We do continuous integration every night.”

I blame the education system: how’s an engineer supposed to know what “Continuous” means when we have “social promotion!”  Now some people understand the idea of continuous integration, and made a conscious effort to make it more “Discrete”.  Some companies I talked to had broken builds that lasted for a week.  You’d rather have a child repeating “Mummy” every 30th of a second before you’d like to get an email every five minutes saying the “Build Failed.”  I get it.  And if the email was going to your boss too, well, you don’t have to be Dogbert to know that’s a bad idea.

Builds are going to fail.  Get used to it.  The problem is not that the build failed, but that you couldn’t fix it.  Good practices are to have the team drop what they’re doing when the build fails and hop on fixing it.  If they can’t fix it, it needs to get escalated *pronto*.  Better is to have the team do local builds and unit testing before they check in.  Best Practices are to divide up the build process by team and stage of development, so your team only pollutes itself, not the rest of the development org.

“We don’t need training since we can use the internet.”

Uh huh. So I guess the schools will be shutting down any day now.  Not that the Internet might not turn out to be a useful aid someday, but the software development process is a hands-on activity.  And similar to other hands on activities, like dancing or carpentry, you can’t learn to do it by reading a book.  You’re going to need to get some experience with the process before you understand how to run a sprint review or a stand up, how to estimate stories, and how to work with your QA partner.

Now if you’re a hobbyist and working for free, your time is cheap, and there’s no reason not to use trial and error as a learning method.  But if you’re getting paid, and your work is important, you really don’t want to waste four sprints figuring out what someone can help you get right in sprint two.

I’m hoping my surgeon, pilot, and barber got a few lessons before it was my turn.

Finally…

No one has to pass a test to call themselves “Agile,” nor should they. Agilistas don’t have a monopoly on the right way to develop software.  But when people believe they’ve made it to Agile without using critical Agile concepts like time boxing development or getting to “done”, they’re missing the real value.

 

Before I Went Agile

February 25th, 2011 by amonty

A New Language

As teams adopt Agile development methods, often a new sort of vernacular emerges. To those unfamiliar with Agile, it can sound quite foreign when these groups start rattling on about this or that. I thought it might be fun to list some of the phrases or activities that may have had an entirely different meaning before I went Agile.

Agile Terms Before We Were Agile

  • XP was just the operating system running on my parents’ computer that I was constantly fixing.
  • Scrum was something done on a muddy field by people much tougher than me.
  • The term waterfall evoked beautiful memories of hikes in Hawaii instead of painful ones of past death marches.
  • The idea of pairing with another co-worker was strictly forbidden by HR policies.
  • Similarly, playing  poker in the conference room was generally frowned upon.
  • The notion of sprinting for a week or more was insane.
  • An epic story was something like Beowulf or the Iliad.
  • Lean was my signature club dance move.
  • The words burn and chart were never used in a positive sense.
  • I wouldn’t have imagined sitting in a meeting with chickens and pigs.
  • The word agile was the last word used to describe a group of software developers.

How about you?

For more information on Agile terms, visit the Agile glossary.

You’re So Agile! Implementing Agile… in a Sales Team?

September 27th, 2010 by clucca

My job here at AccuRev involves working as an “Agile Evangelist,” and along with the other Evangelists on my team, we have appropriately named ourselves “Team AgileCycle.”  Prior to our AgileCycle product launch, AccuRev took a company initiative to bring Agile into every part of the business.  The idea was to bring an educational awareness of Agile process to all of our teams by implementing basic Agile practices.  ”Team AgileCycle” was responsible for bringing Agile to the sales team, so our salespeople could have a taste of what Agile development was really all about.

(I should point out that we do realize sales organizations and development organizations are vastly different, and certain Agile practices can’t be applied to a sales cycle. But we did see great opportunities to pick up Scrum methodologies and usefully apply them to help within our sales organization.  Some of the changes we made do not qualify as not “pure” Agile, or even best practices, but the point of this exercise was to expose our team to some of the things software developers are doing in the real world.)

Implementing Agile Step 1: Sales Scrum Training

At AccuRev, we subjected our sales organization to Certified Scrum Training. In this training we walked our team through the different phases of Scrum: planning sessions, standups, and retrospectives.  We even exposed the sales team to planning poker when walking them through typical development cycle.

Implementing Agile Step 2: Implement Sales Standups

The next step was to take what we learned, and actually implement it.  At AccuRev, we now have multiple standups with our sales team, in order to obtain feedback quickly and learn what our customers are saying in the field about AgileCycle.

Implementing Agile Step 3: Mark Out Sprint and Retrospectives.

In the sales team, this is simple. Our iteration is once a quarter.  I would never suggest a development team implement this long of a sprint, but for sales it works. At the end of the sprint we got together and performed a retrospective, which discussed results for each territory, reviews of our processes, and brainstorming for the next quarter.

Implementing Agile Step 4: The Task Board

In the “Team AgileCycle headquarters,” we maintain a task board. Here we take all of our goals and tasks for the quarter, and mark them out asImplementing Agile: The Task Board “backlog,” “in progress,” and “complete.”  (We’re still working on how to measure our story points, but the basic process is that we plan our backlog with our quarterly goals. When something else comes up, we fill the backlog with those tasks.)

And even though this task board seams simple, it actually wields a lot of power and has become a great tool in organizing our work.

What has surprised me the most during the whole implementation process is just how well the sales cycle seems to match specific Agile methodologies already. Think about this:

We already built in an iteration time: 1 quarter

We had planned velocity already: Sales to make this quarter

We inspected and adapted: If the numbers were not met we wanted to understand why. If we weren’t on velocity we changed course.

We had Scrum meetings before it was called “Scrum”: Weekly status and impediment meetings.

Burnup chart: Heck, the sales meter in Salesforce could even be compared to a burn up.

So after all of this, my question is:  Are sales teams “naturally” Agile because of their business? How similar is a highly functioning sales organization to a highly functioning Agile Development Organization? What do you think?