Two decades ago, when IBM Corp still defined the computer industry at almost every level, the computing colossus set out to solve what was then referred to as the ‘application backlog’ problem.
IBM’s AD/Cycle computer aided software engineering (CASE) initiative was supposed to transform the black art of software development into an ordered, predictable, engineering discipline. It would enable standard methods for designing business systems to be applied to a set of development tools, centred on a
software repository that would become a database of an organisation’s vital business logic assets. This would be filled with precisely documented, re-usable code that could be assembled and disassembled as the changing demand for business applications required.
By investing in CASE technologies, companies would massively improve the productivity of their development teams, simplify and reduce the cost of software maintenance and, best of all, eradicate the application development bottleneck that has perennially prevented IT from responding to business needs in a timely fashion.
AD/Cycle didn’t solve the problem, and neither have any of the other development and integration panaceas that have emerged in the intervening years. They may have solved particular problems, or boosted productivity in certain areas, but the overall problem has re- mained – until now. At last, there is some hope.
It has taken 20 years, but the software industry has learned several important lessons since AD/Cycle and other CASE products joined the ranks of corporate shelf ware. The first, and most obvious, is that proprietary silver-bullet solutions to software development and integration do not work.
The second, less obvious but equally significant, is that organisations do not need more software, so much as they need faster, more efficient ways of constructing new systems from existing software resources.
The third, a corollary of the second, is that effective software development is not about making programmers more productive per se, but about empowering business managers to have more direction and control of the work that developers do for them.
Today, by accident or design, new technologies, standards and methods are coming together to offer genuine hope that companies will soon be able to take real control of their software resources, and create a logical infrastructure that facilitates rather than obstructs business development. In terms of new technologies, for instance, the advent of application servers and web services are genuine breakthroughs.
Application servers emerged from the laboratories of Sun Microsystems in the late 1990s and have already galvanised distributed systems development by virtually killing off the established monolithic-application approach to systems development. Rather than building functionally self- sufficient applications, and reinventing or recoding many functional “wheels” in the process, today’s developers start-off with application servers that provide standard sets of generic services such as transaction management, security and database access routines.
Then, it is a relatively simple matter to add the required bespoke functionality either by writing it directly in Java or, in Microsoft’s case, C#, or by using standard enterprise Java beans or .NET utilities.
Application servers have essentially realised the component-based approach to software manufacturing that object-oriented programming promised, but failed to deliver, in the late 1980s and early 1990s. They enable organisations to build new systems more quickly by writing less code, and they make it easier to optimise their existing enterprise software assets.
Web services and the service oriented architecture (SOA) technology are taking this evolution a step further, and opening up the opportunity for systems developers to access what amounts to a global market for business services, made available as standards-based software products.
The current rush to embrace web services and SOA is a testament to the revolutionary potential these approaches have for streamlining the creation of automated business services. By embracing standards such as XML, a standard way of describing information; SOAP, a standard way of describing services (or programs) which process information; and, UDDI, a standard ‘Yellow Pages’ approach to finding the service required, businesses can theoretically construct leading-edge software systems that exactly match their business needs, but without ever having to write more than a few lines of code themselves.
It sounds too good to be true, and perhaps it is. Even as they beat the drum for the benefits of component-based programming, web services and SOA, industry experts quietly acknowledge that all the technologies and standards required to realise their predictions are not in place.
And, they say darkly, even when they are, businesses face a steep learning curve before these technologies and approaches can be fully exploited. Multiple, high-profile failures are forecast.
Few revolutions are ever truly bloodless. Even leaving aside understandable doubts about the ability of the software industry to deliver on its promises, businesses that embrace the worlds of web services and SOA must ensure that they invest at least as much in developing the management skills and processes needed to safely and effectively exploit the new technologies.
Those skills, which require informed business professionals to have an informed appreciation of both the risks and potential of software technology, have always been in short supply. The first big challenge of the new service-oriented era is not about technology; it will be to develop the strategies and gain the skills to make it all work.