IBM defines an On Demand Business as an enterprise whose business processes -- integrated end to end across the company and with key partners, suppliers, and customers -- can respond with flexibility and speed to any customer demand, market opportunity, or threat. A crucial step toward becoming an On Demand Business is to implement a software development infrastructure that is proven, open, modular, and complete. This four-part series explores criteria to consider as you create RFPs for new technology purchases and evaluate alternative vendors' solutions. It also explains how the IBM Software Development Platform -- a modular, Eclipse-based technology platform -- can help you meet your requirements.
The first article in this series covered basics about how to prioritize infrastructure acquisitions and begin constructing an RFP. It also discussed how to specify and evaluate requirements and analysis solutions. Part II looked at technology changes that affect the design and construction area and discussed the categories of tools best suited for different types of development projects. Now, in Part III, we will focus on how to build an infrastructure that will help ensure delivery of quality products.
In the software industry, an organizational commitment to quality speeds development, reduces costs, and allows you to add new system features with greater ease. Organizations that develop low-quality software are destined to forever look backward, as they invest time and money fixing defects in "completed" software. In contrast, organizations that build in quality from the beginning are able to look forward, innovate, and pursue new opportunities. This approach to continuously ensuring quality builds success into the project rather than making teams gamble with the unpredictability inherent in software development efforts.
More than merely an absence of defects, quality in software means fitness for use. High-quality software provides adequate functionality, usability, reliability, performance, scalability, supportability, and security to businesses and their customers. Within this broader view, software quality is no longer the sole responsibility of the testing team. Instead, quality is a shared responsibility that engages all team members throughout the software lifecycle.
Building your software quality capability
There are many ways to achieve quality. While some organizations pursue Total Quality Management, Six Sigma, or Capability Maturity Model certification, others prefer a less formalized approach. No matter which approach you choose, quality assurance is an iterative process in which even small changes can make a tangible difference. Where should you start? To answer that question, determine where you stand to gain the most from quality automation.
Recent studies show that, on average, developers make 100 to 150 errors for every thousand lines of code. To find and fix these errors earlier in the development lifecycle, developers are turning to a new generation of Integrated Development Environments (IDEs) with built-in unit testing and debugging capabilities. Runtime analysis allows developers to pinpoint memory leaks, find and fix application performance bottlenecks, and visualize the execution flow of code and application threads. Structural analysis allows architects to detect, build, and maintain an inventory of design patterns and anti-patterns implemented throughout their application's code. Code review features scan code to validate compliance with pre-specified rules, such as naming conventions or J2EE best practices. Component test capabilities generate unit test stubs, test data, and a test harness to speed validation of Web services and Java code. All of these features are available in the IBM Rational Application Developer and IBM Rational Software Architect IDEs. IBM Rational PurifyPlus enables runtime analysis for users of alternative IDEs.
Functional testing solutions, such as IBM Rational Functional Tester and IBM Rational Robot, increase tester efficiency by simplifying the creation, maintenance, and analysis of automated functional and regression test scripts. A thorough functional testing solution should automate the creation and maintenance of test scripts and automate regression testing across multiple platforms and configurations. In addition, a comprehensive functional testing solution eases implementation by supporting multiple test script languages, streamlining test workflows through accessibility within developers' workspaces, and managing evolving test scripts through built-in change management support.
Performance testing solutions, such as IBM Rational Performance Tester, enable testers and performance engineers to validate system performance, determine maximum system capacity, and identify and resolve performance problems. These tools help teams ensure that applications -- particularly Web-based applications -- scale appropriately by exploring a range of alternative usage scenarios. Look for solutions that will support practitioners of any skill level, provide access to the underlying communication data and remote system statistics (for more expert troubleshooting), and build on open standards and team integrations to lower the overall testing costs.
Software embedded in devices, such as those built by the aerospace, telecom, and automotive industries, pose challenges that are uniquely supported by an embedded and real-time testing product, such as IBM Rational Test RealTime. These highly complex applications, often characterized by real-time, event-driven, and multi-threaded application processes, are typically developed on one platform and tested on one or more separate, target platforms. A comprehensive software quality solution must therefore support automated testing, code coverage analysis, memory leak detection, and performance profiling in a multitude of cross-platform environments. For maximum utility, the solution should also enable flexible deployment to multiple targets and support a broad range of microprocessors and real-time operating systems.
Few organizations are able to fully automate their system testing efforts. Business analysts, testers, and even customers are often called upon to validate proper system operation by physically interacting with that system and noting their observations. A manual testing solution, such as IBM Rational Manual Tester, organizes and automates these interactions to improve the speed, breadth of coverage, and reliability of manual testing efforts. Testing efforts require dedicated testing tools; reliance on spreadsheets or word processing programs to store tests and test results forces debilitating compromises and causes maintenance headaches.
All testing efforts, regardless of focus or scope, require a centralized console for test activity management, execution, and analysis. Tools such as Rational TestManager provide an environment for consolidating disparate testing efforts, ensuring that the application(s) under development is receiving sufficient levels of verification and validation. Such products should help teams establish traceable links between test motivators -- such as requirements, use cases, enhancement requests, and so forth -- and the tests used to ensure their successful implementation. Also, reporting features should roll up test conclusions to help QA and project managers determine how well the testing effort is progressing and how close the software is to completion.
Software quality -- Sample RFP requirements
If you want solutions to strengthen your quality infrastructure, how should you describe your business goals to vendors? Defining your specific problems and challenges provides a good starting point:
- We need to solve recurrent quality problems that threaten business performance.
- Our test team and development teams are distributed, and we haven't found a good way to coordinate test activities and share results.
- We need to improve code quality from the beginning -- without adding development resources.
- Our test activities are ad hoc and haphazard. We're looking for a way to improve coverage and reuse assets in a coordinated fashion.
- We need to identify the operating capacity of our Web-based applications in a range of scenarios, so we can plan accordingly.
From these specifics, you can then extract more general, solution-oriented needs statements like those in Table 1. The table shows how IBM might respond to these expressed needs, based on its IBM Software Development Platform offerings.
Table 1: Sample vendor responses to RFP for a quality infrastructure
Any vendor's response to your RFP should directly address your stated needs. A list of corresponding benefits, as shown in Table 1, illustrates that the vendor's products can cover the organization's needs and provides a starting point for investigating specific product offerings (of course, no other company offers the depth and breadth of products and capabilities that IBM does). In the next installment of this series, we'll look at how to go about building an effective infrastructure for other areas of the software development lifecycle.
For more information about IBM quality solutions, please click on the links below:
IBM Rational PurifyPlus
IBM Rational Functional Tester
IBM Rational Performance Tester
IBM Rational Manual Tester
IBM Rational Robot
IBM Rational Test RealTime
IBM Rational TestManager
IBM Rational Software Architect
IBM Rational Application Developer for WebSphere Software

As market manager for IBM Rational software, Robyn Gold evangelizes the vision and value of IBM Rational products and the IBM Software Development Platform. Before joining Rational software in 1999, she was the principal of GoldChip Communications, working with clients such as Corporate Software, Funk Software, Thinking Machines, Inc., Houghton Mifflin Interactive, and The Learning Company. Her prior marketing experience includes a three-year assignment at ITT World Directories in Amsterdam, the Netherlands. She holds a BA from Brandeis University and an MBA from Northeastern University.

Geoffrey Bessin is Market Manager for IBM Rational's line of software quality products. Now in his seventh year with Rational, Geoffrey has devoted his entire career to supporting this testing and analysis product line, formerly holding field enablement and product management positions. His focus is now on promoting software quality best practices through the usage of IBM tools, contributing to a wide variety of forums including conference lectures, print media and customer engagements.





