Diversity demands a development strategy

Companies using a diverse range of systems are turning to a model-driven architecture to overcome the problem of blending...

Companies using a diverse range of systems are turning to a model-driven architecture to overcome the problem of blending platforms and applications.

As the use of IT within organisations matures, for many non-technical executives, application development still seems a very hit and miss affair.

There appears to be a frustratingly high incidence of IT project failures, where projects are either abandoned or delivered way over budget or without the required functionality.

With a few notable exceptions, technology is rarely to blame for this failure, and IT managers are often at a loss as to how to improve the situation. There is great pressure to buy new tools to help developers become more productive, and yet coding only takes up 20% of the application development lifecycle.

Improvements in productivity may have little effect unless they are combined with improvements in development. Therefore, a formal, documented application development strategy is an essential part of the overall process of IT governance.

Formal methodologies are often seen as a burden on the development process. However, the problem with application development is that no two applications are the same, and any methodology will prove unsuitable at some point.

Business issues

Applications such as online self-service attempt to automate large portions of a business process. Consequently, the type of application needed by users tends to be much more complex and aimed at problem solving.

For example, at an airport check-in, the desk agent will expect support from an application in the complex areas of changing a seat or rescheduling an onward flight in the event of delays, rather than the simpler tasks the self-service option covers. Developing such an application is likely to require a more flexible approach and will be harder to manage.

Technology issues

Any organisation developing an application may have concerns about the underlying platform and current standards. Heterogeneity is a fact for many organisations, which have Microsoft and Java applications in-house, a blend of systems that have accumulated over the years and programmers skilled in a variety of languages.

In terms of enterprise-level, applications, Java 2 Enterprise Edition is the most common infrastructure, and will remain so for the next few years because of its relative maturity.

The concept of creating a service-oriented architecture, where services are provided and used as required, is gaining popularity. The majority of organisations have not yet begun to take advantage, but it is an area that should be considered as new applications are developed.

Service-oriented architectures will have a significant effect on styles of development, with increased use of modelling and the application of patterns and less emphasis on pure coding. It will also promote the use of web services as the standard model of communication between applications.

One of the key findings of the Butler Group Application Development Strategies report is the concept of model-driven architecture within application development strategies, where a design model can be developed independently of the platform on which the final application will be deployed. This can then be used to generate a model specific to the relevant platform, therefore automatically generating much of the code.

This concept will revolutionise application development, particularly at enterprise level. Problems will arise in the level of modelling skills available and lead developers may need to become modelling specialists to take full advantage. Even so, complete code generation is not a realistic aim and the objective of a model-driven architecture is not to de-skill developers but to improve productivity.

Development workshops typically use tools from a variety of suppliers, each one requiring a learning curve. Developers are also faced with a lack of integration between tools. These issues are being addressed by suppliers, which are offering end-to-end lifecycle development suites.

Open source software projects such as Netbeans and Eclipse also provide an integrated development environment platform for tool providers to add plug-in modules to. There are cost and time-to-market benefits in using end-to-end tool suites.

Suppliers of development tools

Microsoft, IBM, Oracle and Borland have the lion's share of the market, but there are still a large number of players.

Many suppliers provide products that cover the whole application lifecycle and many more focus on the development environment. There has been considerable consolidation in the market, where larger suppliers are acquiring more tools to provide full support for the application lifecycle.

Open source tools for building applications are becoming increasingly popular, with many large suppliers investing significant amounts of time in these initiatives, but the lack of support for enterprise users has meant that open source-based development has not had the expected impact on the market.

An open source offering can provide a basic toolset for small and medium-sized organisations, with added functionality provided by tools that plug into an open source framework such as Eclipse.

In terms of the J2EE versus .net infrastructure debate, both platforms will coexist within the majority of enterprises. This makes it particularly important that model-driven architectures and web services-based development are used to successfully incorporate both platforms into an overall enterprise architecture.

Both J2EE and Microsoft infrastructures are undergoing significant improvement, and this healthy competition should lead to improved technology in the medium-term.

Although the J2EE infrastructure is more mature, particularly at enterprise level, the support tools must continue to be improved if they are to generate a following at the lower end of the market, where Microsoft has established a strong base.

Microsoft has set its sights on the enterprise market with .net, but it has yet to deliver on its promise. The lack of a model-driven architecture capability is also a serious drawback, although there are clear indications this gap will be plugged.

Teresa Jones is principal author of the Application Development Strategies report published by Butler Group


Butler Group's product evaluation     

Compuware  Compuware Reconcile, Compuware OptimalJ and Compuware Devpartner   

Comment  Compuware's products fit lifecycle development needs very closely and are backed with strong support for model-driven architecture.   

IBM  Wide range of application development products       

Comment Development is key to e-business on demand and IBM is supporting it with market-leading brands such as Websphere and Rational. 

Interactive Objects  Arcstyler 4.0       

Comment Arcstyler has helped to prove the case for model-driven architecture and continues to be a flexible and powerful tool.

Borland  Application lifecycle management products     

Comment Borland possesses strong, although complex brands and can support cross-platform development. 

Computer Associates  Advantage Joe 3.1     

Comment  Enterprise Java Beans development projects and productivity are well supported.

Microsoft  Visual Studio .net 2003, Project     

Comment  An innovative and effective solution set designed to spearhead Microsoft's move into the enterprise market. 

Oracle  JDeveloper 10g  

Comment   A radical redevelopment from the original JBuilder, Oracle has added significant and rich functionality.     

Open source software  Open source software community   

Comment  Lack of support remains a serious enterprise issue, and model-driven architecture is lacking at open source level in the end-to-end suite projects.     

Pramati  Pramati Studio, Pramati Designviewer    

Comment  Uses proprietary modelling with no model-driven architecture functionality, otherwise a strong product. 

Sun Microsystems  Sun One, Java Enterprise System   

Comment  Lacks design modelling and GUI-based, easy-to-use functionality.

Read more on IT project management