Monday, June 3, 2019

Project Estimation Techniques in Software Engineering

Project Estimation Techniques in Softw be EngineeringThe four major parameters that control the software witnesss are time, requirements, preferences plurality, infrastructure/materials and money, and risks. This is one of the moderatenesss why fashioning good numbers of these vari suitables like time and re origins required for a make is truly critical. But if the estimate is lower than the disgorge demand it provide affect the pass off of the working class receivable to the lack of enough time, money, infrastructure/materials, or people. At the same time even if the estimation is over estimated then the company leave alone have to face losses due to the extra expenses or even if the enter is sanctioned other projects dont go on since thither is less to go around.For any victorious project management, estimation is a zippy part of project methodological analysis. Estimation has numerous applications like justification of project which has to be apply in the init ial stages of the project where in we need to anticipate the benefits which is compared with the costs incurred as well as to decipher comparisons and conclusions that has to be made with technical and operating(a) teams compound in the project. Also, estimation plays a vital role in project management to implement the disciplines required. Estimates help in sharing the resources required to sleep to dejecther the project deliverables successfully.Estimation transitDefinition Project estimation is a process of forecasting or approximating the project parameters like cost, time, effort etc., for a successful completion of the project deliverables 4.Overview of the Estimation ProcessThe first take aim to be remembered about estimation is that it does not finish until the completion of project and is a process of a slow and gradual refinement. For many software projects a project manager base assist the team to create successful estimates by development sound techniques and unde rstanding about what makes estimate more accurate. Staff required for a project estimation are taken from a pool of people who has some prior knowledge of the domain in which the new project is existence developed.When we want to start a project we need to know radical parameters required in advance like how long it will take, how many people it will require, how much effort it will require. In such cases it is arduous to estimate because in many cases projects overrun or project would go over budget. Always a good estimation practices keep the project on track. In many cases, project estimation bunghole be classified into three categories,Expert opinion Opinion from Qualified experts from within the organization or service partners is taken into account for estimation.Analogy A database where tasks previously completed are butt ind is taken into account. The new project would be decomposed into components/tasks, and compared with the corresponding tasks in the database.Ratios full-page project will be decomposed into Work Breakdown Structure (WBS), and estimating each component individually to produce an overall estimate.When to estimateA rough estimate is needed at the initial stage of the project or probably even before the actual project starts. This is because, the final negotiations should be made with the customer, which needs the rough estimate of the cost, time and quality of the project.Also, Estimation is a process of gradual refinement 2. It should be performed in parallel with the project development, in several(prenominal) phases. Each estimate will be refined to give a converged estimate towards the end of the project.Estimation should be carried out until the completion of project deliverables. in that respect are basically two onrushes for estimating project parameters 4. They are pourboire-down estimation approachBottom-up estimation approachTop-down estimation approachTop-down estimation approach is usually use at the initial stages o f the project. This estimation is usually carried out by the top managers who have little knowledge of the processes involved in the completion of the project. The in ensnare to this estimation is either information or the view of the manager carrying out the estimation. These top-down estimation methods are often used to evaluate the project proposal. In most cases, the best(p) results can be achieved in estimation only when one used both top-down and bottom-up estimation methods. However, it is practically not possible to carry out bottom-up methods until the Work Breakdown Structure (WBS) are clearly defined. In such cases, top-down estimates are used until the WBS becomes addressable.There are many methods in top-down approach listed below 4Consensus methods This estimation method uses experience of a free radical of people to estimate the project parameters. This method involves project meetings, a place where these people can discuss, argue and finally come to a conclusion from their best guess estimate. The Delphi method comes under this category.Ratio methods These estimation methods use ratios to estimate project times and costs. For example, in a construction work, the total cost of the project can be estimated by knowing the number of square feet. Likewise, a software project is estimated by its complexity and its features.Approximation methods This estimation method is very useful when the project to be estimated is closely related to any of the previous projects in terms of its features and costs. By utilise the pastal data of the estimates, good estimates can be approximated with very little effort.Function point methods Many software projects are usually estimated using weighted macro variables called function points. Function points can be number of inputs, number of outputs, number of inquiries, number of data files, and number of interfaces. These function points are weighted again with a complexity level and summed up to get the total cost or duration estimates of the project.Bottom-up estimation approachTop-down estimation approach can usually be put in practice once the project is defined or once there is some progress in the project. This means, this estimation is more into work mailboat level, which are responsible for low-cost estimates and efficient methods. It is often recommended that this estimation is usually carried out by people most knowledgeable about the estimate needed. The cost, time, resource estimates from the work packages can be checked with the associated accounts to major deliverables. Also, these estimates in later stages can be consolidated into phased networks, resource schedules, and budgets that used for control. Additionally, customer will get an opportunity to compare the low-cost, efficient method with any imposed restrictions, using bottom-up approach 4.There are many methods in top-down approach listed below 4Template methods If the project to be estimated is similar to any of t he past projects, then estimates of the past projects can be used as starting point estimates for the new project. This is similar to approximation estimation in top-down approach.Parametric procedures These parametric procedures are same like ratio methods in top-down approach. However, here the parametric procedures are applied on precise tasks.Detailed estimates for WBS work packages This is usually most reliable method of all estimation methods. The reason for this is that here the estimates are performed by people responsible for the work packages in Work Breakdown Structure. These people have prior knowledge or experience upon the tasks they perform specified in WBS, because of which the estimates are usually most reliable.In addition to the top-down and bottom-up approaches, there is another kind of estimating which is a loan-blend of the above two approaches. This is called as Phase Estimating. When there is unusual amount of uncertainty is surrounded by the project, people go for phase estimating. In this approach, two-estimate administration is used over the conduct-cycle of the project. The whole project is initially divided into phases. Then a detailed estimate is developed for the immediate phase, and a macro-estimate is mode for the rest phases of the project.Difficulties in EstimationThere are two major cases where Estimation problems almost always boil down to estimates that are either as well as in high spirits or too low.Padded estimates, where the team members intentionally over estimates in order to give themselves extra time to work, are a chronic source of estimates that are too high. In such case, the project will take at least as long as it had been estimated even though it was before overestimated. According to Parkinsons Law, Work expands to fill available time1.Other case arises when senior managers give unrealistic deadlines that are a chronic source of estimates that are too low. In such cases, the staff in the project devel opment can burnout and produce low quality components. Also the credibility will be garbled because, the deadlines would be missed.Both the cases can lead to morale problems.Estimation ToolsSoftware tools are very important for estimation. Estimation tools are the software packages implemented using any of the estimation methods as its algorithm, to make project managers life gentle. These estimation tools help from skipping important tasks in a method. These tools are useful to organise, update and stash away the results of the estimates. Also, Estimation Tools are useful to 2Estimate project size using Function Points or other metrics.Derive effort and schedule from the project estimates using various algorithms and techniques.Perform analysis with staffing, duration etc. and appreciate how realistic they are.Produce and update results like Gantt charts and other tables easily.Maintain and exploit a database of historic data.Import data from other projects run in organisations with which you have no connection.However, one should very carefully select the estimation tools for a particular project. pattern Required functional capabilities of estimation tools should match the needs and desired capabilities specific to the project.In selecting an estimation tool, one should match the available tools with the overall requirements of the project. In general, estimation tools shouldBe very adaptive to any projects development environment, so that one can customize the tool according to the project needs.Be comparatively easy to understand, learn and use.Be able to produce some early project estimates without waiting for the whole project to be completely defined designed.Be able to provide estimates for different phases and activities in the project, if it is classified so.Understand and support wide telescope of languages and applications, as it is really important for a tool to provide estimates specific to the applications.Be able to provide accurate sched ule estimates, whose purpose is not only to predict task completion given task sequence and available resources, but also to establish starting and ending dates for the associated work packages and life-cycle phases.Be able to provide maintenance estimates separately, which includes correcting errors, modifying the software to accommodate changes in requirements, and extending and enhancing software performance. evaluation of the estimation toolsThere are many tools in the market for project estimation. However, I am investigating a few and very efficient tools in the current market.PROBEThe name PROBE is derived from Proxy Based Estimating, introduced by Watts Humphrey (of the Software Engineering Institute at Carnegie Mellon University) 1.Principle If a component being built is similar to one built previously, then the effort it takes would be about the same as it did in the past.It mainly helps individual software engineers monitor, test, and reform their own work. Each componen t in the database is indicateed a type (calculation, data, logic, etc.) and a size (from very small to very large). Also, a database is used to store history of size and effort details of these individual components. Later on, when a new project must be estimated, it is broken down into tasks that correspond to these types and sizes. A formula establish on linear regression is used to calculate the estimate for each task 1.COCOMOThe COCOMO is the most used estimation tool in the market for cost and schedule estimating. The COCOMO is derived from Constructive Cost Model, developed by Barry Boehm in the early 1980s 1.Principle The model developed empirically by course a study of many software development projects and statistically analyzing their results. There by developing a database of the analysed details.Boehm developed COCOMO empirically by running a study of 63 software development projects and statistically analyzing their results. COCOMO II was developed in the 1990s as an updated version for modern development life cycles, and it is based on a broader set of data 1. The COCOMO calculation incorporates 15 cost drivers, variables that must be provided as input for a model that is based on the results of those studied projects. These variables cover software, computer, personnel, and project attributes. The output of the model is a set of size and effort estimates that can be developed into a project schedule 1.The Planning GameThe Planning Game is the software project planning method from Extreme Programming (XP), a lightweight development methodology developed by Kent Beck in the 1990s at Chrysler 1. It is a method used to manage the negotiation between the engineering team (Development) and the stakeholders (Business). It gains some wound up distance from the planning process by treating it as a game, where the playing pieces are user stories written on index cards and the goal is to assign value to stories and put them into production over time 1.U nlike PROBE, COCOMO and Delphi, the Planning Game does not require a documented description of the scope of the project to be estimated 1. Rather, it is a full planning process that combines estimation with identifying the scope of the project and the tasks required to complete the software. Like much of XP, the planning process is passing iterative. The scope is established by having Development and Business work together to interactively write the stories. Then, each story is given an estimate of 1, 2, or 3 weeks. Stories that are larger than that are split up into multiple iterations. Business is given an opportunity to steer the project between iterations. The estimates themselves are created by the programmers, based on the stories that are created. Finally, commitments are agreed upon. This is repeated until the next iteration of the project is planned.Critical analysisIn order to have the best estimates of a project, it is crack to make some rough top-down estimates initial ly, develop the WBS, using which make bottom-up estimates, and develop schedules and estimates and finally, reconcile the differences between top-down and bottom-up approaches. Also for type results, the project manager should allow some time to carry out top-down and bottom-up estimates, there by reliable estimates can be offered to the customer. This will in turn reduce the false expectations for stakeholders.If we compare estimation approaches, there are some uses to use some approaches depending on the context of the estimation. Top-down approaches are preferable over bottom-up approaches in case of highly uncertain projects, whose scope is also unstable. Also, in case of internal and small projects, it is not expenditure spending lots of time and effort to go for bottom-top estimates. Therefore, in such cases, top-down approaches are preferable. Also, at the initial stages of the project when the decisions and negotiations should be made with the customer, top down is mandato ry, due to lack of WBS to that particular project.However, in case of cost and time estimates are really important and plays vital role in the project development, one should go for bottom-up estimates. In case of fixed-price contracts and when the customer demands for exact details of the project development, one should go for bottom-up estimation methods, due to its highly reliable results. Also, Phase estimation approach is much useful in the projects, whose final nature (shape, size, features) is highly uncertain. However, both these methods largely depend on experts opinions. In case if the experts knowledge in a particular domain is insufficient to estimate, one should go for analytical estimation technique which is used in estimation tools like PROBE.In case of estimation tools, PROBE is useful to the early engineers who are in their learning stage. They can perform wide clutches of experiments and gain knowledge of the previous projects, thereby gaining the real-time experi ence in Estimation. However, COCOMO series of tools are more of professional kind because of its complex and wide range of applications. COCOMO is useful in many decision making situations including, all kinds of estimates, like cost, time, effort, maintenance. Also, using these estimates COCOMO can produce budgets and schedules.ConclusionProject estimation plays a vital role in the planning of any project. Estimation of project cost, time, effort and quality act like input for project scheduling and budgeting. Therefore, the domain of the project to be developed should be initially studied carefully to make a decision in selecting the right methods and tools for a good project estimation. In this document, an investigation report on project estimation is explained in detail. Also, all types of estimation methods and estimation tools are critically evaluated and analysed. Therefore, this document could be helpful in the selection of good estimation methods and tools for successful p roject estimation, in order to make a good project planning for a successful project management.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.