ESTIMATING PRELIMINARY COST OF PROJECT WITH HISTORICAL USECASES IN AGILE TO IMPROVE PRODUCTIVITY

Size: px
Start display at page:

Download "ESTIMATING PRELIMINARY COST OF PROJECT WITH HISTORICAL USECASES IN AGILE TO IMPROVE PRODUCTIVITY"

Transcription

1 International Journal of Civil Engineering and Technology (IJCIET) Volume 9, Issue 5, May 2018, pp , Article ID: IJCIET_09_05_060 Available online at ISSN Print: and ISSN Online: IAEME Publication Scopus Indexed ESTIMATING PRELIMINARY COST OF PROJECT WITH HISTORICAL USECASES IN AGILE TO IMPROVE PRODUCTIVITY R. Manjula Research Scholar, Bharathiyar University, Coimbatore, Tamilnadu, India Dr. R.Thirumalai Selvi Assistant Professor, Govt. Arts College, Nandanam, Chennai, Tamilnadu, India ABSTRACT In Software industry, a large amount of effort and cost is required to develop a solution for the real world problem, additionally the rework, changes and maintenance are some factors which increases the project cost and efforts. Estimating size and effort is a challenging task in agile. Estimating cost can be done through traditional technique. But, Estimating with historical data is a complicated task, because agile has business critical documentation. Hence, less value creating documents are restricted. To resolve this Reusable artifact (ie Historical project usecases) are used to calculate the new project preliminary cost. Historical project usecases are compared with new projects usecases. Usecases contain the details of functional specification of requirements, by validating the requirement, cost can be calculated from resource cost and overhead cost. Ignorance of estimation methods may cause serious problems like exceeding the budget, not delivered on time, poor quality and not right product. Underestimating software development effort can have detrimental effects on business reputation, competitiveness and business performance. Overestimation can result in poor allocation and missed opportunities. Determination of cost will help to the project managers to find out the cost benefit ratio. This paper discusses about cost estimation of Agile project with usecase reuse and also explain business benefit of cost benefit analysis. Complexity Metrics are prepared to map the requirement of historical project usecases with new project usecases. Section 1, contain introduction. Section 2, include literature survey. Section 3, discuss Agile Estimation Technique such as Planning poker and Affinity Grouping. Section 4, Categorize Reusability and its example. Section 5 specify proposed methodology to estimating cost with reusable usecases. Section 6, Shows Experimental Results and Discussion of the proposed Methodology. Section 7, include conclusion. KEYWORD: Historical Data, Reusability, Cost Benefit to Ratio editor@iaeme.com

2 R. Manjula and Dr. R.Thirumalai Selvi Cite this Article: R. Manjula and Dr. R.Thirumalai Selvi, Estimating Preliminary Cost of Project with Historical usecases in Agile to Improve Productivity, International Journal of Civil Engineering and Technology, 9(5), 2018, pp INTRODUCTION Cost estimation has always been a difficult task in software development much of which is research is clone on traditional cost estimation techniques, but little is researched on agile methodologies. Agile software development provides a mechanism in reducing cost and time along with easy to handle ever changing business requirements and environment could be more appropriate. The most common estimate technique is expert opinion, a software development organization rely upon the expert in order to provide accurate estimate. The estimation in Agile software development project also depends on historical data of project for estimation of cost, size, effort and duration. Reusability can be in different category not all Reusability concepts are applied easily. 2. LITERATURE SURVEY This section identifies some of the key research work in the area of Agile Cost Estimation. This paper focuses on construction of effort estimation model for agile software development[1]. Review paper identifies lack of studies on historical project data on estimation, on using bench mark data and composite models[2]. Discuss an efficient way of estimating the effort between Algorithmic and Non-Algorithmic technique[3]. Model development using Unsupervised classification method used to forecast the software development cost and time effort[4].find out the total story points from the total number of use cases, then the initial velocity of the project is determined, from these effort and cost are calculated[5]. Proposes an Auto-Estimate based on a comparison of alternate methods to enhance Agile manual Planning Poker for effort estimation[6]. 3. AGILE ESTIMATION TECHNIQUES Agile projects use a top down approach using a gross level estimation techniques on feature sets, then employing progressive elaboration and wave planning methods to drill down to the task level on a just-in-time basis, iteratively uncovering more and more detail each level down. There are two common techniques for agile estimation, Planning poker and Affinity grouping 3.1. PLANNING POKER The most popular techniques of gross level estimation are planning poker or the use of Fibonacci sequence to assign a point value to a feature or item. The Fibonacci sequence is a mathematical series of numbers that was introduced in the 13 th century and used to explain certain formative aspects of nature, such as the branching trees. The series is generated by adding the two previous numbers together to get the next value in the sequence: 0,1,2,3,5,8,13,21 and so on. For agile estimation purposes some of the numbers have been changed resulting in the following series: 1,2,3,5,8,13,20,40,100. These numbers are represented in a set of playing cards. Team members play planning poker to provide an estimate in the form of a point value for each item. There are several reasons to use Fibonacci numbers in this format. First is the notion that once teams eliminate time as the estimate base, they are less likely to demand more detail and pad estimate. These numbers instead represent relative size not time as a result the estimation exercise goes quite quickly. Team generally spends roughly two minutes on each time, allowing backlog of 30 items to be estimated in an editor@iaeme.com

