Posts Tagged ‘methodology’

Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!?

January 16th, 2012 by clucca

I was browsing reddit.com the other day and ran into this post:

20120116 Lucca Reddit Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!?Yup. It’s true. The tried and true development approach of Waterfall that we’ve been using for years was an example of what NOT to do for software development.

From the Wikipedia article: The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce,[3] though Royce did not use the term “waterfall” in this article. Royce presented this model as an example of a flawed, non-working model (Royce 1970). This, in fact, is how the term is generally used in writing about software development—to describe a critical view of a commonly used software practice.

That’s what’s amazing about waterfall, and the agile transformations that seem to be taking the industry by storm. Maybe we all know deep down there is a better way to develop software.

I hope someday we don’t look back on Agile the same way we look back on Waterfall. I don’t think it will happen for the simple reason that Agile doesn’t have one methodology tied to it. Agile can mean a simple set of practices to help with software development, but it’s more like a mission statement as opposed to a plan.

Before Agile, We Never Called It Waterfall…

October 31st, 2011 by clucca

A funny thing has happened over the last couple of years…. we started calling waterfall software development… er… “waterfall”. By this I mean, we never had a name for the process… waterfall was just called “software development”. There was no distinction or name for what we were doing- there was only one way. This is a draw of agile, it’s something different.. and it’s the only new development methodology to actually get attention in the last 10 years.

So, what’s the deal?

#1) Agile is an umbrella term for several methodologies.
Agile encompasses a lot of different things; it can mean different things to different people. This might be why people have such a hard time understanding it. So comparing “waterfall” to Agile isn’t entirely accurate, or possible, since it’s like comparing one NBA team to all of MLB. Agile encompasses several methodologies (such as XP, Scrum, Kanban), which are all iterative in nature… that brings us to…

#2) Agile is iterative.
Yes, agile is an umbrella term, but all of the methods in agile share common core values: The fundamentals are to incorporate iterative development and to have continuous feedback so that you can always improve. This means you continuously plan, continuously test, and continuously integrate so you can adapt when needed.

#3) Agile is adaptive, not predictive.
Do you remember what “waterfall” was like back in the day? We spent months gathering business requirements, writing specs, and designing, and then spent the next 10 months coding. Since we spent the first few months trying to predict what the next 10 months would entail, we could never accurately estimate how much work a task was supposed to be, and heaven forbid the requirement changed half way through! Agile is an attempt to shorten that cycle so we don’t have to waste 10 months before find out something was wrong.

#4) You can pick and choose what methods you want to implement.
It’s funny. I ask people all the time, “How agile are you?” They typically say “Well, we’re somewhat agile, but not fully agile.” People tend to measure some sort of agile “zen” in their head, and that doesn’t exist! If you’re practicing some agile methodologies, you’ve won half the battle.
You’ve won half the battle if you are practicing:
·         Continuous Integration
·         Agile Workflows
·         Test Driven Development
·         Short Iterations
·         User Stories
There’s no out of the box way to do this, but if these methods work for you… then you’re there.

#5) The genius Of Agile is in the name.
Since the word “Agile” can’t be traced back to a specific methodology like “waterfall” we probably won’t ever think of it as “development”. In addition since it’s not a prescribed method of doing things (ex: Watefall.. requirements->design->implementation->verification->maintenance) it just can’t fail… whatever methods we use can always be improved and adapted to best suit our needs.

Selecting the Best Agile Pilot Team

April 22nd, 2010 by Bob DeMaria

We recently produced a webinar here at AccuRev, co-sponsored by Rally Software, about the Top 10 Factors for a Successful Agile Implementation.  Next up is number 9, selecting an Agile Pilot team.  We mentioned in our last post that the Pilot team is one area we need executive commitment on. The next logical step in the Agile adoption process is getting the right Pilot team to use the Agile methodology successfully.

The success (or failure) of this initial Pilot team is really going to hold the success of your Agile adoption across your organization.  If this team were to fail, people are going to view Agile as a methodology that fails, and not necessarily the team itself.  So this could hinder or even kill the adoption of Agile across your organization.  Choosing the Pilot team is a very important first step as we start to move towards Agile adoption and implementation.

Once again we’ll require support from upper management, but this time because running an Agile pilot is going to impact the teams around this Pilot team.  It’s going to impact their customer base. It’s going to have resistance from some developers in the organization and management in the organization. Everybody feels a bit of resistance towards change, right? Agile adoption is something that’s going to make us better, make our product better and allow the ability to deliver better features and better products to our customer base.

One area that I want to talk about is that the team needs to be properly trained and coached.  I mean this absolutely, sincerely.  I’m not talking about, “Let’s get one of the guys in my organization an Agile book and have him read it and then go teach the Pilot team on how to do Agile.”  I’m talking about a professionally-trained organization from somebody that knows how to do it, from somebody that has done Agile development before.  Someone who knows its pitfalls and can actually lead and educate your team on how to do Agile and how to do Agile right. That’s very, very important.

Next, the team should be committed to delivering features. The reason for this? One of the common pitfalls during Agile adoption is going after too big or too small of a product. To alleviate this problem, get the team to commit features, going after one particular piece of a larger product. For example, let’s say maybe you have a product that has a GUI portion, a Core portion and a backend database portion. We might suggest you go after the GUI portion of that particular product and allow that team to go Agile, so as to see some immediate and very visible results. Again, this is a great way to deliver something concrete, to see commitment, and to see goals being achieved. This is all based on selecting the right project for adopting Agile as a Pilot.

There are actually four areas of importance when considering a Pilot team; Duration, Size, Importance and Senior-level sponsorship. What I mean by duration is identifying a project that is not too short,  but not too long. We don’t want an extremely short project so people don’t have time to settle into a cadence and I don’t want to select something too long so it takes forever to achieve a goal – we might suggest 2 to 3 months.

We also want to look at the size of the team. We don’t want it too small or too large. So we’re looking at a single mid-size team. Too small, and people might think, “Agile worked for that little, small Pilot team but is it really going to work in our larger development organization?” And too large may give too much complexity for that first Pilot team. So it is good to start with a single mid-size team – need I mention the 7 +/- 2 rule?

The level of Importance of the project is critical to the visibility of success. The project that they’re working on should be important to the company. The GUI project that I mentioned, very visible. They have to succeed or there’s going to be a major problem with the product. So everybody is motivated to have that team succeed and when they do it’s going to be noticed.  Success or failure… it’s going to be very VISIBLE!

Lastly is the Senior-level sponsorship and having a key business sponsor to back up the Agile Pilot team. As we run into resistance or we run into problems, we need to have somebody there to fight the good fight and to smooth those things over.  Remember, this is the direction of the organization and it is in the best interest of the organization.

Great, so we’ve selected our Pilot Team… now what?