Insight

Insight article

agile_development

Agile Development: A Management Perspective

Caroline Trudeau, Senior Consultant
February, 2008


Agile development refers to a methodology for building software that promotes development iterations throughout a project. Rather than defining a very specific scope during the project's planning phase, agile development advocates rapid and incremental feature releases to production. The process is highly collaborative and emphasizes working software as the primary measure of progress.

Why would any business encourage this seemingly free-for-all atmosphere -- limited documentation and specificity in planning, all occurring at a frenetic pace? The answer is that some instances warrant it. A project that has rapidly changing and even emergent requirements will benefit from the flexibility of the agile approach. One of the main advantages of agile methodologies is the reduction in development duration cycles [1], resulting in products out in the marketplace faster than with a traditional waterfall development cycle.

More and more organizations today are using agile development processes [2]. This fact is evident from the increased presence of web user groups devoted to agile and the creation of open-source project management information systems specially designed to support agile development processes. Such events in the software development industry and marketplace indicate that the age of agile is here.

The decision to go agile is a serious endeavor for any company and requires careful consideration before the decision can be made. Before making the investment, it is important to identify characteristics common to organizations that have been successful at implementing agile development, and compare them to your own company. While it is not in the scope of this article to define specific agile methodologies [3], or tell organizations how to transition to agile processes [4], it will describe characteristics of an organization that is ready to embrace agile development.


Commitment to User Feedback

Because agile processes require short development cycles, interim releases to production add incremental value throughout the project’s total development cycle. These releases take the form of prototypes and beta periods, for example. Soliciting user feedback about the product in its various states is critical to the product’s long-term success. Agile methodologies provide a unique opportunity for organizations to listen to their users and incorporate their ideas about how to improve the user experience. In order to maximize this benefit, organizations must develop, utilize, and refine a formal feedback cycle with their users.


Disciplined Feature Prioritization

When favoring schedule over scope and quality, feature prioritization becomes critical. All project team members must understand the project’s objectives and ensure that on-going scope decisions always support these objectives. This practice usually requires an engaged product management team that must participate in day-to-day project activities and communicate a consistent message about priorities.


Communicating Change

Given the iterative nature of agile methodologies, project team members should be held accountable for consistent communication pertaining to project decisions. As those decisions are expected to change over time, a significant investment in information distribution must be made. Expect project team members to spend a lot of time in meetings, and require decisions to be documented. For organizations whose project management methodologies are more mature, every team member should be empowered to engage change management procedures.


Hiring and Retaining the Right People

In order for speed-to-market to have the least impact possible on quality, organizations employing agile methods are highly dependent on the quality of their people. They employ the best developers and depend on a supporting staff of technical managers that enable the design team’s vision to be executed accurately and efficiently. Highly skilled and motivated individuals are at the core of successful agile organizations.


Conclusion

In managing software development projects implemented with any methodology, a delicate balance between scope, quality, and schedule always exists. So, is your organization ready for agile? If you have flexible, rather than rigid processes within your organization, have an open line of communication with your users, a methodical way to prioritize project features, an organization that embraces change, and has highly talented people, it is worth considering.

Resources and References

[1] http://www.projectperfect.com.au/info_agile_programming.php
[2] http://searchsoftwarequality.techtarget.com/news/article/0,289142,sid92_gci1287341,00.html
[3] Craig Larman offers in-depth definitions of agile methodologies in his Agile Software Development Series book, Agile and Iterative Development: A Manager's Guide.
[4] The January 2008 online edition of the Agile Journal provides a series of informative articles to help support this important decision.

View all Insight articles
NavigationArts home

 

Subscribe to Insight, the NavigationArts monthly newsletter


Sign up to receive our monthly newsletter about internet strategy, user experience, and content management.