ANALOG-BASED COST ESTIMATION FOR MANAGING INCONSISTENCY IN SOFTWARE DEVELOPMENT JOSH MARY ANUKULA 1*, Dr. S. MARUTHU PERUMAL 2*, Dr. S. MARUTHU PERUMAL 3* 1. II- M.Tech, SE, G.I.E.T, RAJAHMUNDRY. 2. PROFESSOR, G.I.E.T, RAJAHMUNDRY. 3. PROFESSOR, G.I.E.T, RAJAHMUNDRY. Abstract: This paper investigates the applicability of Use Case Point estimation model to global software project development. Nowadays, there is growing trend among leading software companies to outsource their project geographically, in countries with lower labor rate. This new trend increases competitiveness in the software market, which in turn shortens the development lifecycle time. This leads to several challenges in project management, especially global project management. Effort and cost estimation are two of these significant challenges. The present paper analyzes the potential of Use Case Point estimation model for global projects and uses this as a basis to discuss three proposed factors (Global team trust, Global team composition and Culture value) that will help in managing the global software project development. 1. INTRODUCTION There is an increasing demand among large IT companies to develop a new software product by tapping into expertise and resources in multiple countries. This new trend in software industry has led to geographically distributed project resources over countries like India, South America, East Europe and Middle-East [1]. Global software development means that the software project is dispersed along several sites in different countries. Several key benefits can be obtained from adopting outsourced projects such as low cost, speed to market and increase competitiveness. According to Herbsleb et al [2, 3] several significant factors have accelerated and contributed to the adoption of outsourced software projects:. 1. Global labor pool management to assure the effective usage of resources and cost: As cost and complexity of new software products are increasing, it is better to spread innovation cost over multiple sites and use strategic partner. 2. Quick to market software: Due to increase of competitiveness among companies, shortening project life cycle will introduce new innovations faster and better. 3. Exploit different time zones in round-the-clock development. 4. Advances and improvement in information technology contributes to enhance cross-national, inter- and intracommunication and collaboration * JOSH MARY ANUKULA II- M.Tech, CSE, G.I.E.T, RAJAHMUNDRY A survey conducted in 2004 reported that 75% of US companies outsourced some of their IT activities in 2004, and that the percentage is expected to continue to climb in the near future [4]. The leading IT companies among others are adopting the outsourced software development, and more than 50 nations are participating in collaborative software development internationally [3]. These facts bear witness to the rapid increase of adoption of outsourced projects. On the other hand, it would seem that managing outsourced software projects presents enormous challenges. As development cost decreases, the problems associated with such projects will dramatically increase. There have been a number of studies attempting to identify the reasons behind these problems including [1, 5]: different software and management terminologies used by different teams. different level of understanding about process model and CASE tools. poor or dynamic team composition. no effective remote communication. no sense of ownership about the project. diverse culture. Strictly speaking, finding a strategic partner is not an easy step. Several factors play significant roles in this selection such as partner reputation, maturity level and experience. Furthermore, many outsourced projects suffer from poor of understanding the software process. Yet, neither clear process model is adopted to enhance the performance of such development model, nor standard management framework is followed [3, 6]. In other words, accepting global process model by all development sites will eventually reduce risks associated with global development. Otherwise, if each single site has its own process model the single process model should be evaluated since the learning curve can impact the delivery of the system as well as its costs [3]. 50
JOSH MARY ANUKULA Generally, developing efficient software requires a number of decisions to be made by the software project manager [23, 24]. These decisions are mainly tied to effort and time estimation that are required early to determine the number of resources and project schedule effectively. Moreover, Quality software applications require appropriate software development and project management processes. High level quality, low cost and risk mitigation require an accurate software cost estimation model [24]. The search for global software cost estimation for outsourced and multi-site projects becomes a crucial step. Accurate cost estimation are an essential element for being able to provide competitive bids and remaining successful in the market [7]. The present paper proposes to extend the wellknown model Use Case Points UCP to support outsourced projects. UCP is a widely accepted model to estimate project effort at an early stage. Whereas Use Case diagram is widely accepted as a de-facto model for analyzing software requirements over the world, UCP model did not take sufficient amount of attention so far. We presume that the UCP model can be extended to support global software cost estimation. UCP estimation does not have factors that support global software development which will be the active part of this research[8]. The paper is structured as follows: section two presents a brief background for software cost estimation models, section three presents UCP estimation model. Sections four and five present our suggested model and critical discussion. Finally we draw some conclusion pointing out the shortcoming of our approach and the proposed future work. II. BACKGROUND Although much research has been carried out in the context of software cost estimation for a single site, little research has been performed in the context of global software estimation model. In practical terms, the majority of software cost estimation models used in the industry are based on the expert judgment [23]. In one sense it is not a method since the means of deriving an estimation are not explicit and therefore not repeatable [9]. Additionally, experienced estimators are required and they must be familiar with the project development environment. However, sometimes it is hard for experienced estimator to effectively predict accurate resources for project being developed over multi-site due to different skills, different language and different culture. These factors will cause the estimation of a new project to become different. Another approach is the Algorithmic models. To date most of the researches have focused upon algorithmic cost models such as COCOMO [10, 11], TUCOMO, PUTNAM [12], COPMO, ESSE [13] and Function Points Analysis [25], which describe the functional relation between effort and application size. These models have been refined repeatedly using calibration from actual completed project data in order to be adapted to new software development philosophies and technologies. Thus, such new approaches frequently involve the use of Commercial-Off-The-Shelf (COTS) software, software reuse, application generators and fourth generation languages [14]. For instance, COCOMO II has been calibrated many times using either regression techniques or Bayesian approach [15]. In spite of this calibration, estimations are often poor. As a result, the algorithmic models suffer from the disadvantage of the need to be calibrated to each individual measurement environment [23]. In addition, sometimes the dataset is scarce, incomplete and imprecisely collected [16]. It is also worth mentioning here that the importance of global algorithmic software cost estimation model attracted few researchers as investigation study conducted by Keil et al [17] who proposed additional cost drivers of distributed development for COCOMO I to reflect the effect of globalization on software cost estimations. They enumerated several complexity factors from other projects and then added them to COCOMO cost drivers. To conclude, there is a massive need to support outsourced projects. III. USE CASE POINTS Among various software size estimation methods Use Case Points UCP is a relatively new and rather simple to use approach. UCP is basically dependent on the Use Case diagram and can help the project manager to measure software application size at early stage [18]. Although Use Case diagram is a de-facto analyzing model, the UCP is not widely accepted in software industries. Use Case Points are calculated in six steps. The accuracy level for UCP depends on the degree of the use case diagram details. The first step is to identify and classify types of actors and use cases developed in the use case diagram. Classifying actors and use cases will help to weight size estimation according to the system complexity. Actor types are classified into three categories according to actor complexity: simple, average and complex. Simple actor represents another system with a defined application programming interface API. An average actor is an actor interacting through a protocol such as TCP/IP, FTP and HTTP or an Actor which is data store (Files, RDBMS). Complex actor represents a person interacting through GUI or a web page [8]. A weighting factor is assigned to each actor as shown in Table 1. In order to compute Unadjusted Weighted Actors (UWA), the number of each actor type is multiplied by its corresponding weight and then adding these numbers to get UWA as depicted in equation 1. UWA= (ns + 2 na+ 3 nc) (1) where ns is the number of simple actors, na is the number of average actors and nc is the number of complex actors. 51
Analog-Based Cost Estimation For Managing Inconsistency In Software Development TABLE 1. TYPES OF ACTORS Actor Type Complexity weight factor Simple 1 Average 2 Complex 3 Unadjusted Use Case Count (UUC) is calculated in similar manner to UWA. Each use case is classified into one of three types: simple, average and complex, according to the number of transaction involved in that use case as shown in Table 2. A transaction is a set of activities, either performed entirely or not at all [8]. Simple use case type contains maximum three transactions. Average use case type contains between four and seven transactions, and finally complex use case type contains more than seven transactions. The UUC is calculated by multiplying the number of each use case type with its corresponding weight then sum the total numbers as shown in equation 2. UUC= (5 suc + 10 auc + 15 ncu) (2) Where suc is the number of simple UC type, auc is the number of average UC type and ncu is the number of complex UC type. TABLE 2. USE CASE TYPES Use case Type No. of transactions Complexity weighting factor Simple <=3 transactions 5 Average 4 to 7 transactions 10 Complex >7 transactions 15 Another approach is used to determine the number of transactions per use case type based by counting analysis classes, which can be used in place of transactions once it has determined which classes implement a specific use case. Simple UC type is implemented by five or fewer classes. Average UC type is implemented by five to ten classes. Complex UC type is implemented by more than ten classes [8]. However, this approach is rarely used. The Unadjusted use Case Point UUCP is calculated by adding UWA and UUC: UUCP= UWA + UUC (3) Like Technical Complexity Adjustment factors of the Function Point Analysis method, two types of adjustment factors are applied to UCP method in order to make the final size estimate more accurate. These factors fall in two categories: Technical Complexity Adjustment Factors (TCAF) and Environment Factors (EF) as shown in Tables 3 and 4. TCAF contains thirteen factors that have great influence on project performance. Each factor value represents the influence of this factor on software productivity and is rated between zero and five; zero means no influence and five means strong influence. The TCAF is calculated by multiplying the value of each factor by its weight and then adding all these numbers to get the sum called the TF as shown in Eq. 4. TCAF=0.6 + (0.01 TF) (4) Environmental multiplier factors contain eight factors influencing software process model ranking between 0 (no influence) and 5 (strong influence). Each factor of EF is associated with specific weight. The Environmental Factor (EF) is calculated by multiplying the value of each factor by its weight and adding the products to get the sum called the EFactor as shown in Eqs. 5 and 6. EFactor= i = 1 EF= 1.4+ (-0.03 EFactor) (6) environemntfactor i * weight i The Adjusted use case points UPC is calculated by multiplying unadjusted use case count UUCP by TCAF and EF as shown in Eq. 7. UPC= UUCP TCAF EF (7) After determining the size of the software application, for management purposes it might well acceptable to derive project effort by utilizing acquired size. Various proposed approaches have been followed in this filed as the study conducted by Karner [19] suggested to use 20 staff hours per UCP. Other field studies [20] showed that effort can range between 15-30 staff hours per UCP. Nevertheless, using UCP is still in early phases and is not widely accepted by many companies because there is no formal structure for how to describe use cases which hinder measuring UC complexity [21]. Also, using free style for describing UC is misleading size estimates. In this regard, Issa [18] described a mechanism to describe full detailed UC description based on use case metamodel. To the best of our knowledge there is no adoption for UCP model in global software cost estimation which encourages us to derive this research. In the next sections we discuss further about how to adopt UCP in global projects. Although our model still in the stage of data capturing, we intended to introduce our hypothesis and critically comments on these assumptions and how can they enhance and improve global software cost estimation models in terms of accuracy. 52
JOSH MARY ANUKULA TABLE 3. TECHNICAL COMPLEXITY ADJUSTMENT FACTORS Technical Factor Weight Distributed System 2 Response Objective 2 End User Efficiency 1 Complex Processing 1 Reusable Code 1 Easy to Install 0.5 Easy to Use 0.5 Portable 2 Easy to Change 1 Concurrent 1 Security Features 1 Access for Third Parties 1 Special Training Required 1 TABLE 4. ENVIRONMENT FACTORS Environment Factort Weigh Familiar with RUP 1.5 Application experience 0.5 Object Oriented experience 1 Lead Analyst capabilities 0.5 Motivation 1 Stable requirements 2 Part time workers -1 Difficult programming language 2 IV. THE PROPOSED FACTORS Global Software Development (GSD) is organizationally and technologically difficult and presents a variety of challenges to the project manager. It is necessary to define how to manage distributed resources specifically. To achieve success in managing global software development, the companies may need to adopt global software cost estimation model. However, as a first step in project management the SPM is asked to estimate the total effort and the project schedule early. Therefore the accuracy of these estimates depends mainly on the type of software estimation followed by the project manager. UCP as shown earlier is a good indicator for the amount of effort needed to accomplish the project. The adjusted value of UCP relies on the appropriate use of adjustment factor either TCAF or EF. In Global software development, there is no factor that reflects the influence of either multi-site development or global development on software cost estimation model except RUP factors which represents the familiarity with rational unified process (best practices for managing software development). This paper investigates the possibility of adding new environment factors to support globalization in the final estimation. This paper aims to investigate the following two hypothesizes: 1. Can UCP method be extended to support global software cost estimation? 2. Does the accuracy of estimation for global software project increase by using new enhanced factors? The following subsections describe the potential factors that will be added to UCP model. Some of factors are enumerated and collected from previous GSD researches. A. Global Team Trust (GTT) Team trust has a large impact on project development. This trust is increased when global process model is followed [3]. The global process model gives sharing understanding between all team members. It provides a common language for all management and development activities. Increasing the trust means that team at site A is fully cooperative with team at site B in all development and management activities, which then leads to enhanced synergy between global team members. There are many factors that badly influence team trust such as poor communication, bad and irregular meeting, distance process model and the infrastructure used [3]. On the other hand, global team trust increases over time when GSP is followed and regular meeting with various communication media are held. The need for this factor arises from the effects of team communication on the success of project development. B. Global Team Compsition(GTC) The team composition in general influences resources, information, and problem-solving style of new project teams, which therefore affects team performance and productivity. However, several researches reported that composition is considered as key factor of decision making and performance of project team [3]. When leading IT companies offshore their products, they rarely migrate their management tasks to outsourced countries, instead they just outsource other development activities. This may lead to increase the need for better communication and controlling effort between all sites. The style of team composition and team structure presents the degree of complexity in global software management. Therefore it is recommended to involve the role of global team composition in software estimation. C. Culture value Varity of cultures cross the world have direct impact on the project success. The Culture provides team members with images of their basic concerns, principles, ethics, ideologies and tactics of self-survival [3]. Stakeholders from different national and organizational cultures are involved in developing software and the many benefits include cost advantage, access to a large labor pool, and round the clock development [6]. To date, most studies on global software project management focused on single culture and its aspects. There is limitation in understating the role of diverse culture in the global project scope. The few 53
Analog-Based Cost Estimation For Managing Inconsistency In Software Development comparative, cross-cultural studies suggest that cultural values, in particular individualism-collectivism, significantly influence group dynamics and results [22]. Astudy was conducted by Early [22] to compare the effect of culture when diverse culture is present. The study compared managers from the USA and the People s Republic of China on a series of individual and group tasks. The result showed consistent with their dominant cultural value of individualism; American managers were more suitable to engage in social loafing than their collectivist Chinese counterparts in group exercises. Another important factor is the language barrier. The common practice in leading software companies is to write and develop all documents in English language. This practice would seem to be complex when outsourced projects are developed in countries with no English language proficiency. Therefore the effort required to mitigate this challenge will increase. V. DISCUSSION This research is exploratory in nature. We propose to rate each one of proposed factors in a similar way to existing factors. Traditionally, each factor is rated from zero to five, a rating of zero means the factor is irrelevant for this project, three means it is average and five means it is essential. Another point to be addressed is how to weight these new factors. It should be apparent that the weighted values used to modify the influence of each factor, so deriving the weight value must go through a well-defined process. A slight variation in the value of weight will dramatically increase use case points and therefore the total project effort. Even small adjustment, for instance half point, will vary the final result by 40% [8]. However, this means that inappropriate environmental weight factors will lead to catastrophic results. The factors depicted in table 5 are weighted according to their influence in the final effort. The EFactor equation will become as follows: 11 EFactor= environemntfactor i * weight I (8) i= 1 The influence of each new factor will determine the percentage of increment or decrement in the total effort estimation TABLE 5. NEW ENVIRONMENT FACTORS Environment Factor Weight Global Team Trust 1.5 Global Team Composition 2 Culture value 1.5 Currently, the research is still in the stage of data capturing, and no results have been published yet. We will leave the evaluation to future work. VI. CONCLUSIONS Global software project development requires innovative approaches in all aspects of project management. This kind of projects is suitable when local cost rate is high and the need to release software to the market quickly. However, this paper illustrated and highlighted the possible importance role of UCP software cost estimation model in multi-site development. The potential factors that affect global project development have been identified and new factors assigned influence rate (from zero to five) and weighted value. Future extension of the proposed model is planned to consider the effect of the diverse complexity factors. The evaluation of this model is also left for future work because as has been said before we are still at the data capturing stage. REFERENCES [1] Robert Zanoni, J.L.N.A., Project management model for a physical distributed software development environment proceeding of the 36 th hawaii international conference on system science, 2003. [2] Herbsleb J.D., M.D., Guest editors' introduction: Global software development. IEEE software, 2001: p. 18(2):16-20. [3] Vanzin, M.A., et al. Global Software Processes Definition in a Distributed Environment. 2005. [4] Kwan-sik Na, J.T.S., Xiaotong Li, Tushar Singh, Ki-Yoon Kim, Software development risk and project perfromance measurement: evidance in Korea. Science direct: systems and software 2006 [5] Wongthongtham P., C.E.D.T.S., Ontology-based multi agent system to Multi-site software development. 2005. [6] Holmstrom, H., et al. Global Software Development Challenges: A Case Study on Temporal, Geographical and Socio-Cultural Distance. 2006. [7] Ruhe M., J.R., Wieczorek I, Cost estimation for web applications. ACM digital Library. [8] Ribu, K., Estimating Object-Oriented Software Projects with Use Cases, in Department of Informatics. 2001, University of Oslo. [9] Mendes, E. and N. Mosley. Comparing effort prediction models for Web design and authoring using boxplots. 2001. [10] Boehm, B., B. Clark, E. Horowitz, C. Westland, R. Madachy, R. Selby, Cost Models for Future Software Life Cycle Processes: COCOMO 2.0. Science Publishers, 1995. Annals of Software Engineering Special Volume on Software Process and Product Measurement: p. pp. 45-60. [11] Boehm, B.W., Software Engineering Economics. 1981. [12] Lawrence H, P.a.W.M., Measures for Excellence. Yourdon Press Computing Series, 1992. [13] W, J.R., A Comparison of the Jensen and COCOMO Schedule and Cost Estimation Models. April 1983. Proceedings of the International Society of Parametric Analysts: p. pp. 96-106. [14] McGibbon, T., Modern Empirical Cost and Schedule Estimation Tools. ITT Industries, 1997. [15] Devnani-Chulani, S., BAYESIAN ANALYSIS OF SOFTWARE COST AND QUALITY MODELS (PhD) UNIVERSITY OF SOUTHERN CALIFORNIA., 1999. 54