Risk assessment on distributed software projects - IEEE Computer ...

1 downloads 0 Views 182KB Size Report
[4] Hillegersberg, J.V.; Herrera, M. “Tool Support for. Distributed Software ... da; Rocha, Antonio A. de A.; Duarte, Flávio P.; Fernando J. S. Filho, Guilherme D. G. ...
Risk Assessment on Distributed Software Projects Adailton Magalhães Lima Software Engineering Laboratory (LABES) Federal University of Pará (UFPA) Belém, Pará, Brazil

[email protected] ABSTRACT

the development of all software components? Which teams would be able to better interact remotely? This research aims to provide a quantitative approach to support the assessment of risks on distributed software projects. Despite of existing tools and methodologies for risk assessment, there’s no quantitative approach that take into account the specific factors involved on globally distributed projects. The combination of factors such as communication, distance, process and knowledge in a quantitative assessment model provides a novel way to support evaluation and decision-making processes on globally distributed software development projects. We have already gathered some preliminary results from applying a stochastic simulation model to evaluate the schedule risk of a distributed project. In the following sections we provide an overview of research goals and current results of this undergoing doctoral thesis.

Risk Assessment is a growing discipline on the context of distributed software projects. The complexity to develop software and the related knowledge require automated support for project managers in order to analyze actions to reduce the project’s risks and measure the impact of such actions. My thesis aims to investigate an approach for the assessment of risks in globally distributed software projects. This research proposes to apply stochastic simulation technique to analyze project data and identify factors that are likely to impact team productivity and that could affect the team’s ability to meet its schedule objective. We aim this thesis to be applied by project management groups to perform risk assessment early in the software development process and to help decision-making process.

Categories and Subject Descriptors K.6.3 Software Management, D.4.8 Performance.

2. RELATED WORK

Keywords

Boehm [2] identified risk management as a basic discipline for software development projects. Hussey [5] described new and amplified risks incurred by globally distributed projects, which must drive the development of new tools and methodologies to mitigate those risks. Kuipers [7] describes a tool to enable project risk assessment based on software source code analysis. Source code metrics are collected and analyzed to provide an overview of the software development status. A manager can use these metrics to support project management decisions based on development and testing information processed by their tool. Alberts [1] defines a methodology to assess project risks based on positive and negative project risks. Risk drivers are collected on the target project and a risk assessment algorithm is applied to calculate the project risk. The main contribution of this methodology consists of the extension point provided by risk drivers that can be added to support globally distributed software development projects. We have also conducted a systematic literature review [6] about project management heuristics and about tool and methodological support for risk assessment on Global Software Engineering. The most common strategy we have found is the recommendation for common processes and tools over the different development sites around the globe [5][3]. The expected result of applying such heuristics is the improvement of project performance and quality. Besides that, the number of heuristics to combine can make impractical to evaluate the likely result using pilot projects. Despite of the related literature of how to improve the distributed project management, there is no automated support to

Risk Assessment, Global Software Development, Stochastic Models.

1. INTRODUCTION Domain knowledge variability and team communication are important factors to consider in schedule risk assessment models of globally distributed software development projects, where demanded features are outsourced to sites that may have less knowledge about the applicability domain. Different studies on the field of global software engineering [3][4][5][9] have identified common aspects that can affect project schedule, such as: cultural differences, high number of distributed sites; different knowledge expertise and domains; many communication dependencies; time zone differences. The management of a globally distributed project is a complex task considering all different risks that a manager must be aware of when analyzing project’s information. This task can be even more complex when the project manager has to choose only some actions to implement because of budget restrictions. In this case, we have different research questions to answer, such as: How to measure the impact of distributed development practices on current project performance? Which development process model fits better for distributed software development according to the experience of the involved teams? Is it worth to distribute Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ICSE '10, May 2-8, 2010, Cape Town, South Africa Copyright © 2010 ACM 978-1-60558-719-6/10/05 ... $10.00

349

4. CURRENT RESULTS

measure how these improvements could impact on the project performance. In most cases the simultaneous application of all best practices is not worth, and is still a challenge to support project managers to choose the most effective action considering low costs and low time to execute the decision process.

