Moving Beyond Library-based Reuse

Valerie A. Neumann

Eastman Kodak Company 901 Elmgrove Road Rochester, NY 14653-5811 Tel: (716) 726-2863 Email: neumann@pixel.kodak.com Fax: (716) 726-5612

Abstract

Effective software reuse requires much more than building an easy to browse, well cataloged, convenient library of artifacts. Journey with us as we explore the non-technical issues surrounding reuse and attempt to move beyond the library concept. This report illustrates our new focus of steering the corporate culture towards reuse-based product development.

Keywords: Reuse-based software development process, culture change management.

Workshop Goals: Exchange lessons learned and validate future directions, with emphasis on culture change.

Working Groups: Reuse management, organization and economics; Reuse process.

1 Background

As the Quality Assurance member of Kodak’s reuse library staff, my work is primarily to support the library’s technical infrastructure. I verify that each artifact is properly cataloged and information describing the component is factual. Other support activities include updating our electronic interface, assisting customers, and studying reuse theory and practice. I have been with Kodak for two years and am a champion of the reuse-based software development process, reuse education, and reuse measurement.

My previous experience with a successful reuse project was in 1983-88 with the U.S. Navy Fleet Combat Direction System Support Activity. FCDSSA restructured its shipboard tactical data system maintenance activity to provide a high degree of reuse of common components, and automated the production of system builds from the reuse component repository [1]. I worked on creating, testing, and integrating reusable components, and was a member of the Common Reusable Library support team.

2 Position

A centralized artifact library has existed in one form or another at Eastman Kodak Company since 1985. Its most recent incarnation is the Software Warehouse, which has been operating since 1989.

This artifact library came into existence due to the efforts of several visionaries who chartered the Software Warehouse to be a corporate reuse library. In the past, funding was directed towards filling the library with artifacts and improving the library infrastructure.

The content of the library is driven by its users, who place artifacts into the library that they wish to share with others. The artifacts are comprised of documents, software, and digital images. Referrals to other Kodak services are also found here.

Out of hundreds of available documents, the most popular are coding style guides and templates for deliverable documents such as Software Requirements Specifications, Test Plans and Software Quality Assurance Plans.

The library also contains millions of lines of code. Over sixty percent of our software items are tools to aid all aspects of the software development process, including system administration and quality assurance. Class libraries and large granularity software components comprise the next largest inventory segment.

The usage of the library has increased significantly in the last two years. Indeed, engineers have a growing awareness of the Software Warehouse, and reuse in general.

However, difficult economic times at Kodak have caused management to re-examine the necessity of operating a reuse library. The Software Warehouse is a small-scale operation that has not largely impacted software development. But that could change soon. The recent adoption of a divisionwide product development process which heavily supports reuse could be the stimulus for sweeping change.

The Software Warehouse staff members are trying to re-define their roles in light of this new development. We believe that the best direction is the creation of a dynamic team to facilitate division-wide reuse “best practices”. To make an impact, the team must identify, understand, and work to resolve the technical, managerial, organizational, economic, legal and sociological issues surrounding reuse.

2.1 Defining the Issues and Requirements

The Software Warehouse team is engaged in the following research tasks to determine how to help reuse succeed on a larger scale:

• Benchmarking other corporate reuse efforts. Lessons learned from corporate reuse efforts assist in identifying future directions which are likely to succeed, and help us recognize potential reuse deterrents at Kodak.

• Interviewing managers and engineers to hear customers’ needs expressed in their own words. This is called obtaining the “Voice of the Customer” and encompasses collecting desired, undesired, and unexpected attributes. Approximately 41 engineers and managers were interviewed to date. This insures that the customers’ needs guide the Software Warehouse in tailoring its inventory and services.

In the future, significant activities will be devoted to:

• Studying cultural change management and working with Kodak organizational psychology experts to formulate and implement plans for cultural change.

• Determining whether there is a need to include reuse consulting among the services the Software Warehouse offers. The goal here is to work with software development projects to facilitate reuse throughout the software development cycle. Surveys are planned to ascertain the reuse-related needs of software development projects, and to gauge the level of customer commitment to the reuse consulting activity.

2.2 Action Plan

A number of opportunity areas and reuse deterrents have been identified and we are formulating plans to address them. What follows is an outline of the opportunity areas and proposed action plans.

2.2.1 Software Process

In the past, Kodak did not have a corporate-wide product development process which supported reuse. This year, the company’s imaging division is implementing the “Kodak Equipment Commercialization Process” (KECP): a process for developing new and leveraged product systems. The KECP, which is supported by upper-level management, consists of a structured set of guidelines designed to provide a customer-driven, disciplined, predictable approach to product development.

