Industrial Engineering & Management Impact of Agile Methodologies on Cost Estimation Techniques in Software Industry of Pakistan

One of the key aspects of a project is to deliver the project on time and budget regardless of requirement, scope and time changes. Cost estimation has always been a difficult task in software development much of which is research is done on traditional cost estimation techniques but little is researched on agile methodologies. Agile software development (ASD) provides a mechanism in reducing cost and time along with easy to handle ever-changing business environment and requirements. This study determines the impact of agile methodologies on cost estimation techniques in software development industry by focusing on different type of agile methodologies being used in software development industry. This study reveals how cost estimation at the beginning of each iteration helps company in making more easily and accurate estimate than traditional cost estimation techniques. The most common estimate technique is expert opinion a software development organization rely upon the expert in order to provide accurate estimate. The use of agile methodologies in software development industry for cast estimation purposes is still very new concert. For this concert to be adopted on a larger scale future in-depth study on agile methodologies is required in order to measure exact impact on cost estimation.


Introduction
Ever changing business environment is now you are more dynamic and changes are even more frequent in terms of product development. They additionally interest for quick and cost effective delivery of software products and also to accept evolving necessities. In this viewpoint, software development life cycle (SDLC) and object oriented programming (OOP) approaches are wildly used through the world and must of research and study has been done on these traditional methodologies, Agile project management methodologies brought its own set of small difficulties that must be look after in order to have continuous and effective delivery of software as per client understanding and scheduling. Agile methodologies though its iterative and incremental development techniques and collaborative method of interaction between groups across the functions and organization that permits fast delivery of top notch software to address client issues furthermore oblige changes in the requirements alongside finishing the venture inside given cost and time gauges [1].
Agile advancement or agile methodology is project management technique which is an iterative and incremental way for designing and building activities for new product or service or software development projects [2]. One of the major requirement to implement the agile project management is to have workforce able to completely understand and have a detail knowledge of its business needs working in highly collaborative way, in little steps, to finish little project in a small set of deliverables. These small set of deliverables, delivered to client for understating and feedback in every delivery cycle are known as iteration, and whereas each delivery cycle is call increment, to accomplish quality and feedback.
Agile approach as compared to traditional approaches is that to encourage feedback and review from client to accomplish the project with minimal loss for time, resources and especially cost [3]. It also keeps client's understanding to its fullest and interactive the project thought it life of implementation.
Cost estimation begins when type of resources like list of software, training sessions, infrastructure, testing and hardware are calculated and quality needed to implement the software.
A project manager when assigned to a project needs to so understand how to start planning by investigating type of quality needed and required. Only by listing and estimating the resources' cost can lead to accurate cost estimation, figure to estimate the cost directly increase in time degrees in scope and of course increasing budget for software development [4].
There are many techniques that can be used for cost estimation like constructive process model (COCOMO I and II), top down and bottom up approach, expert opinion, analog costing, multiplicative algorithm.
Agile methodologies are fast becoming standard in software industry. In order to completely understand impact of agile on cost estimations lets first understand the importance of agile methodologies, its benefits and its difference from traditional methodologies.

Agile methodology
The conception of cost estimation techniques in agile methodologies is relatively new topic and there are little or no quantitative data available. Although cost estimation techniques in traditional approaches, are extensively researched and applied in software development these days.
For feasibility reasons, the five to ten companies will be selected in my study and will be drawn from diverse population of data available e.g. medium size software houses, start-ups and large scaled software development organizations.
A project manager from each company will be interviewed and business development managers. A questionnaire will be shared with each member of interviewee in order to have a basic understanding before actual interview.
Agile software development (ASD) has comprehension worldview in programming development that has been received on large scale by businesses and research, over the previous decade productions have led to agile development methodologies.