3 Estimating Preliminary Cost of Project with Historical usecases in Agile to Improve Productivity hour. The fact that teams are limited to only 9 choices also helps to speed up the process. The sequence also provides the right level of detail for smaller and better understood feature, while avoiding a false sense of accuracy for higher estimate. It is important to note that points do not have the same meaning across team, for example one team s five does not equal another team s five. Planning Poker only shows the planned velocity. However, the actual velocity depends on team s progress AFFINITY GROUPING An even faster way to estimate and one used when the number of items to estimate is large, is affinity grouping. Team members simply group items together that are like-size to the one. Each team member select an item and place it based on their own best understanding. This is done with all team members working in parallel unit all items have been assessed and placed on the wall. Several hundred items can be estimated in a relatively short time. Once all items are on the wall, the team reviews the grouping, items that a team members believes to be in the wrong group are discussed and moved if appropriate once affinity grouping is completed estimation unit values such as points can be assigned. Affinity grouping can also be done for other estimation units, such as T-shirt sizes. 4. REUSABILITY In software engineering reusability is the likelihood a segment of source code that can be used again to add new functionality with slight or no modification. The concept of reuse is widely applied in agile development methodologies. Agile software development teams can reuse source code, components, development artifacts, patterns and template. Sprint is a single functionality and the result at the end of the sprint functionality is derived as the shippable or bugs. Identifying and eliminating bottlenecks, it will increase throughput which leads to more profit. Reusability is one of the bottlenecks of agile software development process. Essence of agile software development is rapid software development and less cost. During the analysis of a project, identifying potential opportunities for reuse is important one. Potential reuse can be model through four generalization relationships supported by UML use-case models. Table 4.1 shows Reusable Categories, Description and examples Table 4.1 Reuse Categories REUSE CATEGORIES DESCRIPTION EXAMPLE(S) Collections of related domains/classes to support a Architected Reuse cohesive set of responsibilities Enterprise Architecture Pattern Reuse Reusing the thinking that goes behind the code Patterns on the Web Framework Reuse Collection of classes implement the basic functionality of common technical/business domain Financial services, Security framework, User interface framework Artifact Reuse Reuse of usecases, standards documents, domain specific models, procedures and guidelines to kick start on a new project Package application, Legacy application Component Reuse Use of pre-built, fully encapsulated components in User Interface Components, the development of solution Technical Components Template Reuse Use of vision documents, training slide decks/system Overview wiki pages in an organization Stakeholder vision template, Document template, Project plan template. Code Reuse Reuse of source code within an application. Class libraries, function libraries, Copy& Paste editor@iaeme.com