The KECP recommends that the “Reusability Assessment” process be used during early stages of product development to determine whether already-developed technologies and designs can be leveraged into the product, rather than creating new designs. The KECP also suggests that “Design for Reuse” requirements be established early in the product development cycle and implemented throughout the program.

For its part, the Software Warehouse is enhancing the software engineering portion of the KECP by integrating reuse activities into the software development and maintenance process.

2.2.2 Management Support

It has been shown that successful reuse programs require visible management support and firm commitment to reuse [2]. We are looking for reuse champions at all levels of management. Once located, we will enlist them to assist reuse programs.

2.2.3 Awareness

Kodak is already having some success due to informal reuse. However, the successes are localized and not very visible to the engineering and management community. One of our goals, that of increasing the awareness level, will be addressed by improving communications with our customers.

One communication tool is the Software Warehouse newsletter which is distributed electronically. It is sent to approximately 300 engineers bi-monthly, as well as posted to corporate bulletin boards, and showcases new additions to the library. We are improving communications by distributing the newsletter to a larger audience, which includes management, and by changing the content. Readers will find articles on reuse concepts, success stories at Kodak, and services provided by the Software Warehouse. It will also address reuse deterrents [3].

During the “Voice of the Customer” interviews, management was presented with reports detailing their organizations’ involvement with reuse in terms of contributing to and retrieving artifacts from the Software Warehouse. The reports have proven to be an effective management incentive and awareness tool, and will continue on a regular basis.

Our plan to increase awareness takes into account reuse training and expanding our horizons to include more “reuse facilitation”. This involves going into the development community and working closely with the reusers and the issues. Positive changes and reinforcements can be made, such as sending a “thank you for contributing” note to contributors and their managers, and by providing feedback regarding the usefulness of a contributed item.

2.2.4 Reuse Facilitation

Facilitation encompasses most of the reuse-related activities that we intend to do at the Software Warehouse: continue operating the library, information exchange and dissemination, linking up projects working on similar things, reuse-based software development process, reuse education and awareness activities.

Engineer and management interviews brought to light one request by nearly all of the interviewees: the desire for a quick way to locate technical experts within the company. To meet this request, the Software Warehouse is developing an on-line project and expertise database. Browsers will have the capability to search the data base for the expertise of interest.

2.2.5 Training

As an initial step in educating managers and engineers, we are planning to have a reputable vendor teach a pilot course. Afterwards, we will evaluate the impact of the course. We hope to enlighten management as to how reuse improves the way we should develop software. Additionally, reuse training for engineers would demonstrate management support for the reuse program, and should influence the culture from the bottom up.

3 Comparison

The majority of the cited references contain guidelines for establishing a successful reuse program. Our activities coincide with the guidelines in terms of setting up a library, obtaining management support, creating and implementing a reuse-based software development process, incentives, reuse facilitation, identifying and eliminating deterrents, and education.

Our reuse effort differs from the guidelines in terms of doing domain-based reuse [4], and creating components, tools, methodologies and standard software architectures to support the domains. It is possible that our future consulting activities may include domain-based reuse.

Benchmarking with the Hewlett-Packard Corporation highlighted a few similarities to Kodak. Hewlett-Packard also started their reuse effort with a library. The library alone did not achieve the desired results. Consequently they are now focusing on knowledge and technology transfer with no centralized library, but many local libraries. Their latest effort shows strong emphasis on domain-based reuse and addressing non-technical issues.

References

[1] J. Aridas, “Deriving and managing functional commonality for software reuse: An rntds experience,” CrossTalk, February 1992.

[2] J. W. Hooper and R. O. Chester, Software Reuse: Guidelines and Methods. New York: Plenum Press, 1991.

[3] “Reuse Adoption Guidebook,” Tech. Rep. SPC-92051-CMC, Software Productivity Consortium, November 1992.

[4] T. J. Biggerstaff and A. J. Perlis, eds., Software Reusability: Concepts and Models. New York: ACM Press, 1989.

4 Biography

Valerie A. Neumann has been a member of the technical staff of the Software Warehouse– Eastman Kodak Company’s reusable artifacts library in Rochester, New York, for two years. Prior to coming to Kodak, she was a software engineer with Unisys and General Electric corporations, working on NATO and U.S. Navy defense software. She has a BS degree in Computer Science and has worked on software development and engineering for over twelve years.