Types of agile methodologies
Software development strategies are endeavouring to offer a response to the anxious business group requesting lighter weight alongside quicker and nimbler programming advancement forms. Every one of these procedures recognized that superb programming and all the more vitally consumer loyalty must be accomplished by bringing "gentility" to their procedures. Some of the most utilized agile approaches are listed below.
Extreme Programming (XP) has progressed from the issues achieved by the long change cycles of customary advancement models [5]. The XP method can be portrayed by short change cycles, incremental arranging, steady info, reliance on correspondence, and formative design [6]. With all the above qualities, XP designers respond to changing environment with significantly more valor. Further as showed by Williams [7] XP associates spend couple of minutes on programming, couple of minutes on undertaking organization, couple of minutes on arrangement, couple of minutes on feedback, and couple of minutes on teambuilding generally consistently. The expression "astounding" starts from taking these discerning gauges and practices to convincing levels. A summary of XP terms and practices is appeared underneath according to Beck [5].
The lifecycle of a XP wander is separated into six phases: Exploration, Planning, Iterations to release, Production, Maintenance and Death [6]. In the examination stage, the customer works out the story cards they wish to be fused into their venture. This prompts orchestrating stage where a need demand is set to each customer story and a datebook of the primary release is incorporated. Next in the cycles to release arrange, the headway gather first accentuation is to make a system with the building of the whole structure then reliably fusing and testing their code. Extra testing and checking of the execution of the system before the structure can be released to the customer is done in the era organize.
Scrum is an iterative, incremental methodology for working up anything or managing any work. Scrum concentrates on how the associates should function with a particular ultimate objective to make the system versatility in a continually hinting at change environment. At the end of every emphasis it conveys a potential game plan of helpfulness. The expression "scrum" began from a methodology in the game of rugby where it signifies "putting everything in order an out-ofput everything in order again into the entertainment" with joint effort [8].
Scrum does not require or give specific programming progression strategies/practices to be used. Or maybe, it requires certain organization practices and instruments in different times of Scrum to keep up a key separation from the turmoil by unusualness and multifaceted nature [9].
The Scrum strategy may change the normal arrangement of obligations and conventions of the Scrum wander assemble essentially. For example, the venture chief, i.e. the Scrum Master, does not have to arrange the group still manages to choose that what to do. Ken Schwaber describes," Most management is familiar in coordinating the project, recommending the scheme of work and with assurance that it will be delivered. Scrum works independently on its own, group chooses course of action and removes the barriers". Scrum has been effectively utilized by many associations hand have managed to develop profitable results [9]. "Scrum has not only been used over a large and complex group, it has also been used as small components for small groups or enterprise" caused by the genuine procedural difference. Lately, activities have been carried out with XP hones with Scrum venture management structure to frame to include package for programming progression group. Moreover, studies have been carried out to boost the bundle.
Feature Driven Development (FDD) was made most of amusingly as part of huge and complex projects in late 90's [10]. Feature Driven Development (FDD) does not develops the whole procedure but divide it in stages and pattern.
As shown in the figure below, the first three stages are about how to start the task and the last two stages involves the procedure that supports the skillful development with quick alteration to changes of requirements and project needs. The Feature Driven Development (FDD) includes regular and considerable deliverables, meanwhile keeping an eye on the development in the report.
The Feature Driven Development (FDD) has five steps that are shown in the Figure 1 below.
In the mid-1990s, the Dynamic System Development Method was developed in United Kingdom. It is the modified, quick and improved version of fast application advancement and iterative improvement hones [11]. Martin Fowler, writer on the topic of agile manifesto, believes that 'Dynamic System Development Method is a great step forward toward a more customized technique for framework development, while inheriting after skillful approaches'. The fundamental idea behind Dynamic System Development Method is to change time and input, to calculate the worth of item, and the requirement to achieve the desired output within time, input and value required. This method is composed of five phase.
• Feasibility Study

• Business Study
• Functional Model Iteration

