It seems most companies are practicing Agile methodologies these days for software development.

I'm curious to know if there are any downsides to using Agile, does it have shortcomings, is it always the right methodology to use?

Do you any of you have experiences of using Agile and it didn't really work, maybe it was due to the type of project, or the team?

  • 2
    yes and documented too, but agile can be good as long as you don't do what is described in this manifesto. – gbjbaanb Apr 6 '13 at 14:37

Agile is successful if you have an organization that is committed to doing it right. No methodology will work if you don't have commitment and training in the methodology.

I would also say that agile works best at a certain scale. You have to be able to divide your project into reasonable size deliverables. You wouldn't be able to build an office building or a nuclear submarine using agile.

Similarly, in software, some projects are large and complex enough that you really can't start without doing a lot of the up-front design work using a more waterfall-like approach. Think about something like an operating system, for example. Another example would be a system that crosses many organizational boundaries, like a national health electronic record system.

Once you've done your overall architecture and design, you can use agile to build-out the features, but if you started with agile you probably wouldn't get off the ground.

  • +1 For a very balanced answer! Agile is good for carrying out a plan or for prototyping non-mission-critical software (where the worst that can happen is that the user gets an error message in their browser), but it does not work well when you need considerable upfront analysis and design. In the latter case you need to embed agile into a more comprehensive process. – Giorgio Apr 6 '13 at 13:18
  • 2
    Many agile methods put emphasis on the close work with client. The problem is if there is no single client but thousands or more of them using product for various needs (think OS again). – Maciej Piechotka Apr 6 '13 at 18:02

One other thing to think about is the problem most agile methods are targeted to address. The basic assumption is that "software work" is the bottleneck that needs to be attacked to get value sooner. If development is a small % of the overall goal then it doesn't really matter how efficient that part is.

Agile methods have been used successfully for very complex problems, but this requires all the interested parties to be dedicated to the development team and eliminating its obstacles. For some projects that makes sense, but for many, a software project isn't critical to the survival of the business. In that case it makes more sense to de-prioritize the software team.

This sort of thinking presumes the organization is focused on value over resource utilization which is also pretty rare :)

Not the answer you're looking for? Browse other questions tagged or ask your own question.