We have conducted a preliminary evaluation using data extracted from a large globally distributed industrial software development project [8]. We applied the current simulation model to evaluate important global software development factors, specifically the communication among sites and the domain knowledge, to predict the project schedule risk. The simulation model was implemented using Tangram-II tool’s language [10]. The simulation model was used to derive a plot of project schedule risk as a function of communication probability. The data generated by the simulation model showed that project schedule risk is more sensitive to communication among teams than to team productivity. We are encouraged by our initial results to extend this work by increasing the number of analyzed parameters and apply process variations to further validate our research questions.

3. PROPOSED SOLUTION We propose a simulation-based approach to derive the project structure and statistics from a project management database to generate a stochastic simulation model. The simulation model intends to predict expected project behavior based on the management practices represented in the model.

5. REFERENCES [1] Alberts, C.; Dorofee, Audrey J.; Marino, Lisa. “Mission Diagnostic Protocol, Version 1.0: A Risk-Based Approach for Assessing the Potential for Success”. SEI Technical Report CMU/SEI-2008-TR-005, March 2008. [2] Boehm, B. W. “Software Risk Management: Principles and Practices”. In IEEE Software, Volume 8, Issue 1, 1991. [3] Ebert, C.; Murthy, Bvs Krishna; Jha, Namo Narayan. "Managing Risks in Global Software Engineering: Principles and Practices," ICGSE, pp.131-140, 2008 IEEE International Conference on Global Software Engineering, 2008.

Figure 1. Overview of the simulation model Figure 1 shows the graphical representation of the current simulation model, representing the feature allocation to sites, the communication among sites, and the queuing of features for development resources. The simulation model was designed to represent an abstraction of a group of development sites interacting during the software development process. Each site has its own domain knowledge capabilities and a set of features that have been allocated to them. The application analyses the project database and computes the probability distribution of project factors, like the time to develop a feature, the communication pattern between sites, and the pattern of feature allocation to sites. Users can provide additional input when such information are not completely available on the project database. The simulation model computes the reduced team productivity due to the communication overhead and queuing for development resources. The project schedule risk is computed by executing the simulation model and extracting statistics about the number of times the simulation resulted in project delay. For example, if we run the simulation one hundred times and obtain as a result that the project was delayed ten times, we define the schedule risk as ten percent (10%). We are extending our research by investigating the relationship between various global software development process models and project schedule risk: various distributed testing processes and time zone combinations. We are refining the current simulation model by applying qualitative and quantitative research to collect detailed information about the impact of time zone differences between remote sites, and how the global software development process should be best organized to mitigate the project schedule risk. We plan to apply a case study to evaluate the accuracy of the simulation model and a survey targeted to project managers to evaluate the applicability of the tool on an industrial context.

[4] Hillegersberg, J.V.; Herrera, M. “Tool Support for Distributed Software Development: The past - present - and future of gaps between user requirements and tool functionalities”. In Tools for Managing Globally Distributed Software Development (TOMAG 2007), Munich, Germany, 2007. [5] Hussey, J. M.; Hall, S. E. “Managing Global Development Risk”. Auerbach Publications, FL, USA, 2008. [6] Kitchenham, B.A. D.; T. Jorgensen, M, “Evidence-based Software Engineering”. Proceedings. 26th International Conference on Software Engineering, 2004. [7] Kuipers, T; Deursen, A. van . Source-based software risk assessment. In International Conference on Software Maintenance, Washington, DC, USA, 2003. [8] Lima, Adailton; Avritzer, Alberto. “An Empirical Approach for the Assessment of Scheduling Risk in a Large Globally Distributed Industrial Software Project”. In Fourth IEEE International Conference on Global Software Engineering, Limerick, Ireland, 2009. [9] Prikladnicki, R.; Yamaguti, M. H. “Risk Management in Global Software Development: A Position Paper”. In Third International Workshop on Global Software Development (GSD 2004), Edinburgh, Scotland, UK, 2004. [10] Silva, Edmundo de S. e; Leão, Rosa M. M.; Silva, Ana P. C. da; Rocha, Antonio A. de A.; Duarte, Flávio P.; Fernando J. S. Filho, Guilherme D. G. Jaime, Richard R. Muntz. “Modeling, Analysis, Measurement and Experimentation with the Tangram-II Integrated Environment”, In International Conference on Performance Evaluation Methodologies and Tools, pp.1-10, Vol. 180, 2006.

350

Suggest Documents