• Design and Build Iteration
• Implementation James A. Highsmith created by Adoptive Software Development (ASD), offers a flexible and adaptable way to deal with fast and highchange programming ventures [12]. It is impossible to demonstrate an effective and fast business environment. In figure ASD, the static arrangement outline life cycle has been represented.
ASD Model focuses on the results and their traits rather than the methodology for providing outcomes. In an unpredictable situation you want that individual work together in a particular system to manage the inconsistency. Administration is more about empowering correspondence as that advising individual what to do so that more creative answer is delivered.
In normal prophetic situations, plans are taken after the same way they were laid out; in this manner learning is discouraged. Highsmith acknowledged that "In adaptive area of learning challenges all partners' designers and their customer to inquire their doubts and to utilize the significance of every enhancement cycle to regulate the following" [11]. All things considered learning is determined and vigorous element that is continuously change and arrange the plan after improvement [11].
ASD doesn't have certain standard like XP, but as an alternate it provide us a system which has very skillful method to cooperate, learning and support inside the task. ASD is not displayed as a philosophy for doing programming projects up till now some what it is a methodology or a behavior that must be received by a connotation while applying active procedure [11].
In software development a user story is the other name for element. The term that is used as a part of XP programming it illustrates different level of interest for clients' needs in story card by a composition of client [13]. At that point the designer will assess the client story accomplishment to extend that what level should be done. In this way embracing client stories as an influence to programming cost approximation can reduce effort in expert programming enhancement. For example nature of judgment the time required we can use client stories to assess the cost in programming enhancement .so that it will reduce effort and approximation in procedure.
In agile software development, fixed limitations such as a fixedprice, extra time and schedule some of the time can help group skills. It can prolong group more focused on the financial plan, degree and calendar [14]. Delivering different cost in agile guarantee sharing unbelievable arrangement of danger among customer and engineer [15]. Highsmith [12] comprised stable plan and schedule in a nature of agile strategy and the extra time still stay flexible and it should be mix of industry experience and in agile project group is placing and assessing project degree and effort surely.
A number of algorithmic models have been projected as an assertion to evaluate different aspects of a software project i.e. the exertion, timetable and expenses. These algorithmic models are reasonably comparative but with certain confines that make use of characteristic parameter values. In this article, COCOMO (Constructive Cost Model) model was formed by gathering information from a widespread number of programming accomplishments. The information obtained was probed to find formulae that were fitting to the perceptions. These formulas connect the measure of the framework and item, venture and group elements to the push to build up the framework [16].
Different aspects of COCOMO i.e. utilization of database programming, prototyping and advancement by segment arrangement can be dealt by the COCOMO II model. A meander frame work of improvement is upheld by the COCOMO model along with the implantation of a number of sub-models that result in progressive production of nitty gritty evaluations [17]. Application-structure model was at ease with COCOMO II supporting the estimation of effort required for prototyping wanders. It relies on upon an examination of weighted application centers divided by a standard evaluation of use point effectiveness. Evaluation is then adjusted by inconvenience of working up each article point, Clark, Chulani besides, Boehm [18]. Programming engineer productivity moreover depends upon the experience and limit of the planner and also the capacities of the CASE gadgets that are used to reinforce progression. Levels of thing point gainfulness proposed by the model planners [17].
Linear models have the form: Where the coefficients a1 … an, and are the best fit for the completed project data. The work of Nelson has a place with this sort of models. There is an agreement with Boehm's remark that that "there are too many nonlinear interactions in software development for a linear model to work well" [18].
Again the coefficients a1… an, are the best fit for the completed project data. This type of model was used by Walston and Felix [18] with each xi taking on only three possible values: -1, 0 and 1. There is another model named Doty model [19], which belongs to the same class, with each xi taking on only two possible values: 0, +1. These two models seem to be limiting the cost factor values.
This strategy requires at least one or more than one completed tasks that resemble the new pursuit and induces the estimation through speculation by relationship using the genuine costs of past undertakings. Estimation by relationship ought to be conceivable either at the total venture level or at subsystem level. The total assignment level has the favored viewpoint that all cost parts of the system will be considered while the subsystem level has the upside of giving a more unmistakable examination of the similarities and differentiations between the new tasks and the completed endeavors. The nature of this strategy is that the evaluation relies on upon certified errand encounter. In any case, it is not clear to what expand the past undertaking is really illustrative of the imperatives, environment and capacities to be performed by the new framework. Positive results and a meaning of venture closeness in term of elements were accounted for in Shepperd and Schofield [20]. The Parkinson's principle states that "work expands to fill the accessible volume" Boehm, et al. [17]. By utilizing this principle, the expense is resolved (not evaluated) by the accessible assets instead of in view of a goal appraisal. In case the item should be passed on in 12 months and 5 people are available, the effort is assessed to be 60 person-months. Regardless of the way that from time to time, it gives incredible estimation, this system is not suggested as it may give exceptionally implausible assessments. In the same manner, this system does not propel incredible programming designing practice.
A change of the Delphi framework proposed by Boehm and Fahquhar [17] is all in all more practical and viable: Before the estimation, a social event meeting including the coordinator and pros is engineered to discuss the estimation issues. In step 3), the experts don't need to give any purpose behind the appraisals. Or maybe, after each round of estimation, the coordinator collects a meeting to have experts looking at those centres where their evaluations moved by and large. Methodologies H1: Agile methodologies have an impact cost estimation techniques because agile methodologies can effectively manage requirement changes.

