Improving application knowledge, development skills, team collaboration, and infrastructure efficiency
This is part two (read part 1) of our series called “A Rational approach to enterprise modernization.” This series is meant to help you and your business to optimize the value of your applications, people, teams and infrastructure.It's based on a thought leadership white paper from Ashok Reddy. Today, we'll discuss how to improve application knowledge, development skills, team collaboration and infrastructure efficiency.
Improving application knowledge, development skills, team collaboration, and infrastructure efficiency
The IBM Rational approach to modernizing and leveraging existing core system applications is based on four types of project strategies, as shown below. When combined, these four strategies can help organizations to:
In this section, we’ll consider each of these strategies in the order shown in the figure below.
Modernizing your application portfolio
Lowering application maintenance costs and improving IT agility requires a detailed understanding of your application assets and the business processes they support. When the business wants to change strategies and business process changes are required, understanding your application assets and interrelationships will allow the IT organization to respond more quickly.
You can move your IT organization from requiring several months to make small legacy application changes to making more significant changes in less time. Improved life cycle governance will help your company maintain application asset knowledge as you shift to a more agile development and maintenance organization. The ultimate goal here is to increase flexibility through revitalized applications. Here are several ways to accomplish this:
1) Reduce maintenance costs and improve productivity by recovering lost application knowledge
Many organizations invest millions of dollars in business intelligence software to collect and analyze operational data in order to gain better insight and help optimize their business operations. Yet there is little or no investment made to understand the systems that capture and process most of that operational data.You cannot modernize what you do not understand. The fact is that most organizations still rely on the knowledge in people’s heads regarding the structure of mission critical IT systems that run the business. And the problem is, as those people move to other projects or retire, this information goes with them and this critical knowledge is frequently lost.
Application analysis tools can help improve the productivity of your IT staff by automating the manual processes used by developers, analysts, and others to learn about existing legacy systems. Application discovery and analysis tools create an electronic inventory of all your IT assets by scanning millions of lines of application source code and storing all the cross-reference information in a centralized database. This database can be used later to generate analysis reports and metrics on size, complexity, quality, and reusability of existing code base.
2) Achieve quick ROI by leveraging proven application user interfaces
A low-risk and low-cost modernization strategy is to web-enable existing green screen applications. You can use existing staff without requiring them to learn the variety of web technologies that exist today. This approach delivers immediate business value, such as reduced training time for new employees, while also buying time for more extensive modernization efforts later.
Alternatively, you can expose these character-based interfaces as web services without any modification to the underlying application code. This approach can result in immediate benefits to users by simplifying the overall workflow and navigation of your host applications. For example, you might choose to integrate several existing green screen systems via a new Web 2.0 mashup-style UI, delivering a totally fresh and more functional UI but doing so very quickly by reusing existing, unchanged applications.
3) Lower maintenance costs and improve business agility with SOA and Web 2.0
Architectural change requirements typically span multiple platforms. Fragmented business processes, workflows, data, and tightly coupled application architectures reduce your flexibility and ability to move to new technologies. They also hamper your ability to reuse existing assets for new projects.
IBM offers solutions to help you rapidly design, construct, assemble, test and deploy high-quality web, Web 2.0, portal, and SOA applications for IBM middleware platforms using an integrated development environment (IDE). The IBM Rational cross-platform IDE can help to reduce project timetables, improve business alignment for growth, cut costs and limit business risk.
4) Migrate applications to lower cost software development platforms
Improving development skills
Two significant challenges can be overcome with the adoption of a modern integrated development environment (IDE). First, ISPF tools that ship with the mainframe have been the standard for many organizations for many years; however, each year skilled developers reach retirement age. Second, developers on the mainframe use a different IDE from what developers working with distributed applications use, which causes communication and coordination challenges and leads to slower, more costly projects.
IBM offers a modern Eclipse-based IDE, spanning mainframe, midrange and distributed environments with a modern graphic user interface that can help overcome both challenges. The IDE can be used by both Java and mainframe developers, providing a common view of tiered applications that span both environments. This common interface improves project coordination, reduces project timetables, and helps constrain development expenses. This common IDE also provides two additional valuable benefits:
Improve flexibility by leveraging existing or new IT staff to build new EGL solutions
EGL helps developers avoid most middleware complexity while providing a way for IT organizations to embrace modern web and SOA tech
Unifying development teams
Nearly all large organizations have multiple hardware platforms, multiple operating systems, multiple programming languages, and multiple development centers. Integrating the development teams that operate in a complex environment requires a unified and collaborative software delivery system that consolidates multiple development approaches and tool sets. A single consolidated team infrastructure can help reduce operational costs for application source code and build management and improve quality across the delivery life cycle and across the multiplatform environment.
Reduce cost and improve operational efficiency by unifying disparate IT infrastructure across teams
Most IT organizations depend on a variety of software change, configuration management and team infrastructure for application development. Over time, this approach often results in the use of incompatible tools with different information repositories, from different vendors, on different platforms, using different jargon, and based on different process assumptions. Integrating and maintaining such mix-and-match infrastructures has proved to be much more problematic than expected. An important emphasis of a modern approach is to define a consolidated collaborative application life cycle management environment as a first-class enabler of the teams. The return on investment in these consolidated environments is manifold: the environment scales up significantly with the size of the application development organization, promotes useful levels of standardization, reduces costs, and minimizes the additional organizational burden of maintaining proprietary alternatives. In IBM’s experience, consolidated collaboration generally yields 15 – 35% improvement in team productivity.
Frequently, applications contain components that run on different platforms. Because changes to one part of an application on one platform can impact other parts of the applicationon another platform, supporting these applications requires an enterprise-scale approach to synchronizing development activities across multiple teams in the software development organization regardless of the target platform.
IBM offers solutions to help coordinate and consolidate these multiplatform development activities. Rational enterprise change and release management solutions help consolidate development processes and can help enhance collaboration and productivity across multiple platforms at practically every stage of the application life cycle. By providing a consistent development process paradigm across all platforms, previously isolated development teams can become integrated, thus enhancing team collaboration, improving release coordination, and boosting operational efficiency.
Reduce risk and cost by focusing on quality across the entire software delivery life cycle for all platforms
Software testing plays a critical role in the delivery of high-quality applications in today’s complex and multiplatform enterprise IT systems. Statistics show that it is much more cost-effective to fix software defects early in the development life cycle rather than later or post-deployment, when it can be two to three orders of magnitude more expensive to fix defects. IBM offers solutions to help ensure end-to-end quality of applications deployed on distributed, mainframe, and midrange platforms. The software quality process begins by eliciting requirements that are well understood by all the key stakeholders from both the business and IT teams. Requirements drive downstream design, implementation, and test phases of the project and provide traceability throughout the software lifecycle to help ensure that development is actually building and delivering solutions that will meet business needs. For example, you can link test cases to requirements to help testing teams identify and focus their testing on the most critical capabilities of the software system and stay current with changing requirements. By integrating workflows and sharing data among analysts, developers and testers, organizations can help establish an early focus on quality and enable organizations to proactively address quality issues. You can also create dashboards to quickly assess the quality of the target application, address gaps in requirements, adjust delivery dates, and shift development resources to help remediate any situations that will impact the business.
Improve predictability of project success through governance and best practice guidance
Process improvement involves adopting best practices for processes and measurements. These are used to help accelerate overall software delivery, minimize rework and reduce the cost of change. Examples of best practices may include iterative development, continuous integration, evolutionary architecture, shared vision, and test management. Practices not only provide guidance and techniques within a certain domain, they provide an underlying philosophy for how to accomplish various aspects of development according to established methods. Process improvements can provide visibility into—and control over—risks, statuses and trends. By improving software delivery processes, teams can reduce development risk and cost, improve quality, and speed delivery of applications.
We have observed that, when organizations acquire powerful new hardware platforms, they often don’t realize that up to half the generational performance improvement is made possible through the compiler that’s been specifically designed for that hardware. A simple recompilation can help you to optimize the value you expect from your hardware investment. Additionally, many customers want to take development off their relatively expensive operations mainframe and create a more flexible, low-cost mainframe development environment.Improve performance and scalability with the latest compilers.
A quick and low-risk way to improve performance and the scalability of your existing IT systems is to ensure that you are leveraging the latest compiler technology. By periodically upgrading your compilers, you not only take advantage of new language features, extensions and usability improvements, you also get better application performance on new hardware without any source code changes. This allows you to stay ahead of your competition on the technology curve. Best of all, you do not have to change your hardware to upgrade your compiler.
IBM continues to develop its industry-leading optimization technology across multiple platforms, including IBM AIX®, IBM i/OS, and Linux on IBM Power Systems™, and IBM z/OS and IBM z/VM on IBM System z. Designed specifically to complement IBM processor architectures, IBM compilers can help optimize the performance of commercial and high-performance computing workloads. This can help reduce your CPU cycles to improve the returns on your IBM hardware investment.
Reduce the cost of your mainframe development environment
The production mainframe infrastructure often runs at peak capacity, leaving a very small time window for mainframe development and testing, which could further delay the application delivery time. Clearly this conflicts with more agile development approaches that presume continuous availability of development resources and the ability to rapidly develop and deploy new workload solutions. Organizations would like to free up their development MIPS, staff time, and other resources to support their production environment.
The IBM Rational Developer for System z Unit Test feature allows mainframe software teams to perform developer-based build and unit testing of z/OS-hosted applications on their development PC without using System z hardware processing cycles. Rather, teams can perform their mainframe application development and testing on their laptops. Developers won’t miss the middle-of-the-night work on testing applications on their production mainframe with their relatively slow ISPF tools. This can help organizations manage their use of zEnterprise™ systems to control their development costs while realizing greater line of business costs savings. Rational Developer for System z Unit Test feature helps lower the overall cost of the mainframe development, making it more in line with distributed development.
Here are some great short videos that will give you a comprehensive view of Enterprise Modernization solutions: