Can agile development used for brownfield projects? If Yes then what could be the issues?

asim ali's picture
asim ali asked on September 24, 2013 - 3:28am | Replies (1).

Ususally agile development is used for new or geenfield projects but what if this development is used for existing or brownfield projects. What issues could agile development team face while working with exisiting project?

1 Answer

Larri Rosser's picture

Most projects in my world are brownfield, in that they build on or leverage some existing product code base. This doesn't prevent the use of agile techniques, but it does change the scope of your work a bit.

In such projects, the first items on my backlog have to do with analysis of the existing system. The goal is to know what I'm dealing with and agree with my product owner what is fair game for change and what to treat as constraints, based on cost, risk and return. Of course, these decisions can be revisited, but they provide a framework of "what we will live with" and "what we can change" with the implementation team.

I find that in projects of this kind, I need to pay a lot of attention to refactoring - it's possible for a lot of uncoordinated worrying of interfaces to happen on your various scrum teams if you don't keep an eye on it. I like to make sure this gets discussed in the scrum of scrums - sometimes it turns out that we want to move something out of the "constraint" bucket into technical debt or even onto the current sprint backlog.

One of the biggest challenges I run into in these situations is that we want to leverage existing functionality to save money, but with a different workflow or look and feel. Unfortunatley, the stuff we are re-using is not necessarily modularized in that way. That's why that upfront analysis is so important. I didn't mention this before, but another thing to focus on is getting the big picture of what the PO wants up front. Sometimes, just looking at the individual stories, it doesn't pop out that your PO really wants something different as far as UI or workflow, and that's important when you do you value analysis.

Another thing to keep in mind: when you are reusing code, you are inheriting that code's latent defects. It's worth doing a little testing or analysis up front to get a feel for defect density, because, again, this influences what's worthwhile to reuse.

Oh....and your first sprint demo can be done after the analysis but before implementation sprints. This allows you to show what you're keeping, and make sure your PO is okay with it.

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.