Delivering the Holy Grail

Document Sample
Delivering the Holy Grail Powered By Docstoc
					                                    Delivering the Holy Grail
                                                        by Edwin Schumacher, Compuware, Netherlands

     Increasing productivity in this constantly changing technological and business landscape is the daunting task facing most IT managers. This
     article examines models and patterns, how they are being used in today’s development environment, and what in future will enable IT
     departments to achieve the Holy Grail of increased productivity.

Productivity concerns are paramount                      By simplifying complexity, the use of models           movement, noting that the great architectures of
                                                         and patterns promises to dramatically improve          history were not made from rigorous planned
In today’s world, unfortunately, it takes more
                                                         the productivity of the application development        designs, but that their pieces were custom-fit to
than a chivalrous heart to attain the Holy Grail of
                                                         process.                                               each other and to the building’s surroundings.
software development -productive development
                                                                                                                He found recurring themes in architecture and
of high-quality applications.                            Models: business simplified
                                                                                                                captured them in descriptions that he called
Software development productivity is usually             A model is an abstract representation of a             ‘patterns.’ In short, patterns are a common
measured in a simple formula: the number of              complex reality. It is more easily manipulated         solution to a common problem in a particular
hours it takes to complete a project, multiplied by      than, and facilitates the understanding of, the        context.
the cost per hour of the resources that deliver the      thing it represents. In application development,
solution. Through the use of various techniques,                                                                In application development, patterns are used
                                                         models provide a visual description of a system.
it is possible to squeeze all of the blood out of the                                                           in a similar way. Patterns simplify application
                                                         Models are valuable because they enable human
cost per hour side of the equation. But, to achieve                                                             development by addressing problems that occur
                                                         beings to examine the structural and dynamic
the desired productivity goals, IT executives are                                                               over and over in application development.
                                                         behaviour of a system, and quickly understand
aggressively investigating ways to reduce the                                                                   Developed by industry experts, patterns are
                                                         what it is that the system is intended to do.
number of hours that their teams spend                                                                                   proven ways to solve problems, given a
developing software.                                                                                                     certain context.

Pressured by macroeconomic conditions,                                                                                   The new approach
it is not surprising that chief information
                                                                                                                        Both models and patterns have been used
officers (CIOs) across the globe are on
                                                                                                                        for some time in application development.
a quest to improve productivity. They
                                                                                                                        They are widely considered to be best
need to ‘do more with less’. Many CIOs
                                                                                                                        practices for development teams that
are counting on their software architects
                                                                                                                        are doing enterprise-class application
and developers to help them deliver this
                                                                                                                        development. Generally, models and
chalice of fecundity by taking a fresh look
                                                                                                                        patterns are credited with improving the
at the application development process.
                                                                                                                        quality and consistency of application
Simplifying complexity                                                                                                  architecture. However, models and
                                                                       Fig. 1: Complexity model.                        patterns are being used together in a
In essence, the application development
                                                                                                                        new way that is dramatically improving
process is a translation exercise. At
                                                                                                                the productivity and quality of the application
inception, the business requirements are defined          Now most modelling is done with a standard
                                                                                                                development process.
to capture the functionality that a system must          language called the unified modelling language
have to implement a complex business process.            (UML). UML enables developers and analysts to          However, most current techniques for using models
At the same time, technical requirements                 have a common language to communicate with             and patterns together are counterproductive.
are derived from the complex technology                  each other and precisely define the system. This        Typically, developers use tools that enforce a tight
platform on which the system will be deployed.           facilitates a productive design phase by ensuring      coupling between the models and the code. An
Application development is the realisation of the        that misunderstandings are kept to a minimum,          unfortunate by-product of this approach is that
business requirements through the deployment             and that changes can be rapidly made to the            during the course of development, the model
technology.                                              system.                                                becomes cluttered with technical artifacts and
Two types of technologies have emerged to                                                                       no longer fulfills its purpose: simplification.
                                                         Patterns: technology simplified
close the gap between business and technical                                                                    Moreover, when the model and code are exact
                                                         In the 1960s, building architects were investigating   replications of each other, the application of
requirements: models and patterns. As Fig.1
                                                         automated, computerided building design. The           patterns becomes a manual process that is prone
depicts, models reduce business complexity,
                                                         architect Christopher Alexander broke with that        to error.