Methodology
Since cost estimation in software development industry is a very specific topic, we need to very careful in selection of population or sample to be more precise. Population would be Project Managers, Business Development Managers and Project Management Implementation teams, in short any person involved in cost estimation in software development industry.
As population is very specific in term of cost estimations, Sample should represent every aspect of software cost estimation techniques and impact of agile methodologies on cost estimations. Sample should have a very comprehensive experience in not only traditional cost estimations techniques but also on agile methodologies currently used in software development environments. Keeping this in mind, Sample is selected from various software houses where not only organization's size is catered but also there's primary nature of IT business as well (as pure software development organization tends to follow new techniques in more aggressive manner than others.) Hence sample is taken from large, medium and small sized organization along with their primary nature as well. Sample is consisting of 7-10 organizations.
Dependent variable in the study is cost estimation techniques software industry. This is dependent variable because we want to find the impact that agile methodology have over cost estimation techniques. The independent variable in this study is agile methodologies because we want to study the impact agile methodology creates on cost estimation techniques. Independent variables are fix custom storyline. Moderating variables have considerable impact on the relationship of independent-dependent variables, hence in our study we will also keep in mind the moderating variables like frequent requirement changes.
Basic tool for collecting data questionnaire (attached in Appendix) which consists of two logical sections one is related to the use of agile methodologies and other specifically related the impact of agile methodologies and cost estimation techniques. The entire process of collecting data rests on the questionnaire and its fulfilment by business development manager and project manager of various organizations. Business Development manager and project manager are carefully selected are involved in cost estimation. Statistical process will include T-test and Chi-square; these tests are selected on basic of simplicity and frequency of observed vs. expected variable's relationship.

Data Analysis and Results
Since the introduction of agile methodologies in software development industry, there is a considerable change in the way project is carried out. Agile methodologies have a profound effect on software development industry, in this ever-changing environment where requirement changes are very frequent and time constraint is also almost always applied. Agile methodologies provide an effective way for development authorities to develop software according to changing requirements from client and changing scope time and budget. Agile methodologies having an impact as how a project is carried out and it implementation phase, this empowers the software House to absorb the ever-changing climate environment and hence gives a greater freedom in terms of cost estimation. Traditional cost estimation techniques are affected in the positive term when agile methodologies are involved is it makes it functional point analysis easy a lot of contexts.
In order to understand the following statistical tests we must first have to study the data of the simple which can be of pure IT related organizations and organization related to different Industries with primary business as IT. Most of the data is collected from software houses across Pakistan, which involves around 20 organizations. Almost all the data came from project managers, business development managers and other involved in cost estimation process.
Different statistical Tests are carried out on Sample data in order to prove the dependency of dependent variable on independent variable. These different tests include chi-square, t Test, reliability, regression, bivariate coefficient, mean, medium, mode, standard deviation and others. Each individual question is also summarized and tested according to standard deviation mean median mode while collective test on data and also carried out, all of these facts and figures are as following.
Following table shows what cost estimation techniques currently company applies, options available are expert opinion, COCOMO I-II, Parkinson, Bottom up, top bottom and other. Figure below shows that expert opinion is about 60% followed by COCOMO I-II 24%. There is overwhelming dependency an expert opinion in the software development industry (Table 1). and scope which can easily be handled while using agile methodologies ( Table 2).
In order to understand the impact of agile methodologies and cost estimation you first have to look what exactly is included in cost estimation, the table below answers this question with option available as hardware, software development, vender, R&D and others. With majority of the cost is dependent upon Hardware and software development (Table 3).
Another aspect from which cost estimation changes can be viewed is challenges encountered during cost estimation which option available as incorrect requirements, change frequency, project methodologies, technology variance and others. The below table shows that there is a considerable dependency on change frequency and even more so on incorrect requirement gathering (Table 4).

