Business Drives Developer Trends

Close collaboration with business-unit employees and faster development are goals

Charles Babcock, Editor at Large, Cloud

May 14, 2004

3 Min Read

But upon finding that extreme programming doesn't work in every instance, the agency scaled back its use. Not all pairs of programmers worked well together, and it was hard to get an apprentice programmer up to speed when teamed with a more experienced developer. "We still utilize many of the elements of extreme programming every day," Tripp says, such as the recommendation that a piece of code be integrated with other finished pieces and subjected to testing as soon as it's done. "That way, if the system breaks [during testing], we know which piece of code did it," he says.

Agile programming entails a Lego-block approach that treats distinct parts of an application as modular. Developers share each module with the appropriate business-unit employees when they're finished. It's also intended to allow the creation of independent services that can be called over a network, allowing for frequent change and adaptation based on business-user requirements.

But for the modular approach to work, modules need an effective way to communicate. The expanded use of the XML Web-services language will help drive interest in agile development, as XML can work as the messaging service, says Alex Homsi, CEO of Trilog Group Inc., a Java development framework supplier.

Agile programming also represents a new attitude. For example, frequent changes in business requirements, once viewed as the ultimate headache for programmers, are readily accepted.

The agile movement originated with a group of software developers and grew into the nonprofit organization AgileAlliance, which supports more than 40 users groups worldwide, including 17 in the United States. Details of the agile philosophy can be found at agilemanifesto.org/principles.html. An original member of the AgileAlliance, Kent Beck, founded the extreme-programming movement.

Aspect-Oriented Development
While still an obscure concept to many developers, aspect-oriented programming tries to fill a gap left by the adoption of object-oriented technologies such as Java and .Net.

Object-oriented programming is good at organizing applications as discrete modules of code, yet not everything should be a standalone module. Aspect-oriented development lets programmers treat a feature, such as system security, not as a single function, but as an "aspect" that cuts across all parts of an application or applications. The idea is that functions should be made into flexible services that can be called many times at different points. For example, this service approach replaces the standard mode of developing one security system that's tied to an individual software project using an API. With aspect-oriented development, security is supplied through a simple tag that tells an application where to find a function. Security is a popular focus in aspect-oriented development; another potential "aspect" is application response time.

Aspect-oriented programming is used in the JBoss open-source application server, free software developed by the JBoss Group that performs functions similar to commercial application servers, which include IBM's WebSphere and BEA Systems Inc.'s WebLogic. It's also being used in Java systems using JAspect, the first aspect-oriented language invented at Xerox Palo Alto Research Center, which is now part of the tools workbench for Eclipse, a free, shared environment for Java development.

Programming staffs likely will include aspect-oriented programmers, developer Fleury says.

The U.S. Army's supply-tracking information system in Iraq, which runs on JBoss, treats systems monitoring as an aspect, says JBoss lead developer Marc Fleury. The aspect approach supports constant tracking of supplies using radio-frequency identification tags, with the system able to monitor for real-time updates from the tags.

Not all programmers need to learn aspect-oriented development, but future programming staffs are likely to include a handful of people with aspect-oriented skills, predicts Fleury. The result, he says, is faster development and less work required of the team.

About the Author(s)

Charles Babcock

Editor at Large, Cloud

Charles Babcock is an editor-at-large for InformationWeek and author of Management Strategies for the Cloud Revolution, a McGraw-Hill book. He is the former editor-in-chief of Digital News, former software editor of Computerworld and former technology editor of Interactive Week. He is a graduate of Syracuse University where he obtained a bachelor's degree in journalism. He joined the publication in 2003.

Never Miss a Beat: Get a snapshot of the issues affecting the IT industry straight to your inbox.

You May Also Like


More Insights