|A Good Application Generator May Be Your Guiding Compass out of Today's Modernization Woods|
|Programming - Dev Tools|
|Written by David Brault|
|Monday, 28 June 2010 01:00|
There are varying payoff horizons for employing such a tool, ranging from short- to long-term benefits.
Editor's note: This article introduces the LANSA white paper "System i Modernization Survival Guide," which is available free at the MC White Paper Center.
Many organizations were caught off guard by software development's rapid evolution over the last decade. The evolution had many catalysts: the mass adoption of the Internet; requirements for better visibility into accounting practices; company acquisitions and mergers; and a host of government, industry, and technology mandates. For IT departments to keep up with the rapid change in technology, they purchased tactical solutions that combated business requirements as they surfaced. Now, a decade later, they struggle to manage their technology collection, and it's making them counter-productive.
In an effort to point companies in the right direction, Paul Conte authored the "System i Modernization Survival Guide," providing insight and recommendations on how to deal with the constantly changing landscape of application development.
The remainder of this article contains snippets from the white paper's Executive Summary.
Agility and reliability are at the heart of any modern development strategy because they enable an enterprise to exploit new business opportunities and keep ahead of competitors' initiatives. Reliability is also essential to avoid being diverted into repairing malfunctioning or deficient applications. Productivity is the third leg of a modern development strategy.
Greater automation and standardization of parts, including prebuilt, well-tested frameworks, play key roles in promoting agility, reliability, and productivity. A sound application architecture based on encapsulation, loose coupling, and services is equally important. The architecture should support multiple operating systems and middleware platforms, as well as diverse user interfaces, including Web and smart-client graphical user interfaces, mobile devices, and others. A service-oriented architecture (SOA) enables interoperability within an enterprise and provides a stepping stone for applications to participate in complex business workflows.
A sound approach to modernization should embrace change but minimize risk to the enterprise. The result must enable the IT organization to efficiently deliver the right information and capabilities to the right people at the right time and to quickly adapt what's delivered to support the enterprise's evolving strategies and initiatives.
Legacy applications embody a significant enterprise asset because they contain potentially thousands of rules about the enterprise's structure and processes, and these rules are all defined in executable form. Additional value arises because current development staff's skills are usually well-matched to the existing applications. Typically, however, too much of the business functionality in legacy applications is locked up because the applications are difficult to navigate, have cumbersome user interfaces, and tend to lack interoperability or portability. Talented new staff is also hard to recruit to work on older applications.
At the deep level, modernization should use a combination of existing applications (in their entirety or as parts of applications), newly-created applications, and new navigation and interoperability frameworks to present an integrated view of the full range of application capabilities accessible via flexible user interfaces on a variety of devices. Two initial steps to deal with monolithic programs include wrappering them with a "control layer" and mapping display I/O to a browser or smart-client interface. Overall, the approach depends on being able to incrementally refactor and upgrade existing applications.
The most compelling reason to modernize is to reduce several significant risks. Among these are: a merger, acquisition, or other corporate-level action requires rapid transition to a new platform; an unanticipated market opportunity arises or a competitor rolls out a significant new technological initiative, requiring a quick and effective response; or a trading partner demands interoperability with its own applications.
A modern application development strategy can improve IT productivity and quality through the use of frameworks and more automation of coding, testing, and other major software lifecycle activities. In turn, as IT increases its capacity to deliver more functional applications faster, the whole enterprise benefits from improved business processes. On the System i, moving to Web browser or rich-client interfaces also provides a significant hardware cost savings by reducing the number of "interactive" machine cycles required.
Some approaches to modernization are of limited value or practicality. "Screen scraping" provides a "prettier" look than mere 5250 terminal emulation but does little to increase application integration or modernize the engineering of applications. Large-scale translation of existing RPG code into Java or other contemporary language is unrealistic in most cases and generally results in programs that are foreign to both RPG and Java programmers.
Modernizing by using newer languages to write procedures in Java or other languages and calling these procedures from existing programs written in RPG builds up another stack of code (thus increasing complexity) without breaking down the "silos" in which legacy applications exist. Such ad hoc extensions often don't improve navigation, integration, or application architecture. Because of the inherent risks, expense, and disruption, a "rip and replace" strategy is advisable only when there's a compelling reason, other than just modernization, to rewrite or purchase a totally new application.
When implementing a modernization strategy, focus on business functions that are known "pain points" or have a measurable ROI. But also pick projects that have a high chance of success and avoid projects that are highly "political" in nature and that could be scuttled because of organizational conflicts. Tackle discreet application improvements in a series of incremental steps that allow you to gain experience and deliver concrete results as you go.
All modernization projects depend on having capable developers who understand your existing applications and traditional languages and tools but who are also willing to learn new practices and tools that can deliver better applications faster. Provide your best developers with the tools and training to support an agile development strategy. Use outside experts as mentors who can help your staff quickly learn best practices with new tools and techniques. Among the most important practices for modern development are following an iterative and incremental process and using prototyping.
A good application generator can provide a solid architecture for a modernization strategy, including the framework and automation necessary for development agility, reliability, and productivity. Some application generators can generate executable applications on two or more different platforms from a single application definition. Additionally, some application generator frameworks provide the infrastructure for application interoperability and business workflow, supporting both legacy and new applications.
Application generators can simplify and speed up application development by using prebuilt components and templates and by storing common application information in a repository, thereby increasing code reuse and reducing the need to write "housekeeping" and "plumbing" code. An application generator's framework and components can also greatly simplify the incorporation of new technologies. Furthermore, application generators can improve the quality of applications by producing highly standardized application code that reflects coding best practices.
There are several reasons more IT organizations are now looking at application generators, and there are varying "payoff" horizons associated with each reason. Rapidly exploiting new technologies, perhaps for a limited set of applications, is a fairly short-term decision. Expanding platform support, particularly when done as a hedge against the unforeseen possibility that a corporate acquisition or merger may require such support, is a medium-term decision. Adopting an application generator as the basis for broad improvements in application development addresses the goals of "modernization" and is a long-term strategy.
The System i market has application generator products from independent software vendors with decades of experience and a substantial base of customers that have used the leading products to deliver heavy-weight, complex, production-grade applications. The evidence indicates that the risks of sitting pat with old tools and practices may now have become greater than the risk of adopting an application generator from a vendor with a proven track record.
An IT organization considering an application generator product should first screen vendors to find those that have established track records and products with suitable capabilities. The IT organization should then conduct a thorough set of interviews and/or site visits with customers using the products under consideration. As a final step, "proof of concept" projects should be conducted to validate that the product will work well for the IT organization.
To find out more, download the white paper "System i Modernization Survival Guide," available free at the MC White Paper Center.
|Last Updated on Friday, 25 June 2010 09:29|