4 R. Manjula and Dr. R.Thirumalai Selvi 5. PROPOSED METHODOLOGY This section describes Reuse of usecases to the New Project. Usecase is nothing but number of requirements needed to develop a project. To do this, Historical Project and New Project are compared to verify whether Tools, Technology, Team, Domain & working environment are same. If both Projects satisfy this criterion, then Number of usecases are used from historical project and estimated for new project. New Project Usecases are compared with Old project usecases to retrieve similar use cases, and then count similar use cases. If more than 15% of usecases is similar then Historical Project Usecases that can be reused to the New Project. Finally, New Project contains Reusable Usecases and New Usecases. Times are calculated from the sprint duration. Cost are calculated from Resource cost and overhead cost of a project. Proposed Algorithm: - if OP (Ts,Tech,D,WE,T) = NP // Historical Data is available (i.e.,product Backlog)] - Estimate N // No.of Usecases in HP - Estimate N1 //No. of Usecases in NP -for UC = 1 to N - for UC1 = 1 to N1 - if (UC ==UC1) then - C=C+1 //Count No. of similar usecases -end if -End for -End for - F= (15/N)*100 // Criteria to calculate functional specification of use cases - if (C > F ) then - Reuse usecases to NP - Estimate Cost of NP [Reuse usecases + New Usecases] - Estimate sprint duration - Cost & Time reduced - Productivity increased - end if - else - Cost & Time increased - Productivity reduced - end if - else - Exit -end if. [Note: Ts- Tools, Tech- Technology, D- Domain, WE Working Environment, T- Team, HP Historical Project, NP New Project, UC- Historical project usecases, UC1- New Project use cases] Finally, Cost Benefit Analysis is performed. Cost benefit analysis is usually done during sales pitch to know if the project is profitable for both the parties and not be after collection of requirements. After requirement collection, they usually do a reestimation and cost estimation to chek if the project can be completed within scope& timeline editor@iaeme.com

5 Estimating Preliminary Cost of Project with Historical usecases in Agile to Improve Productivity Time required for New Project = Estimated no. of Reusable cycle+ New Requirement cycle Cost of a Project = Resource Cost + Overhead Cost Resource Cost = (No. of Resources X No. of cycle) X Resource Cost /day Per Cycle = 1 Sprint, Sprint = 2 weeks 5.1. OVERHEAD COSTS Not many projects are solely resource costs. Equipment purchases, supplies, tools, or larger items such as infrastructure, land or vehicles may all be required for project. Most agile methods do not provide specific guidance on how to account for these items since agile methods stem from software development where these costs tend to be minimal relative to resource costs. However, as a Project Manager making a budget estimate, it is necessary to check with the team to determine if they know of any large purchases required for the completion of the project. Meaning of "large - in an agile environment is anything that has a cost similar to or more than the resource cost of a cycle. Add these to the project Cost. Overhead Cost = 40% (Resource Cost) [Overhead Cost = Travel cost + Quality Assurance + Documentation +Miscellaneous etc.] 5.2. COST BENEFIT ANALYSIS Cost Benefit Analysis is a technique to compare the total cost and the total benefit of a proposed solution. Both tangible and intangible factors need to be addressed and taken into account. Components may include Cost of resource, equipment, support services and intangible factors, such as cultural impacts, customer satisfaction, or control savings factors, such as current expenditures vs. future expenditures. Cost Benefit Analysis (CBA) - Deciding, Quantitatively, whether to go ahead, and it is a quick and simple technique that can use for non-critical financial decisions. Cost-benefit analysis is one such concept that should be considered a critical component of the software development process. Cost- benefit to Ratio = BUSINESS BENEFITS OF COST-BENEFIT ANALYSIS A focus on quality products is a great asset to any business. However, without the ability to generate profits, the quality of your product offering has little value. There are three primary benefits that smart businesses can enjoy from a cost-benefit analysis: Loss prevention: Able to Prevent pouring more money into a product than get out of it. Increased profits: A Cost-benefit analysis can help to illustrate ways that company can increase software sales, revenue and ultimately profits. Improved decision making: Every part of the software development process offers opportunities to streamline operations, reduce costs, or improve performance if the right information is made available. Having data readily accessible can help management and development teams make the right decisions at the right times. Fig shows the flow diagram of proposed algorithm editor@iaeme.com

6 R. Manjula and Dr. R.Thirumalai Selvi Figure Flow Diagram 6. EXPERIMENTAL RESULTS AND DISCUSSION Data s are collected from various company. Collected data usecases are used to estimate the new project effort and cost. Table 6.1 has the sample usecase details of Historical Project. Estimation Guidelines of usecase Index are prepared. Usecase Index is categorized as simple, medium and complexity. Estimation Guidelines are given in hours and it can be varied depending on the complexity of the usecases editor@iaeme.com

