IT DRILLDOWN
 
NEWSLETTERS
 

CIO.com updates, insights and advice on technology, management and your career.

 
 
 
LEADERSHIP
 
CIO Executive Programs
The Leader in Face-to-Face Education for Senior Executives

Offering regional and national programs, CIO (and CSO) events bring together some of the most respected names and thought leaders in information technology and security. Presented by CIOs and other senior level executives, these invitation-only programs offer timely topics and strong networking. Learn More »

 
CIO Executive Council
A Peer-Advisory Service and Professional Association for CIOs

Public Teleconferences
Join CIO Executive Council members and participate in the following live teleconferences:

* Planning for Succession:
Models for IT Leadership Development, June 23
* Change Leadership at General Growth Properties: A
Pathways Leadership Development Seminar, June 25
* Managing Change: Centralizing Your IT Organization
July 29

More / Register »

Learn more about the CIO Executive Council »



 
 
RESOURCE CENTER
 
 
 
SUBSCRIBE TO CIO
 
Are you involved in setting the direction for your company's IT budget or strategy?

Apply today for a FREE subscription to CIO Magazine!

 
 

Tutorial

 

ABC: An Introduction to Agile Programming

Agile programming strategy can help reduce application costs, improve application quality and ensure everyone is involved in the creation process. We explain the basics to help you get started with iterations, extreme programming, Scrum and other related programming methodologies.
 

March 28, 2007CIO — Every manager knows about the nightmare programming project. The project that takes twice as long as expected, has massive cost overruns—and there's no end in sight. When you presented the partial application to users, they hated it, yet your company really needs the application to meet certain goals, such as increased production capacity.

Fortunately, you don't have to live with the problems that the old iterative software development process creates; you can use Agile programming to overcome the issues.

What Are the Business Reasons for Using Agile?
What Makes Agile Programming Different?
Won't I Have to Do a Lot of Extra Work?
What's Different, Besides Working in Iterations?
Won't Working Like this Change Our Corporate Culture?
When Should I Avoid Using Agile Programming Techniques?
Is There Just One Kind of Agile Programming?

What Are the Business Reasons for Using Agile?

Businesses need a way to reduce development costs, improve software reliability, decrease time to development and ensure applications actually work with the users, rather than against them. These four issues are a tall order for anyone to fill, but Agile programming techniques can do it in many application programming scenarios. Agile makes business sense because you can reduce development costs by reducing the number of errors developers make when designing and building applications. In addition, Agile programming techniques can eliminate that most expensive development cost of all: the failed application.

However, even when an application makes it out the door and you have it installed on your server, reliability costs can eat up any potential gain from an application. The five 9's of reliability that most companies strive to achieve can happen only with a well-designed application that doesn't spend more time in the digital repair shop than it does answering users' needs. Agile accomplishes this task by reducing the number of potential development errors per module and by providing constant testing that locates errors quickly.

Many businesses are looking to obtain a quick return on investment for any development project. Instead, most projects languish for years as the company waits for the developer to complete the application as a whole. Rather than wait for the entire application, Agile programming techniques help you use at least part of the application today, which means you obtain a significantly faster benefit from the application. In short, you can obtain part of the application free because the cost savings you realize go into the development of the remainder of the application.

Applications that work with the user might not seem like such a big deal, but it really can spell the difference between an application that saves (or makes) money and one that doesn't. A project at a large clothing vendor illustrates this fact. The developer assumed that users would rely on the mouse to select items on screen when taking orders. After the vendor's new application was installed on the production servers, the company realized a significant loss of employee performance, rather than the gain it had expected. It turns out that the employees use the keyboard exclusively; moving their hands from the keyboard to the mouse to work with the application cost precious minutes for each order.

Agile programming helps you avoid this scenario by involving the user early in the development process. If the clothing vendor had followed this approach, the first iteration of the application would have helped the company realize the expected performance gain. Instead, the company spent time and still more money reworking the application.

What Makes Agile Programming Different?

Agile programming breaks down an application development project into small modularized pieces. Each piece, addressed one at a time in a very short time frame, adds to the application and represents a complete part of the functionality. You can deploy the partial application and expect people to accomplish some level of work with it, even if the application doesn't do everything you intend it to do in the long run.

Each piece is an iteration that lasts from one to four weeks. As a result, you know immediately when a particular piece of an application proves troublesome. That lets you work through the issue immediately, rather than after you've built all sorts of other functionality on top of the buggy or "not what the user wanted" bits.

