Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Does Agile Work for Short-Term Projects Only?

DZone's Guide to

Does Agile Work for Short-Term Projects Only?

Read this article to find out if long-term planning and management of large-scale projects is or isn't possible with Agile methodologies.

· Agile Zone
Free Resource

Learn more about how DevOps teams must adopt a more agile development process, working in parallel instead of waiting on other teams to finish their components or for resources to become available, brought to you in partnership with CA Technologies.

Does Agile Work for Short-Term Projects Only

We know Agile as an iterative approach to managing projects and change, based on building plans for short intervals only and hitting the reset button at their end to start again from scratch.
Should this imply that long-term planning and management of large-scale projects is not possible with Agile methodologies?

This line of thinking would have a fundamental flaw — an assumption, that good results actually stem from a plan. As if making the decision to achieve a given result was equivalent to having this result materialized.

Isn't it more likely that it is the process itself that forms the outcome of a project? And that putting an emphasis on the project execution and caring for details should, therefore, bring better results than having a great master plan?

Does it not make sense then to have as many opportunities to rethink the next steps and to exercise many short-term goals, rather than complete a large plan without any critical view on it along the way?

Requirements will change for long-term projects even more-so than for short-term ones, so having to re-evaluate the best way forward a number of times cannot be a bad thing, can it?
Agile therefore greatly supports long-term jobs with the following:

Multi-level Verification Makes for a Better Product

Thanks to this, you get to prove the value of the project's assumptions various numbers of times, rather than just once without ever looking back. This is fantastic for highly competitive product development, as you're able to rethink each aspect of the product numerous times, often by involving different groups of people and hence adopting multiple perspectives.

Improving Globally While Evaluating Locally

While viewing an aspect of a repeatable project a number of times, there is a chance that teams will be able to actually spot fundamental flaws in their work overall, and therefore use these as opportunity for large-scale process and methodology improvement. You could say, that single project improvements breed global method polishing.

Being Agile Means Great Flexibility

With taking on an Agile approach you give your team time to actually respond to any new demands, to make appropriate changes at the time they are needed, instead of having to go on with original requirements — which everyone can know to be outdated halfway down the line - just because this was the plan.

The quality and accuracy of the result is the goal, not the perfect alignment with the initial plans. This is highly valued by the stakeholders.

Though it may be easy to associate Agile with sprints and quick action taking, it's worth keeping in mind this can be used to great advantage for large scale and long realization term projects.

Discover the warning signs of DevOps Dysfunction and learn how to get back on the right track, brought to you in partnership with CA Technologies.

Topics:
product ,development ,software ,teams ,master ,analytics ,plan ,tool ,improvements ,project

Published at DZone with permission of Anna Majowska, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}