24
Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Embed Size (px)

Citation preview

Page 1: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Populating Software RepositoriesIncentives and Domain-Specific Software

Jeffrey S. Poulin

Journal of Systems and Software, 1995:30, p. 187-199

Page 2: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

RSL

• RSL - Reusable Software Library• Often the core of an organizational reuse strategy• Do not guarantee success• Depending on factors like availability of quality

and useful software• Domain-specific considerations most often

determine the usefulness of software and should therefore influence the population of an RSL

Page 3: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

IBM’s RTSC

• IBM formed the Reuse Technology Support Centre (RTSC) to promote formal reuse throughout the corporation

• Replacing informal reuse with a formal, systematic, process of exchanging quality components

• RTSC worked with designated representative from development sites

• RTSC sponsored enhancement to an existing library system so that it could support and control worldwide distribution of assets

Page 4: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Populating the RSL

• High priority • Incentive programs started to encourage

depositing parts and using parts• Slow progress• Software available for general use stabilized

around a set of low-level utilities and functions• RTSC launched an incentive program to address

this

Page 5: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Reuse library considerations

• 1980’s : reuse programs focused on RSL• Quite often ”the reuse program become the

library”• Resources are spend on library related activities• Little to show other than reports that cite a large

library• Library based reuse has resulted in a modes level

of reuse, but it has not yielded a major change in reuse

Page 6: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Lack of major change in RSL-based reuse

• Caused by the way organizations implement the RSL

• The theory of a creating a central, large repository seems good, but large RSL’s suffer from a number of drawbacks

Page 7: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

The Reuse Library Progression

• Phase 1– very few parts

• Phase 2– many parts of low or poor quality

• Phase 3– many parts of little or no use

Page 8: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

RSL overhead

• Overhead caused by the formality and rigor needed to manage large quantities of data

• Extensive classification scheme used to describer software components– difficult to classify

– users need training

• Lack of standard method to classify software– may help solving the training problem

Page 9: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

A corporate reuse library

• The IBM strategic RSL provides a– central repository for sharing, managing, and reusing

software-related products to company cites worldwide

• A distributed system of shared libraries• The library is owned by the ”local” organization and

access is grants access to RSL users from other sites• Based on a detailed classification scheme to support

locating of relevant software• Software in the library to be reused is copied to the

local machine

Page 10: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

The quality standard of the RSL

• The RSL supports incremental stages of quality – ”use-at-your-own-risk” , ......., ”highly-trusted”

• Provides supporting information to potential reusers– design documents, integration instructions, test cases

and legal information

• A component receives one of three quality ratings based in part on the completeness and quality of the supporting information

Page 11: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Component management of the RSL

• To assist library managers:

• Library access control

• Component user registration

• Version control

• Problem reporting

• Library shadowing

• Standard enforcement

Page 12: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Incentive programs

• RTSC in 1991 faced a corporate RSL in the first stage of the three phases

• Feedback indicated a need for a wider selection of quality and useful software

• RTSC did not sponsor a centralized incentive program but encouraged and offered guidance to sites that wanted to start or have their own

Page 13: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

The supplier-consumer relationship

• The supplier– those who write and and contribute quality

reusable software and related information for others

• The reusers– those who extract from the RSL and

incorporates the software in their products rather than develop it again (the consumer)

Page 14: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Reuse recognization

• Recognition programs usually allot points based on – supplying software for reuse

– reusing software for reuse

– on the level of a developers participation in the program

• Accruing a certain number of point results in the individual receiving prizes or financial awards

Page 15: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Recognizing suppliers

• When determining the proper recognition the program should address:– Participation

• allocating points to first.time users helps motivating developers and generates

– Popularity• Provide more points to authors of very popular components

encourages contributors to look for high reuse opportunities in their projects

– Value• A large, robust and generalized component provides more

economic benefit to the organization

Page 16: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

SIRBO

• Source Instructions Reused By Others• Recognizes part suppliers• The size (line of codes) for each component the

individual contributes by the number of products or organizations actually using it.

• Helps ensure that suppliers do not receive recognition for unused software

• Rewards suppliers who identify widely needed functions

• Rewards contribution of large parts

Page 17: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Recognizing users

• Reuse results from a business analysis showing possible financial savings to the organization

• Forms the basis for individual recognition

• Recognizing reusers also helps create a demand for reusable components

• RSI – Reused Source Instructions

• The number of code lines in each reused component

• Credit is received first time component appears in a product

Page 18: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Recognizing teams

• A team incentive can reward a number of group activities:– reward developer teams who achieve

• a pre-specified goal for the level of reuse

• receive an unforeseen exceptionally high level of reuse

– reward ”parts centre”• based on SIRBO

– Reward any team with a high number of individuals participating in reuse activities

Page 19: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

A corporate incentive program

• Local reuse programs at IBM started to develop and mature, but the overall quantity of parts available for general corporate use seemed to stabilize

• RTSC sponsored the development of reusable software ”The Parts Stimulation Program”

• Moving from phase 1 without the pitfalls of phase 2 and 3

Page 20: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

The Parts Stimulation Program strategy

• getting development organizations to realize that the projects would be more valuable if they made portions of the software reusable

• the program funded the dev. organizations to study their projects and the business issues related to reuse

• the Parts Stimulation Program funded the front-end expenses of conducting the reuse study– performing a domain analysis– developing the specification for the reusable parts– completing a reuse business case detailing who else would benefit

and the expected return of investments

Page 21: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Incentive Program Results

• problems identifying candidate projects

• RTSC decided to fund alternative projects that might benefit the corporation– reuse standard documents– development tools– study of an area of future development

Page 22: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

What makes software usable

• Programmers cannot reuse a software unless it is useful• Categories for software

– Domain independent• widest range of usefulness• abstract data types, container classes, graphical ui,

– Domain specific software• contributes to reuse within the problem domain• device drivers, special purpose libraries

– Application specific software• customized code needed to deliver a product• tends to deal exclusively with application-unique functionality• limited reuse

Page 23: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Domain independent software

• Tends to consist of form 50-200 lines of source code

• single function or set of variables

• higher-level abstractions may include numerous interrelated data and functions that act together to perform a specific task

• high quality

• rarely contributes more than 15 –20 % to the total product

• making it easy to reuse domain independent reusable components is and easy, straight-forward and low cost way to get started in reuse

Page 24: Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p. 187-199

Domain specific software

• Findings in various projects show high level of domain specific reuse

• The best results will come from a domain that:– has limited scope– programmers understand– has matured to a level of relative stability– requires a lot of custom development based on a set of

core functions

• Creating a domain library can be bottom-up or top-down