But the systems they build--the ones that process insurance claims, design cars, and make sure everyone gets paid--contain plenty of input from rank-and-file managers and engineers who don't live in the world of distributed objects and method calls. And it's exactly that process of translating the workaday requirements of business software into functioning code that's so time-consuming, manual, and error-prone that it's costing businesses big bucks.
Modern programming languages are designed in a way that's object oriented: Related data and instructions are grouped together in hierarchies of reusable modules that represent entities in a program--say, employees, or products for sale on an E-commerce site. Objects at the top of the hierarchy pass their properties down to objects below, so that, for example, all employees who are managers share certain characteristics. Add a new object, and a lot of the program's knowledge about it gets generated automatically.
Object-oriented systems don't fare as well at encapsulating commands that might touch unrelated areas of the code. So computing-critical policies such as security, error handling, and data caching show up in hundreds or thousands of places scattered throughout a program's code. When business managers ask for changes or updates to a system, all those tangled pieces of code need to be updated. Miss one instance, and the software acquires a bug that can be devilish to find.
"You find systems where people know they're a complete disaster," says James Gosling, a VP at Sun Microsystems who invented the Java programming language in the early '90s. "But when you have a program with a million lines of code, reorganizing things becomes very difficult."
Just as bad, there's no simple way in popular computer languages such as Java and C++ to incorporate into the code the ideas of the nonprogrammers who'll end up using a piece of software. Since much of today's software is embedded in complex pieces of machinery such as cars or airplanes, or is part of complex social systems such as health care, programmers must transform the input of engineers, chemists, doctors, hospital administrators, and other nontechnical specialists into functional code. That, too, exposes systems to bugs.
More Software Insights
White Papers
Broadcom seeking Sr Staff Business Analyst in San Jose, CA
CAST Software, Inc. seeking Sr Post Sales Engineer in New York, NY
Tower Hill insurance Group, Inc. seeking Programmer in Gainesville, FL
ISES, Inc. seeking C # Engineer in Bridgewater, NJ
Dell, Inc. seeking Counsel, Distribution Law, Channel Sales Division in Austin, TX
For more great jobs, career-related news, features and services, please visit our Career Center.
Managing Business Service Performance in a Virtual Environment
Virtualization is proven to deliver many IT goals - such as server consolidation - but it is increasingly being used to deliver specific business service goals. By integrating virtualization...
read more 
NOTE: Offer valid for U.S., U.S. possessions, & Canada only