7 Estimating Preliminary Cost of Project with Historical usecases in Agile to Improve Productivity Table 6.1 Master-Data Effort Complexity Guidelines (In hrs) Simple Medium Complex Custom Objects (1 object) Custom Fields (10 fields) Custom Button Page Layout (1 Layout) Validation (5 Validation) Templates (1 Template) Work flow (5) Report (1) Dashboard (1) Record Type (2) Report Type (1) Profile(1) Role Web to Lead(1) Security Assignment Rules (5) Auto Response Rules (Lead & Case) to Case(1) Search Layout Approval Process Tab Queue Migration Data Migration Fig 6.1 depict Execution plan of a New Project development and productivity. It include Configuration (Custom fields, templates, custom object, page layout, Validation, work flow, Report, Dashboards etc.) sprint Planning Design, no. of sprints required for development and unit testing, the demo/retrospective has to be conducted at the end of each sprint. Figure 6.1 Execution Plan Example: No. of Resources = 4 [No. of Tech. lead =1 No. of Sr. Developer = 3] Estimated No. of Reusable Cycle = 7 New Requirement Cycle = 3 Resource Cost /day for Tech lead = $50 Resource Cost /day for Sr. Developer = $20 Resource Cost = (((1 X100) X $50) + ((3X100) X $20))) = $11000 Overhead Cost = 0.3 X $11000= $3300 Total Cost of a New Project Cost Without Historical Project Data = $ $3300 = $14300 Reusable cost = $10010 Total Cost of a New Project Cost With Historical Project Data = $ $10010= $4290 Cost-Benefit to Ratio = $14300/$4290 = editor@iaeme.com

8 R. Manjula and Dr. R.Thirumalai Selvi Table 6.3.Requirement points Sprints Actual (without Historical Data) With Historical Data sprint sprint sprint sprint sprint sprint sprint sprint sprint sprint Chart 6.1 Table 6.3 and chart 6.1 represent Actual no. of sprint and requirements to complete the new project with reuse of requirements. The above example shows that, by Reusing Historical project UseCases to a new project will reduce the number of sprint and also increase the velocity. 7. CONCLUSION Estimating cost of a project is a complicated task. Cost estimation in agile project use either the traditional technique such as expert estimation, Delphi, function point etc., or planning poker, affinity grouping. In this paper, Historical project usecases are proposed to do the estimation of new project. Similar usecases are retrieved from Historical project and reused to the New Project. The result shows that, reusing usecases to the new project reduce the cost of a new project. To determine the cost-benefit ratio, Cost Benefit Analysis is performed between with historical project usecases and without historical project usecases. Cost-Benefit Ratio result proves that new project benefited with the reuse of Historical project usecases. REFERENCES [1] Ziauddin et.al, 2012, ACSA, An Effort Estimation model for Agile Software Development. [2] Dauh Nguyen-Cong & De Tran-Co, 2013, IEEE, Review of Effort Estimation studies on Agile, Iterative and Incremental software Development. [3] Dr.N. Balaji et.al, 2013, Global Journal of Computer Science and Technology, Software Cost Estimation using Function Point with Non-Algorithmic Approach editor@iaeme.com

9 Estimating Preliminary Cost of Project with Historical usecases in Agile to Improve Productivity [4] R. Venkateshkumar & R. Chandrasekaran,2015,IJARCSSE, Prediction of software development Cost and Effort using Multiple Linear Regression [5] Naresh Chaukhan, & Rashmi Popli, 2014, IEEE, Cost and Effort Estimation in Agile Software Development. [6] Kayhan Moharreri et.al, 2016, Cost Effective Supervised learning Models for Software Effort Estimation in Agile Environment. [7] Arsalan Haider, 2017, Industrial Engineering Management, Impact of Agile Methodologies on Cost Estimation Techniques in Software Industry of Pakistan. [8] Col. Dr. Thiruvasagam, G. and Dr. Rengamani, J. Maritime Education in India A Study on Productivity Enhancement. International Journal of Advanced Research in Management, 6(3), 2015, pp [9] Pardeep Rana and Prabhakar Kaushik, Manufacturing Productivity Improvement through DMAIC Methodology: A Case Study of Automotive Ancillary Unit, International Journal of Mechanical Engineering and Technology 8(11), 2017, pp [10] U. D. Gulhane, S. P. Ayare, V.S.Chandorkar and M. M. Jadhav, Investigation of Turning Process to Improve Productivity (Mrr) for Better Surface Finish of Al7075-T6 Using Doe, International Journal of Design and Manufacturing Technology (IJDMT), Volume 4, Issue 1, January- April (2013), pp [11] P.R. Kulkarni, A.K. Bewoor and S.P. Kallurkar, An Empirical Study of Factors Affecting Productivity of Solapur Based Terry Towel Manufacturing Textile Industries (Smes), International Journal of Industrial Engineering Research and Development (IJIERD), Volume 5, Issue 1, January - February (2014), pp INTERNET [12] [13] editor@iaeme.com