SmartAdvice: Agile Programming Not For The Risk Averse - InformationWeek

InformationWeek is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

IoT
IoT
Software // Enterprise Applications
Commentary
8/10/2005
06:20 PM
Commentary
Commentary
Commentary
50%
50%

SmartAdvice: Agile Programming Not For The Risk Averse

Once an architectural framework has been set, agile programming can give a quick turnaround on specific modules, The Advisory Council says. Also, built-in code tests or unit tests remain the best way to get quality apps.

Editor's Note: Welcome to SmartAdvice, a weekly column by The Advisory Council (TAC), an advisory service firm. The feature answers two questions of core interest to you, ranging from leadership advice to enterprise strategies to how to deal with vendors. Submit questions directly to [email protected]

Beth CohenQuestion A: What is agile programming, and should we be interested?

Our advice: In the quest for smaller, faster, and cheaper software, companies have been looking hard at a new paradigm in programming methodologies called agile programming. The first agile methodology, "extreme programming, or XP, was developed in the late 1990s by Kent Beck, Ward Cunningham, and Ron Jeffries.

By 2001, the umbrella term was coined to describe a number of methodologies that shared the common characteristics of breaking projects into small, manageable modules and using a highly iterative development approach instead of traditional "waterfall" schemes. It's particularly effective in startup situations or in secret projects where the final product is, by necessity, ill-defined at the initiation. From a business perspective, this can be very attractive as it more closely maps to the natural market-development cycle.


Related Links
Extreme Programming: A Gentle Introduction

FitNesse

Agile Software Development With Scrum

Domain-Driven Design
What distinguishes agile programming from the more traditional "top-down" design methods is that once an overall architectural framework has been established, the entire project is divided into small modules that can be developed into fully functional, tested, and potentially usable releases in a short amount of time -- often in less than a week or even a day.

Since the agile approach places a higher value on risk management, early user feedback is highly valued. Agile projects should either succeed or fail early on, before too many resources have been committed. There's nothing worse than investing a lot of resources before finding out the product has features the users didn't want or need. That means that teams can focus on only the modules and features that have the most value to the users. Marketing types love the approach, because even early in the development cycle, important features are functional and ready to demonstrate.

Although it's not essential, it's a good idea to plan the overall architecture at a very high level, in the sense of deciding on the interfaces and protocols, vendor libraries, etc., before creating the individual working modules. It's best if everyone on the team has a good understanding of the overall design and the reasons behind the design decisions.

Because agile methodologies are so dependent on creating separate working modules, they require lots of embedded and iterative testing throughout the development cycle. Yes, quality-assurance and user-acceptance testing is part of the process, but instead of tacking it on at the end, where the temptation to truncate the testing to meet deadlines is high, it's built into the coding cycle.

Agile programming used in the right context and for the correct project can be an extremely effective technique. By modularizing the project into interlocking, manageable chunks, each feature can be developed separately while maintaining overall product functionality during the process. Of course, as with any methodology, the keys to a successful application of agile programming tools are good programming practices and excellent project-management skills.

--Beth Cohen

We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.
Previous
1 of 2
Next
Comment  | 
Print  | 
More Insights
Slideshows
IT Careers: Top 10 US Cities for Tech Jobs
Cynthia Harvey, Freelance Journalist, InformationWeek,  1/14/2020
Commentary
Predictions for Cloud Computing in 2020
James Kobielus, Research Director, Futurum,  1/9/2020
News
What's Next: AI and Data Trends for 2020 and Beyond
Jessica Davis, Senior Editor, Enterprise Apps,  12/30/2019
White Papers
Register for InformationWeek Newsletters
Video
Current Issue
The Cloud Gets Ready for the 20's
This IT Trend Report explores how cloud computing is being shaped for the next phase in its maturation. It will help enterprise IT decision makers and business leaders understand some of the key trends reflected emerging cloud concepts and technologies, and in enterprise cloud usage patterns. Get it today!
Slideshows
Flash Poll