Software inspections are a software engineering “best practice” for detecting and correcting defects in software artifacts, including requirements, design, code and test cases. Because defects are detected early in the software development process, software inspection improves software quality and reduces rework, thus saving time and costs. As a software process, inspections are adopted in many variants [6] by organizations such as Ericsson, Hewlett-Packard, Lucent Technologies, Motorola, and NASA. However, software inspection has never become a mainstreaming process among industry practitioners, mainly because of clerical overhead and time bottlenecks. Furthermore, traditional inspection processes cannot be simply adapted for being included into “offshore development”, where large, permanent companies are replaced by temporary groups of developers collaborating on projects over the Internet. Because of its roots on manual activities and face-to-face team interactions the inspection process must be first reengineered and then supported by some Internet-mediated environment. Open-source software processes already provide the evidence of successfully distributed projects, using standard Internet applications for cooperative work. Internet ubiquity makes it possible to reach skilled people everywhere but it does not explain how a large group of people can effectively interact to produce highly reliable software. In its seminal paper [9], Eric Raymond discusses some theories implied by the history of Linux. Among these, there is the “Linus’s Law”: “Given enough eyeballs, all bugs are shallow”. The law is based on the observation that with a large enough base of beta-testers and codevelopers almost every problem shows up, and the fix appears clear to someone. The law can be restated as “Debugging is parallelizable”, where the implication is that the process is scalable because it does not require coordination among debuggers but it only needs one-to-one communication between each debugger and a coordinator, responsible for the fix. Even if the bazaar style of the Linux project might not be considered appropriate for industrial organizations, there is enough that can be learnt for the inspection process. The challenge is to scale up the process and make it distributed, without loosing the advantages of inspections (e.g., phased process, reading toolkits, roles, measurement) over less formal review processes. We propose the Internet-Based Inspection System (IBIS) to support scalable and distributed software inspections. The worldwide distribution of the Internet provides the necessary transport and applicationlevel infrastructure. However, the process used for classical software inspections does not scale up to large inspections. The IBIS adopts a reengineered inspection process to minimize coordination problems and a lightweight architecture to achieve the maximum of simplicity of use and deployment.
Scaling Up Distributed Software Inspections
CAIVANO, DANILO;LANUBILE, Filippo;VISAGGIO, Giuseppe
2001-01-01
Abstract
Software inspections are a software engineering “best practice” for detecting and correcting defects in software artifacts, including requirements, design, code and test cases. Because defects are detected early in the software development process, software inspection improves software quality and reduces rework, thus saving time and costs. As a software process, inspections are adopted in many variants [6] by organizations such as Ericsson, Hewlett-Packard, Lucent Technologies, Motorola, and NASA. However, software inspection has never become a mainstreaming process among industry practitioners, mainly because of clerical overhead and time bottlenecks. Furthermore, traditional inspection processes cannot be simply adapted for being included into “offshore development”, where large, permanent companies are replaced by temporary groups of developers collaborating on projects over the Internet. Because of its roots on manual activities and face-to-face team interactions the inspection process must be first reengineered and then supported by some Internet-mediated environment. Open-source software processes already provide the evidence of successfully distributed projects, using standard Internet applications for cooperative work. Internet ubiquity makes it possible to reach skilled people everywhere but it does not explain how a large group of people can effectively interact to produce highly reliable software. In its seminal paper [9], Eric Raymond discusses some theories implied by the history of Linux. Among these, there is the “Linus’s Law”: “Given enough eyeballs, all bugs are shallow”. The law is based on the observation that with a large enough base of beta-testers and codevelopers almost every problem shows up, and the fix appears clear to someone. The law can be restated as “Debugging is parallelizable”, where the implication is that the process is scalable because it does not require coordination among debuggers but it only needs one-to-one communication between each debugger and a coordinator, responsible for the fix. Even if the bazaar style of the Linux project might not be considered appropriate for industrial organizations, there is enough that can be learnt for the inspection process. The challenge is to scale up the process and make it distributed, without loosing the advantages of inspections (e.g., phased process, reading toolkits, roles, measurement) over less formal review processes. We propose the Internet-Based Inspection System (IBIS) to support scalable and distributed software inspections. The worldwide distribution of the Internet provides the necessary transport and applicationlevel infrastructure. However, the process used for classical software inspections does not scale up to large inspections. The IBIS adopts a reengineered inspection process to minimize coordination problems and a lightweight architecture to achieve the maximum of simplicity of use and deployment.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.