A glimpse of the future can be seen in BEA Systems Inc.'s WebLogic Workshop. It uses "controls," or sets of commands, to manipulate Java objects, modules of code representing business operations. The tool lets a developer connect a customer module, for example, to a control that supplies a pathway into an inventory application. Underneath the diagram, Workshop generates code that fulfills a customer order from inventory and captures the transaction in the inventory database.
Automation also will be crucial for quality control. As the size of apps grows and the number of interactions with other apps increases, the potential for problems increases. "No longer do you have simple applications that are self-contained," says Mike Armistead, marketing VP at Fortify Software Inc., a maker of automated security testing software.
Vendors also understand that the collaboration capabilities of their development tools must improve. "Today's tools help the individual, but they don't help the dynamics of the team," Sridharan says. Microsoft's Team System version of Visual Studio 2005, due next year, will begin to address issues of sharing code and test results among team members.
Simple processes such as shared debugging, where two developers work on a glitch by looking at the same code at the same time but from separate locations, "are just starting to emerge," Pataky says. Over the next several years, major tool vendors will embed more collaborative functions into their tools to catch problems earlier in the development process. "The further a project goes downstream from a problem," he says, "the more expensive it is to fix."
Doesn't all this automation threaten programmer employment at a time when more developer jobs are moving offshore? Blechar doesn't think so. "Not only is it not a threat," he says, "but it's also mandatory if people are going to be successful in doing their jobs."