RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


Top 10 Reasons to Use Agile Development : Page 2

Why Agile software development is a better way for a business to adapt and respond to change.


6) Agile development enables emergent innovation

Big innovations are easy to recognize, but hard to come by; they typically materialize from work outside of day-to-day projects. Because Agile creates a sustainable development environment, a greater opportunity exists for innovation to emerge from the employees. Teams that are working constant overtime to meet schedules simply lack the time or inclination to think about anything else other than the difficult schedule in front of them. In sustainable development environments, people have the time to think more about the business and explore - creating the potential for innovation that did not exist previously.

Even on "routine" tasks, the collaborative nature of Agile development creates the opportunity for smaller innovations to occur. Requirements are discussed as User Stories, involving what the business needs along with the benefit that it hopes to realize. The important aspect of this is that the requirements aren't considered to be cast in concrete; there is a discussion about what the business is hoping to achieve.

The discussion yields important insight and understanding for the entire team. The worst-case scenario is that everyone will be on the same page. At other times, the dialog between business experts and the technical experts can yield unexpected results, like turning complex, difficult features into elegant, differentiating features.

7) Agile development builds trust and relationships

Through early and often delivery of working software to the business -- even if this is nothing more than demonstrating the features -- the business will grow to trust the development team. In addition, the continual dialog and the ability for the business to adjust and adapt the software gradually changes the "us versus them" dynamic into a "we."

The same will happen for the members of the Agile development team. Instead of everyone divided by functional roles, Agile teams make the most effective use of the team members as dictated by the needs of the team to meet its commitments. The shared goal becomes more important than each individual working strictly within his or her area of expertise, with defined policies and procedures for handing off work between functional roles. This breaks down barriers between functional disciplines, enabling the team to reach higher levels of productivity.

8) Agile development expects continuous improvement

Agile development expects its practitioners to be continually learning and adapting, and is something that is enabled in part through sustainable development. Sustainable development provides the time and energy for the development team to expand their working knowledge of their profession through self-learning.

In addition, Agile teams conduct regular retrospectives at the end of each iteration to review what is working well and what can be improved. Team members are expected to assess their teamwork and their use of (or lack thereof) technical practices and to make adjustments in the upcoming iteration to improve.

9) Agile development is motivating and engaging

Agile recognizes that knowledge workers have the greatest understanding about their own work, and that they are the ones best qualified to plan and organize how they will accomplish that work. Agile development utilizes an autonomous, self-directed work environment that is a powerful motivator. This control over their workday, plus operating in a sustainable mode and the feeling of accomplishment that is a by-product of continuous delivery of working software, all combine to provide a solid motivational boost to each and every person on an Agile team.

10) Agile addresses the realities of software development and the needs of the business

The challenges that every software project faces stem from the fact that we’re not producing pre-defined widgets; there is uniqueness involved with every software project. Agile development’s entire approach addresses the major problems encountered with software projects and managing talented knowledge workers while being aligned with, and responsive to, the business.

I'll close where I opened. There is a reason that the Agile Manifesto states, "We are uncovering better ways of developing software by doing it and helping others do it." Agile is a better way.

David holds degrees in Computer Sciences and Business Administration and has extensive experience in the computer field. He currently works at Vertafore, Inc., where he has been managing software development for several years. David regularly writes about managing software development in his Software Results blog, which can be found at http://www.softwareresults.us
Email AuthorEmail Author
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date