Build Software Like Building Bridges
Create quality code and consistent architecture with model-driven, pattern-based development
by Mike Burba
Posted February 5, 2004
If bridges were built with the same architectural discipline that many of today's organizations use to build software, would anyone dare drive a car across them? I, for one, would have second thoughts based on my experience.
As a consultant, I used to be called upon to provide an outside perspective and in-depth assessment of application development projects that had gone bad. During the analysis, my team inevitably found difficulties with the application architecture. This was particularly true in the early days of Java development when many applications were copy-and-paste replicas of the J2EE Pet Store application with, of course, some additional hand-coded components that were added on to make the application appear more customized.
Fortunately for all of us, application development has matured, and today's enterprises are discovering (or rediscovering) strategies to address more effective architecture and how to build a solid foundation for their application development. These strategies, coupled with a more disciplined and focused approach, have the potential to significantly improve the overall quality of any software project.
However, building the extensive expertise necessary to build world-class applications and transferring that knowledge throughout a development organization has always been difficult to implement in the real world. Until now. Model-driven, pattern-based (MDPB) development provides the solid architectural foundation that organizations require by capturing best practices, codifying them, and using them in a repeatable process to consistently realize your architecture. The result: quality code with quality architecture.
Beneath the Surface
There is little doubt that getting architecture right is hard. Millions of developers are flooding into the Java and .Net development worlds, and they are being asked to build enterprise-class, scalable, reliable applications. Predictably, these projects have high failure rates. In fact, recent statistics from analysts at Gartner show that approximately 70 percent of services-oriented architecture (SOA) projects fail. Although projects can fail for a host of reasons, the root cause is typically lack of skills.
To address this problem, more organizations are turning to enterprise software architects, a role that now exists in nearly 50 percent of IT organizations, according to a 2003 survey on IT application development conducted by Compuware Corporation. For these enterprises, architecture has become a focal point in the effort to increase quality and reduce complexity.
As masters of the development craft, the mission of software architects is to increase quality and reduce software complexity by defining standards, best practices, and guidelines for the technical organization, and to ensure that they are consistently applied by the development teams. This is quite a tall task, but most architects are energized by the challenge, which they address by conducting training sessions, publishing whitepapers, and doing code reviews (when they're not doing development themselves).
Still, these knowledge transfer tasks are all manual in nature and are, therefore, time-consuming, error-prone, costly, and many times frustrating. A great example of this was related to me by an associate who works as a J2EE architect for one of the largest consulting firms. This organization is well known for the amount of effort it puts into measuring its software development process, which includes practically everything—from the number of incidents to the average time away from the desk of each developer.
Back to top
|