Developing for performance in an agile manner
Agile Software Methodology: Agile processes, exemplified by eXtreme Programming (XP) have a great deal to offer Web services and performance programmers. These processes emphasize small teams, intensive collaboration, very short development cycles, and an approach to coding that includes writing tests first.

by Larry O'Brien, author. Intel Corp.

Agile processes, exemplified by eXtreme Programming (XP), have captured the imagination of the software development world in the past few years. These processes emphasize small teams collaborating intensely, very short development cycles driven by user-prioritized "user stories" (essential use cases), and an approach to coding that includes writing tests first, doing "the simplest thing that could possibly work," and refactoring. Part of the popularity of agile processes is just the predictable pendulum swing away from more formal processes such as the Rational Unified Process, but agile processes provide real benefits for software teams developing Web services.

Performance Increases
Some developers and managers fear that non-functional requirements such as performance fall by the wayside with agile processes, but experience has shown that agile processes actually can lead to significant performance increases. The trick is simply to ensure that performance, or scalability, or other non-functional requirements are included in the user stories (essential use cases), which are the agile replacement for formal requirements documents. Then, just as with any other requirement in an agile process, add tests to the test suite and never check in code until all tests in the test suite run perfectly. The one area where this can be problematic is scale testing, since your development systems aren't going to have the same capacity as your deployment servers and redlining even a simulated deployment is not a casual project; scale testing is an area where the agile assumption that testing is cheap does not hold and the traditional project management disciplines of risk analysis and mitigation have to be followed.

For most performance issues, though, automated tests can be created easily. The JUnit testing framework, originally developed by Erich Gamma and Kent Beck for Java, has been ported to .NET by Philip Craig.

Subscribers who liked this article also read:
The 64-bit tipping point
from Intel Corp. For more than a decade, 64-bit architectures have ...
Getting the bubbles out of code: designing for the Itanium 2 processor
by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel C...
Intel C++ Compiler 8.1 for Windows free evaluation software
This product provides tools for Windows software developers to creat...

If you're interested in this topic, these articles may be helpful:

Chronicle of malware detected during the first half of 2005
from Panda Software There were no significant epidemics during th...
Developing your site for performance: principles and techniques of cost-effective Web site acceleration, part 1
by Thomas A. Powell, president, PINT Inc., and Joe Lima, director of...
Software piracy
by Vincent Alder, Fingoo Ltd. Basic software distribution When we ...
A high-performance architecture for distributed object computing
by Douglas C. Schmidt, professor, Vanderbilt University Distributed...
Discovering mobilized software: supporting the Mobilized Software Initiative
from Intel Corp. What is the problem? Computer users are increasin...

Related Jobs:

Project Lead #2796 - IL - Chicago - aQuantive, Inc.
Project Lead Job ID: 2796 Business Unit: AA | RF Location: US-...
Java Architect #1018 - OH - Westerville - Sogeti USA LLC
Java Architect Req. ID: 1018 # Positions: 1 Location: OH-Weste...
Software Developer #3687 - CA - Santa Clara - Webex, Inc.
Position Overview: Strong understanding of XML Applications and XDQ...
TDW/EDW Principal Business Intelligence Analyst #002KV - TX - Dallas - Sabre Inc.
TDW/EDW Principal Business Intelligence Analyst – 002KV Jo...
Software Engineer #535783 - CA - Foster City - Visa
Software Engineer Department: CAS,Treasury, Member Information ...
Project Lead #2645 - IL - Chicago - aQuantive, Inc.
Project Lead Job ID: 2645 Business Unit: AA | RF Location: US-...
Lead Software Engineer - .net Migration Team - CA - Pleasanton - E-LOAN
E-LOAN is headquartered in Pleasanton, CA. As we continue our expansio...
Senior .Net developer - CA - Beverly Hills - MySpace
Social Networking is one of the hottest sectors on the web in recent y...
Manager, Database Administration #GS 4029 SD - NC - Charlotte - SunGard
Reference No.: GS 4029 SD Opening Date: May 15, 2007 Job Title: Ma...
Sr. PC Web Developer #61536 - FL - Tallahassee - Affiliated Computer Services, Inc.
Description A senior-level professional, the Systems Development S...