Agile Development: Is It Right For You?

Agile development has won legions of converts in recent years, and no wonder. In the right hands, Agile methods can produce first-rate software while cutting the cost and time of development.

Some organizations—especially larger ones—may have difficulty adapting all aspects of this approach to their needs. Fortunately, it’s entirely possible to borrow Agile’s insights and join them with other techniques for a flexible, yet orderly process of development.

What It Means to Be Agile

True to its name, Agile development takes place in a series of short, fast sprints, rather than the extended timeline of older approaches. Project members have the chance to start using pieces of the software early on. They can immediately incorporate the resulting insights, rather than wait for a larger system to come together.

In addition, many Agile developers dispense with extensive initial planning. They believe the most effective way to design a feature is to wait until they can see how other parts of the system work and how the different pieces need to fit together.

The Benefits of Structure

Despite Agile’s allure, there are also advantages to a more structured approach.

Vision. Careful initial planning can help establish how your target market will receive the final product, and whether the software will succeed in gaining customers and market share.

Budgeting and approval. Most large organizations will only contract for a project if they have a clear idea of what it will achieve, how much it will cost and how it will meet stakeholders’ needs. A solid initial plan can give them confidence that they will receive what their contractor has promised.

Architectural complexity. Developers can spare themselves frustration by tackling the hardest architectural challenges at the outset. That includes understanding how specific features will interact with the architecture and whether this will cause problems for the software.

The Best of Both Worlds

A hybrid process can provide many of the benefits of Agile development, while enhancing a developer’s ability to plan ahead and to preempt difficult challenges. WebINTENSIVE has had considerable success with its own version of this approach.

Planning Ahead. The development team begins by working with the client to produce a detailed set of business requirements. This document defines the project’s scope, without dictating every step of the development process.

Visualization. The next step is to develop wireframes, then create picture-perfect design mockups of the key interfaces. This allows the team to simulate the experience of using the product, think through the details and flesh out a vision for the software.

System Architecture. Team members focus on the project’s toughest architectural challenges before anything else. They make sure the architecture is solid and fulfills the system’s performance requirements, such as speed, hosting and the ability to scale.

Demonstration of Features. In tandem with initial work on the architecture, team members create a proof of concept for the core features of the software. They assess whether those features will require a particular architecture for the system as a whole—or even result in tradeoffs that make the project unworkable.

Development Sprints. Each 2- to 4-week sprint aims to produce a handful of useable features. As a result, developers have the chance to try out the software early and often, drawing on that experience to make improvements and correct course as they go.

Milestones. When possible, the team breaks a larger project into multiple phases and deployment. Once again, this method allows developers to learn from actual usage and make adjustments. It also makes it easier to meet deadlines, and it puts the most value-producing features in real use sooner, so that the system can be deployed even if some less crucial capabilities are still missing.

Documentation. Clear, comprehensive documentation, reviewed by expert programmers, ensures that new users and developers will have reliable guidance in the future.

An Adaptable Approach

Think of Agile development as one set of tools in a developer’s toolbox. Some tools are well suited to many projects and organizations, others less so. A smart strategy is to pick and choose, combining the best of these techniques with other methods that have shown their worth.

  • Facebook
  • Twitter
  • LinkedIn
  • Digg
  • del.icio.us
  • email
  • RSS
  • Print

Want to receive our newsletter, WebINTENSIVELY Speaking?

Name:  
Email:  
Address:  
Phone:  
Company:  
© Copyright 2011 WebINTENSIVE Software. All rights reserved. Terms and Conditions Privacy Policy