Verbal Ability. Interview Questions. Company Questions. Artificial Intelligence. Cloud Computing. Data Science. Angular 7. Machine Learning. Data Structures.
Operating System. Computer Network. Compiler Design. Computer Organization. Discrete Mathematics. Ethical Hacking. Computer Graphics. Estimation allows basic foundation to develop plans upon. Good estimation provides the basis for better risk management and high project progress visibility. When one is given the task for estimation one has to estimate three things size, effort and schedule. One can adopt one or many techniques to calculate of each of these estimates. It is a better idea to go for many techniques while estimating.
This will help you to sanity check your estimates. Because if two techniques give estimates which are very distant from each another then it means there is some wrong assumption on which one is making estimates.
In estimation first we estimate the size. This is because most of the effort or schedule equations require providing them with the size parameter. These are two major units for calculating the software size.
Since at the start of the project one cannot have the LOC therefore Function Points calculation is used. From function points we can estimate the LOC required for implementing function points. Function points to LOC calculation is based upon the programming language you are using.
For example to implement one function point in C one needs 40 to 80 Lines of code or 55 Lines of code as median value. There are other units for calculating the size estimation and examples of these are: no of user stories, no of use cases and no of web pages.
Effort is directly calculated from the size of the software. There are many models for calculating the effort. Effort is time required for one person to complete the project. Effort can be calculated in staff-month, staff-week or person-hour. Here week and month are dependent upon the company policy. For example in my organization there are 32 hours in each week. If there are more than one person in the team then you have to account for that too because it will definitely reduce the schedule.
After the estimation one can devise up the schedule for completing the project. There are also models and techniques for estimating the schedule for a software project. Schedule is calculated in either months or weeks.
There is one major point when working on schedule estimation. One can ask how much we compress the schedule by adding more and more resources. But in software project estimation one cannot compress to infinite. Take for example if 4 people require 4 month to complete a project therefore 40 people require 1 month to complete the project similarly in this way people can complete the project in one day!
This is not possible. Hence one cannot compress the schedule beyond a certain point. That point and beyond is called the impossible zone. The reason for this schedule compression limit is that in order to reduce the schedule one has to increase the number of developers and this will increase communication problem among the team members. Another reason is inn shorter amount of time one have complete the tasks in parallel and if that task depend upon each other then error produce in dependent task will propagate the error.
Now let's discuss the estimation process or flow. For the sake of simplicity the flow of the estimation is:. First estimate the size and based on the size one can estimate the effort and then from effort one can easily calculate the schedule. The reader see the application for this process in the upcoming examples. There are two categories of techniques for estimation. In scientific methods we have the mathematical equations and from those equations one calculates the effort and schedule.
Second category is based upon the empirical methods. Examples are expert judgment and informal comparison to past projects. Software based tools used scientific methods and used historical data for calibration of these scientific methods. Some techniques are good for sequential and some estimation techniques are good for iteration based development model.
Similarly some techniques are tuned for use in the start of the project and other is used late in the project. Some techniques also depend upon the size of the project different techniques for large project, medium project and other for small projects. Since description of these techniques are out of bound for this article therefore it is leftover to reader to explore. To better understand the estimation process and some estimation concepts I take two of my previous projects. One good thing about these projects is that I have maintained the log of each project.
For example for each project I have a log file like this:. With the help of this log I can easily calculate the total time to complete up the project. I take two projects and from the description of their features I calculate the total function points to complete the project. I used function points because it is easier to drive function points from the features list and requirements document.
From these function points I calculate the expected number of lines to implement these function points using C. After that I compare it with the actual no of lines to complete the project. I found very astonishing similarities. In this way I estimate the effort and schedule and then compare it with the actual effort and schedule to complete the project. This study gives me a lot of awareness for the estimation techniques. Therefore I am sharing my experience for each project here.
For protecting organization data I cannot disclose the real name of the projects here therefore I have used two other names: Project A and Project B. Now I will estimate the size, effort and schedule from the requirements or feature list of the project A. After that I will compare this estimate with the actual size, effort and schedule. In this way I will show the reader that how the estimation work and how you can compare it after you have completed the project. As discussed earlier I have used function points for estimating the size.
Briefly Project A is a data acquisition and processing software. It displays acquired data on the screen. In function points estimation we have to take into accounts all external inputs, external outputs, internal logical files, external interface file and external queries.
Now for project A. As you can see each parameter is assigned a complexity value which is either high, low or medium. One can give this value by determining the complexity that will be tackle when writing the code for that particular parameter. Similarly we estimate the external output. Now as you can see that all of this files and inputs grading is only possible when you have carefully analyze the specification or requirements.
If one miss any of the important parameter then that will result in an error in the estimate. Therefore function points estimates are more accurate when performed by an experience developer. After identifying all possible parameters one can calculate the function points as follows:.
Here first number in the multiplication bold one is the count parameter in that category and the second number is a fixed number given by the Function Points method itself. If we add up the result of each we get the value of This is called the un-adjusted FPs value. Either we can take this un-adjusted function point value as size or we adjust it using a multiplier. This multiplier may come from the past project i. I will try with 3 multipliers as shown below:.
Multiplier Adjusted Function Point 1 79 1. Now one can choose any multiplier and then multiply it with the un-adjusted FPs. This will give us the Adjusted function point count. For each function to implement one need 40 to 80 Lines of C code and median value is Hence in this way I estimated the size of the project A. Are these numbers any closer to reality? JavaScript Example. JavaScript Function Based.
JavaScript Object Based. JavaScript Math Based. JavaScript Array Based. JavaScript DateTime Based. JavaScript String Based. JavaScript ES6 Based.
JavaScript Project Based. Table of Contents. Improve Article. Save Article.
0コメント