Each iteration is like a mini-project in its own right. As an Agile project manager, you oversee the planning, requirements, design, coding, testing and documentation stages as you normally do, but you do it for only a particular application feature.

For example, if you were creating a special kind of word processor, one iteration might be its spellchecker. The spellchecker adds to the word processor, but it affects only one aspect of the application. Before the developers create the iteration that handles spelling, users can work with the word processor without that feature in place; they simply can't perform a spellcheck on what they write.

Won't I Have to Do a Lot of Extra Work?

Some people imagine that Agile programming techniques require a lot of extra work to implement. However, it actually reduces workload and makes the return on investment significantly faster because of the shorter turnaround time on each component and putting the software into action more quickly.

In fact, because of the swift response that developers can give to such software, managers often use Agile programming techniques to rescue projects that are in trouble. For example, the original designer of Agile programming, Kent Beck, used it to rescue the Chrysler Comprehensive Compensation (C3) project in 1986.

 
 
 
 
 
 
Loading...
 
 
ABCs
 

How To Do Nearly Anything

Just the basics, please. Sometimes we all need a refresher or we need to make sure our team and our colleagues are all on the same page.

Over 25 tutorials on everything from business intelligence to virtualization.

 
 
FEATURED SPONSORS
 
 
 
SPONSORED LINKS
 

Efficient by design: Watch this flash demo of the Quad-Core AMD Opteron Processor

Renowned Engineering Institution Chooses AMD Processor-Based Servers

Establishing a Strategy for Global Distributed Development

Oracle 9i Database Upgrade Management Services - Upgrade with Confidence

Cost-Effective Data Center 1U Server Solutions

Automate Business Processes - Try a Free Mashup Composer

Read Forrester's advice for deploying an enterprise mobile solution

Do the math-calculate the impact of mobile device deployment on your bottom line

Easily manage the Mac in your Enterprise

GET YOUR VoIP ONTM! Win 2 Years of Hosted VoIP from Cypress. $100,000 retail value. Enter today!

Build up or Tear down? See how UC makes sense with Nortel. Calculate your UC ROI

Speed, agility, flexibility - The HP BladeSystem c-Class

See why 93 of the Fortune Global 100 depend on Blue Coat.

White Paper: How Visualization Can Fix Business Software Problems

Oxford International Modernizes Vehicle Order Management System

Learn about the Three Pillars of Data Protection

Putting Open source to the test

Juniper Networks is changing the economics of networking with a no-compromise, highperformance and service-oriented approach

Research about the efficiencies created by different operating systems.

IT Outsourcing: To Rebid or Renegotiate Webcast

Create and Run Any Application On-Demand

A New Generation of Software as-a-Service (SaaS) Solutions

Master Data Management: The Approach Determines the Results

Executive Strategies to Achieve Consistent Performance & Availability across the Enterprise

Implementing Knowledge Management

HP and Oracle deploy unbreakable computing infrastructure at Replacements, Ltd.

White Paper: Assess Your SOA

Oracle & SUN Team to Rise Above the Upgrade Challenge

Extending the Enterprise Network Through Mobility

Microsoft System Center - Designed For Big

Choose a mobile device platform with familiar programs and simplified management

Improve device management - Microsoft® System Center Mobile Device Manager

Explore the interactive whitepaper: Rightsizing Blades for the mid-market

Easily integrate the Mac in your Enterprise

Reducing Data Center Costs with Data Deduplication: A TCO Analysis

Telwares helps firms validate, manage and optimize their telecom spend

TDWI Research report clears confusion about automating data governance

Taking Document Automation to the Next Level

Webcast: Transformation of Application Development

Webcast: Building an Optimized Infrastructure

How to Avoid the Worst Practices in Business Intelligence

White Paper: Juniper Networks Ethernet Switching Solutions Reduce Operational IT Expenses

Webcast: Learn why companies must invest in an agile network infrastructure

White Paper: Businesses Thrive by Unifying Business Communications

Run Desktop and CRM Applications Side by Side with Salesforce & Google

User Interface as a Service - Visual Force

The Combined Power of Salesforce and Google Apps

Unified Communications Software: The Death of VoIP?

Learn how industry leaders systematically evolve their systems forward to maximize results while minimizing risks

Enhancing Online Sales and Support