while patterns reduce technology complexity.

62                                                                                                                                            Elektron April 2006
The new way that models and patterns are being          is that MDPB development is significantly
used together is in an approach called model-           more productive than traditional development
driven, pattern-based (MDPB) development.               approaches, and that the quality of the code
MDPB development incorporates the use of                of an application built with an MDPB tool is
tools to automatically transform models into            comparable, if not better than applications that
working applications using patterns. MDPB               are built with traditional techniques.
development ensures that the models remain
                                                        Productivity increases in the maintenance
as pure representations of the business model.
Automation ensures that the patterns are
accurately and consistently applied throughout          Today, IT executives spend close to 80% of
the application. The result is a set of simple          the total cost of a software application in the
models that document the system, and an                 maintenance phase. However, this cost also can
application with a rock-solid architecture built        be greatly reduced using the MDPB approach
from design patterns.                                   to software development because the business
                                                        (model) is cleanly separated from the technology
The most important benefit of the MDPB
                                                        (patterns), making it much easier to respond to
approach, though, is speed. Speed, of course, is
translated into the Holy Grail of productivity gains.
Just how much faster can MDPB development be?           For example, when a major corporate event
According to a recent study by the Middleware           happens - which changes the scope or goals of the
Company, it is 35% faster in the development            business (e.g. growth, acquisition) - modifications
phase, and according to developer feedback, up          can be made in the model by the analyst to reflect
to 90% faster in the maintenance phase.                 the new functionality that needs to be supported
                                                        by the system. On the other hand, if there is no
Productivity increases in the development
                                                        change to the business, but some change occurs
                                                        on the technology side (e.g. a new version of
Respected J2EE community thought-leaders at             specification, product end-of-life), changes can
the Middleware Company recently completed               be made to the patterns without ever touching
a study, which compared the model-driven,               the model.
pattern-based development approach with
                                                        Consulting company E-SoftSys recently reviewed
more traditional approaches using an integrated
                                                        a number of applications that it developed for
development environment. The study involved
                                                        customers and found significant maintenance
two teams of equal ability against each other. One
                                                        savings among those that employed the MDPB
team used a MDPB tool, while another stuck to a
                                                        development approach, comparing them
more traditional approach. The goal of the study
                                                        quantitatively to other applications that E-SoftSys
was to determine which method, if any, provided
                                                        maintained internally and for its customers.
the greatest productivity gains.
                                                        Overall, the firm saw significant productivity
The teams’ task was to develop a common, publicly       gains during the enhancement and maintenance
available and widely reviewed specification for          of enterprise applications. For example, the
a J2EE Pet Store with detailed rules describing         enhancement time saved was approximately 62%
the functionality of the application, without           to 96%, while the time saved during deployment
mandating implementation details. Upon                  was approximately 84%.
completion, each application went through a
                                                        According to E-SoftSys, the MDPB approach
rigorous testing process, which was comprised
                                                        yielded benefits beyond productivity increases,
of more than three dozen functional tests, code
                                                        including keeping operational overheads to
reviews, and metrics.
                                                        a minimum, providing the ability to upgrade
The results were staggering to the participants         applications nearly instantaneously, and
and observers of the study. The team that used          ultimately delivering a higher quality application
a MDPB development approach developed the               with fewer bugs.
target application 35% faster than the traditional
team-in approximately 505 hours versus 307
hours. Furthermore, the lead MDPB architect             The increasing acceptance of MDPB development
claimed that his team could develop the                 is enabling enterprises to increase the productivity
application even 10 - 20% faster than that the          of their application development and maintenance
next time it used the MDPB tool. This productivity      - a critical success factor for today’s IT executives.
boost did not come at the sacrifice of quality,          By coupling accepted model and pattern-
either. Although the applications were of similar       based techniques with the powerful new tools
high architectural quality, the traditional team’s      available in the marketplace, software architects,
application had a few functional bugs, and the          developers and IT executives can finally deliver
MDBP team’s had none, making the MDPB code              the Holy Grail of productivity gains today.
more reliable overall.
                                                        Contact Caroline Kruger, Compuware,
What this study, available at www.middleware-           Tel (011) 516-2900,, clearly demonstrates  

Elektron April 2006                                                                                              63