Software cost estimation can have multiple phases mainly it's divided between the primary and the Final Phase of the following table
shows at what phase major cost estimation take place and that is usually the initial phase with more than 62%, proving that initial cost estimate usually leads to the final cost estimation (Table 5).
Cost estimation is usually re-estimated during multiple phases which includes before development, during development, during QA, during deployment and others. The following table shows that cost estimation is re-estimated before development and during development ( Table 6).
The following table shows the project manager's and Business Development manager's point of view in terms of effectiveness of various cost estimation techniques. In current software development industry expert judgment and parametric methodologies are considered effective ( Table 7).
The following table shows that how much agile methodologies are used currently in software development industry. There is a considerable shift to agile methodologies and its variants, as agile methodologies       provide easy user change requirement accommodations along with its frequent changes (Table 8).
Agile methodologies have a profound effect on functional point analysis. Function point analysis is the basic for cost estimation in software development industry as it helps out identify function point which is easier to estimate in terms of effort in software development.
The following table shows that agile methodologies have a great effect on functional point analysis (Table 9).
Do agile methodologies address is the cost estimation challenges that are encountered in cost estimation process?
The following table answer this question as agile methodology addresses the issue but still majority of the problem in cost estimation is still impacted by various other factors as well (Table 10).
There are multiple types of agile methodologies currently used in software development industry. The following table shows that traditional cost estimation technique that is more easily compatible with agile methodologies is cost estimation (Table 11).
Agile methodologies recently have a new entrant in repository which is fixed cost and storyline method. Are these types frequently used in software development industry nowadays? The following table answers this question by the declaring both advanced concept for which training is required within software development industry (Table 12).
Large-scale projects using agile methodologies type feature driven development FDD has a synergetic effect on functional point analysis, the following table shows exactly this buy a predominant Factor which is 60% (Table 13).
Communication is a key for any project success. Does communication have an impact while using agile methodologies?
The following table answers this question which can be summed up as communication or lack of communication has a partial effect on       agile methodologies as agile methodologies have a mechanism to accommodate frequent changes, scope and time. This in turn forces the software development house and client to communicate on frequent basis (Table 14).
Client's understanding of information Technology infrastructure has a critical role in cost estimation, this is variant for different types of project in different software development industry. The following table shows the mix result client's understanding of Information Technology infrastructure has an impact on cost estimation (Table 15).
Client lack of understanding of their own requirements have an impact on cost estimation, the following table shows that most of this software development houses have a criteria you understand client's on understanding of requirements, which in turns have a great impact on cost estimation (Table 16).
Cost estimation is impacted by agile methodologies in following criteria. Effects greatly in positive sense, effects greatly in negative sense, no effect and hardly any effect. The following table shows that agile methodologies have a large impact on cost estimation in positive sense (Table 17).
In the following table a linear regression test is carried out in order to focus on dependent and independent variables. As you can see in the following tables there is a strong relationship between dependent and independent variables answer the regression sig. is .763, which is about 76% (Table 18).
A reliability statistical test is related to reproducing similar result under constant conditions, the following table proves High reliability of variables (Table 19).
T-test paired sample is a statistical test related to comparing means of two samples that they are related. The following table shows that there is a 76% correlation between the two samples (one is pure IT related organizations and other days mixed of different industry with primary business IT) (Tables 20). A bivariate correlation statistical test is measuring relationship between two variables. The following table shows the strong relationship between dependent (cost estimation) and independent variables (agile methodologies) which is about 76% (Table 21).
A chi-square is a statistical test related to mirroring the actual value against the expected one. The following table shows that there is a 75% likelihood that desired result will be the same as expected (Table 22).
In the section above weather test is on single question or on combination of data results of significantly visible. In our studies primary variables agile methodologies and cost estimation are tightly bonded and result is reliable, testable and repeatable. We can also see that mediating variable also have profound effect independent and dependent variables that are agile methodologies and cost estimation respectively. We can also say that traditional cost estimation techniques are still in use and introducing considerably effective cost estimation, in case of agile methodologies; cost estimation techniques are refined hence made effective.

Conclusion and Recommendations
In the end findings can be summarized as agile methodologies have     a positive impact on cost estimation techniques, many techniques are employed with the same patterns for cost estimations project manager and business development manager can apply traditional techniques but still agile methodologies provide project manager and business development manager ability to understand estimate and manage changes that are frequent in terms of cost, scope, requirement and understanding.
Using agile methodologies project manager and business development manager is more equipped to comprehend ever-    changing business environment and requirements in more effective and manageable manner the implication of the finding can be agile methodologies provider a way for project manager and business development manager you have a very accurate cost estimation.
The purpose of this study is to evaluate agile methodologies in light of cost estimation. In any industry cost estimation is a very sensitive and highlighted matter in software development industry this cost estimation becomes even more sensitive and highlighted due to the ever-changing business requirements and business environment. In most of the cases cost estimation is heavily affected by requirement changes, score changes and timeline changes in light of this changing environment project managers and Business Development managers have come up with this solution to these problems which are affecting cost estimation, most of these changes be it requirement scope or timeline can be effectively handled by using agile methodologies.
Agile methodologies currently used in the software development industry has begun to take shape as small large and medium organizations begin to use agile methodologies a number of projects and products in more effective manner. Agile methodologies provide business development managers and project managers the ability to comprehend changes in business environment and act accordingly.
Most effective cost estimation techniques traditionally used are COCOMO I-II, Parkinson, bottom up, top bottom, and expert opinion. Most widely cost estimation techniques used in software development industry is expert opinion with its unique ability to comprehend requirements expert opinion is very effective when used in traditional software development life cycle (SDLC) and agile methodologies.