Open-source advocates often cite lower software prices, "power to the masses", or avoidance of vendor lock-in. However, a key value of open source is the ability of IT shops to tap into open source development and its methodologies to enhance applications. Open source and collaborative programming not only leverage programming power outside the enterprise or overseas, but also improve the quality of in-house proprietary programming, making not only business-critical applications but entire platforms much more effective.
The mainframe vendors and mainframe IT have appeared least visible in their efforts to use open source for development purposes. Mainframe hackers (in the old, positive sense) are few and aging, and IT is understandably nervous about opening up touch-this-and-the-enterprise-dies mainframe applications to outside scrutiny.
IT can do more with mainframe open source and collaborative development -- and IBM and other vendors are already providing the basics to do so. Specifically, mainframe vendors and IT can redesign their application-development processes to incorporate and take advantage of outside programmers, without endangering project success. The payback is an immediate increase in application quality, features, and development cost-effectiveness.
Open source programming
Open source programming differentiates itself in the following ways:
Open-source development includes the advantages of both a broad community and a collaborative process. This allows a wide range of thinking, better testing, and can also boost productivity significantly.
With the advent of the Internet, offshore outsourcing, and open-source programming, a new category of team-programming solution has arrived: collaborative software development. Instead of fostering a "linear" process of development among a closed group, collaborative software development emphasizes a continuous process of collaboration, evaluation, and feedback, open to outside testing and peer review from the beginning.
This approach emphasizes remote communications via Web communities, broad publishing of new code, and welcoming of outside input. Collaborative software development's proven pluses are innovative programming, thorough evaluation that leads to higher-quality code, and speed-to-value in many cases. However, in other cases, too much input can slow the development cycle, while too much output from outside the development organization can make integration of various code pieces more difficult.
Collaborative software development has proven its mettle in the creation of open-source software such as Apache and Linux, while large ISVs such as IBM, Oracle, and Sun have adopted some collaborative practices. Some financial, pharmaceutical, and utility companies' IT shops have also to some extent adopted collaborative practices.
IT buyers sometimes confuse collaborative software development with open-source programming. Open-source programming aims to place the resulting software at the service of all, and usually uses collaborative methods of creating that software. However, collaborative software development does not need to take place outside the bounds of the enterprise. If not, the project lacks access to outside viewpoints, but also protects itself against outside programmers' interest in driving the project in a direction that is not good for the enterprise.
Collaboration tools such as CollabNet typically include:
Open source development platforms
Open source is steadily increasing its presence, from the bottom of the software stack up. Linux (operating systems), Netscape Navigator (browsers), and Apache (application servers) are now being joined by office automation suites, development tools (Eclipse), databases (mySQL, PostgreSQL, and Berkeley DB [now part of Oracle]), and now data integration tools (Jitterbit, aimed at bringing data integration to medium-sized firms). Developers -- especially open-source ones -- can use these solutions as class libraries that they can invoke in order to handle infrastructure across platforms. At the same time, many of these solutions require much more work from the developer than, say, an Oracle or a CICS.
By offering support for Linux, IBM System z allows the key open source development-platform products to run on the mainframe and be invoked by programmers. Thus, Apache and MySQL are available to mainframe developers, and applications written to these products can run on and/or off the mainframe.
IBM also offers a set of mainframe software design and construction tools (under both the Rational and WebSphere brands) based on the Eclipse open source framework, which provides standards-based flexibility and third-party tool integration. The Eclipse initiative specifically supports substituting or adding open-source or third-party development tools to IBM's tools and framework. IBM also provides its own development tools for mainframe development (for example, IBM Rational Application Developer for WebSphere Software and WebSphere Developer for zSeries). IBM provides support for Apache Tomcat.
Leveraging mainframe open-source development
A typical way to leverage open-source development that has proven effective for other platforms is to set up a Web site or community to coordinate development. Outside developers (often from customers), given the opportunity to critique an application that affects them, or to drive ahead the functionality of the application, can perform testing of the application and can add features or components that they can share with each other.
These components, in turn, can be incorporated in future releases of the product or made available for free, making the components effectively open source. Using collaborative software, IT can coordinate in-house development and outside testing, as well as monitoring outside feature development for possible incorporation in future releases. By encapsulating the mainframe application's key code (e.g., as a Web service), and carefully overseeing the development process, IT can typically avoid the risks of exposing business-critical applications to the outside world or to an offshore development center.
This approach to development has been shown to speed testing and improve the robustness of the resulting application. Moreover, use of open-source components decreases application costs. In the long run, exposing the application to outside developers often allows inclusion of new features typical of other applications in the outside world, which in turn gives end users inside and outside the organization a greater comfort level with the application.
IBM, in particular has committed major resources to providing open-source solutions for its customers, and the System z platform has kept pace with this support. However, the advantages of open source are less visible to mainframe customers, because zero-cost open source components are often swallowed up in the overall cost of a mainframe. User experience outside the mainframe (e.g., in Linux and Windows .NET environments) shows that incorporating open source in development practices can indeed provide "beef" -- visible, significant benefits -- to IT. By applying these lessons to mainframe application upgrade and new-application development, mainframe users can achieve better mainframe-application quality, lower mainframe-application TCO, and better application-user satisfaction -- benefits that are well worth users' attention.
About the author: Kernochan is president of Infostructure Associates.
This was first published in September 2006