Software Project Management
Prof. Durga Prasad Mohapatra
                  Department of Computer Science and Engineering
                     National Institute of Technology, Rourkela
                                      Lecture – 17
                         Project Estimation Techniques (Contd.)
Good afternoon. Now, let us continue the remaining parts of the estimation techniques.
(Refer Slide Time: 00:23)
Well here see a taxonomy of the various estimating methods, then we will see about
these size estimation.
(Refer Slide Time: 00:31)
So, let us see at the one type of taxonomy, a taxonomy of the existing estimation
methods. The estimation can be top down or bottom up. So, here normally they are
activity based and analytical. And then, the estimation techniques can be parametric or
algorithm models, for a view example function points that we will see in the next class.
Then expert Judgement technique, that is another category of method expert Judgement.
Here, we just guess the various estimates, initial with initial guess we start the estimation
procedure. Then analogy as its name suggest we have to see how a project is a
analogous. It similar to another project existing project, then we can estimate the
required parameters. These are normally case based and they it is based on the
comparative principle and another methodology for estimation is price to win.
(Refer Slide Time: 01:32)
Let us start with the price to win method, what does it say? The project cost whatever the
customer can spend on it. So, according to this the cost or the estimated project cost is
that cost that the customer can spend on it. So, the project cost whatever the customer
can spend on the project and advantages here is that you get the contract, it is very
possible, it is very much probability there that you will get the contract and
disadvantages that the cost they do not accurately reflect the work required. So, what
work will be performed the cost may not accurately reflects the work required.
So, here either the customer he will not get the desired system or what will happen the
customer will over pay, because the work is less and he may pay more than the that is
desirable ah in regard to the work that or the service that he is getting .
(Refer Slide Time: 02:37)
So, this approach may seem very much unethical and unbusiness like, because as you
have seen that the cost they do not accurately reflect the volume of the work required.
So, it this approximation may seem to be unethical and unbusiness like; however, when
the detailed information regarding the volume of work etcetera is lacking then this
method may be the only appropriate strategy.
So, now, let us see which is the most ethical approach? The project cost is agreed on the
basis of ah an outline proposal and the development is constrained by that cost. So, the
project cost normally, it is agreed on between the client on this developer based on what
on the basis of an outline proposal and the development is constrained by that cost. So,
that what should be ethical and a detailed specification maybe negotiated or an
evolutionary approach may be used for the system development .
(Refer Slide Time: 03:45)
So, what parameters are to be estimated, for project planning? We need to estimate the
effort or the indirectly the cost and the duration, but it is very much difficult to estimate
the effort or cost or the duration directly from a problem description. So, what we have
to do? The effort and duration, they can be measured in terms of the project size, which
is an indirect metric and a project size we can measure by using either LOC that is Lines
of Code or FP that is Function Point .
(Refer Slide Time: 04:21)
So, let us see that; we know that size as effort and cost duration they cannot be directly
estimated. We have to use a size or this what yes, we have to use project size for
estimating and then the for estimating effort and duration. So, size is a fundamental
measure of work, based on this we can estimate the other parameters such as effort and
duration.
So, it is based on the estimated size ok, based on the estimated size, two parameters are
can be estimated; they are the effort and the duration. So, effort is measured normally
person month, I have already told you if the person month earlier, that effort is measured
in person month still let say define person month. How the person month is defined? One
person month is defined as the effort that an individual can typically, put in a month ok.
So, one person month means is the effort that an individual can typically, put in a month.
So, here in this way we can calculate this, what person we can define person month and
using person month, we can define, we can measure effort. So, as I have already told you
first, we have to compute size then we can compute effort and the duration.
(Refer Slide Time: 05:46)
So, what is size? It is a measure of work that is being done. So, project size is a measure
of the problem complexity ok. Project size can be considered as a measure of the
problem complexity, in terms of what? In terms of the effort and the time required to
develop the product. Two metrics are popularly used to measure a project size. I have
already told you one is LOC or in a finer terms can say that Source Lines of Code or
SLOC and another is Function Point or FP.
So, SLOC is conceptually simple, just we have to count the lines of the code, the Source
Lines of the Code we have to count that is conceptual very simple, but FP is nowadays, it
is favored over a SLOC. We will see there are several drawbacks of SLOC. So, that is
why nowadays people are using FP it is a preferred over SLOC, because of the many
shortcomings of SLOC we will discuss after few minutes, what are the shortcomings of
SLOC.
(Refer Slide Time: 06:49)
So, the lines of code means; what is a line of code? Basically, this lines of code was
proposed when programs were typed on cards with one line for cards. So, previously
people are using punch cards. So, during that time so this lines of code it was proposed.
So, it was proposed when the people were or programs were typed on cards a, punch
cards with a one line for card. So, what happens when statements in Java span several
lines or where there can be several statements in one line; see this is the drawback of
lines of code.
So, it was develop keeping in mind that only one line or yes, one line can be entered for a
for card. This metric was meaningful, but when, so different programming language high
level programming languages came and in some cases like Java that this statements Java,
they are, they span over several lines or in one line you can rise statements then this lines
of code may not be a suitable measure to may not be suitable metric to measure the
program size. So, similarly what programs should be counted as part of the system. So,
what programs will be counted as part of the system say for example, GUI.
So, it is not a functional requirement, but should it be the statements written for
designing a GUI should it be counted as a part of this system. Similarly, the built in
classes, which are provided in the programming languages. So, can they be counted as
worth or this LOC? Will they be counted as part of the system that you are going to
develop? So, these are some of the limitations, you can say and or that is why the lines of
code may not be a suitable metric for all types of these what modern applications.
Initially, software development consist of only writing the code, but now, several things
are possible while developing or several things are performed while developing any
system or project.
(Refer Slide Time: 08:54)
So, in Lines of Code we will use this terms like LOC, which represents lines of code,
KLOC represents what kilo lines of code that mean thousands of lines of code. KSLOC
means thousands of source lines of code and NCKLKSLOC means the new or changes
KSLOC. So, how many? What lines of code? They are completely new or they are
changed. So, these are the terminologies, they are used in this metric lines of code.
(Refer Slide Time: 09:32)
So, now let us say few things these are counter intuitive in case of LOC. The lower the
level of the language the more productive the programmer is; obviously. So, if the lower
language, lower the lower the level of the language.
For example; you say assembly level language, etcetera, then what will happen their size
will be less. In one instruction with a programmer may achieve several things. So, that is
why the lower level of the language the more productive programmer is by using only
fewer sentence we can achieve a lot of jobs.
And similarly, what this I have already told you the same functionality takes more code
to implement in a low level language, then in a high level language is not it. The same
functionality it takes more code to implement in a lower level language than a high level
language. So, the more verbose, the program the higher the productivity.
So, if there will be more verbose the more verbose the programmer is the higher the
productivity. Measures of the productivity based on lines of code suggest that the
programmers who write verbose code are more productive than programmers who write
just compact code, because he is using more what he is using what more verbose. So,
that is why the lines of code will be more. So, it say that measure of the productivity
based on lines of code is suggest that the programmers who are writing verbose code,
they are more productive and than the programmers, who write compact code. So, this is
another counter intuitive for lines of code.
(Refer Slide Time: 11:15)
Now, quickly let us see some of the major shortcomings of SLOC. Size can vary with
coding style. So, different programmers can follow different coding styles and if the
coding style is different, then size will be different.
Similarly, this LOC, it focuses only coding activity alone no other activity, because you
may have to has a while developing the software, you might have to carry out
requirement analysis, you may have to do design, you may have to testing etcetera, but
this LOC for that you are putting some effort, for the requirement analysis or for coding
or for testing or for designing you are putting some effort, but LOC does not take into
account that it focuses only coding activity alone it correlates very poorly with quality
and efficiency of code.
So, what will the quality of the code, what will the efficiency of the code? So, LOC
correlates very poorly with them similarly, penalizes higher level programming language
code, reuse, etcetera if you are using very high level programming languages, because in
assemble language programming same thing can be done with very just few statements,
but in high level languages you may use what some more statements for that. So, it
penalizes the high level languages, programming languages.
Similarly, if you are using code, if you are what using this code reusing, if you are
following code reusing; that means, you have developed one and again and again you are
using. So, then also it penalizes this, so the size may not be accurately corrected, if you
are using code reuse. So, these are some of the shortcomings of SLOC.
(Refer Slide Time: 12:50)
So, other shortcomings are like difficult to estimate at start of the project from problem
description, if we are just given with a problem description like as a SRS document then
it is very much difficult to estimate, maybe what is the size or the very beginning of the
project. The only way since, you cannot get an accurate estimate at the beginning, the
only way is to estimate it to make guess and so not useful for project planning.
So, that is why this LOC is not very much useful for project planning. So, it only it is I
have already told you, it is used only as a code measure. It cannot be used for measuring
what the effort that you are putting during what your requirement analysis or design or
testing this cannot be used for measure them.
Similarly, it is programmer dependent, because different programmers will write the
program programs differently. So, the lines of code many be different, so it is
programmer dependent and it does not consider structural or logical complexity. It only
considers what the lexical and the textual complexity only, it does not consider a
structural or the logical complexity of the program.
(Refer Slide Time: 14:08)
There are still some further difficulties with SLOC like SLOC can become ambiguous
due to rapid changes in programming methodologies program and languages and tools.
So, due to the changes in the programming methodologies languages and tools, SLOC
becomes an ambiguous. Might be see the language advancements are there. So, different
languages are coming up and this can put um, this can lead to problem, this can lead to
ambiguity while estimating SLOC. Similarly, many tools are there the where you can
automatically generate the source code.
So, then what this SLOC may not be useful very much say like you are having RSA
rational software architect where from the class diagram you can automatically generate
the skeletal code, then SLOC may not be properly what it, it may not be suitable to
measure this what it may not to be suitable metric to measure the size, similarly custom,
software and reuse.
If you are customizing the software, if you are developing a customized software and
you are using code reuse then SLOC may be ambiguous and similarly due to a newer
programming or what changes in programming methodologies such as object oriented
programs, aspect oriented programs, feature oriented programs so they are in those cases
SLOC, the size cannot be accurately estimated by using this measure SLOC.
(Refer Slide Time: 15:34)
So, now let us see some of the what a techniques for effort, let us, we have already seen
this pricing technique then we will see about the other techniques, we will see first expert
Judgement based techniques. Here, we will see these are the techniques which are
coming under expert judgement based technique that is basic expert judgement weighted
average estimating consensus estimating and delivery let us first say about the basic
expert judgement.
(Refer Slide Time: 16:03)
So, here in the if you are using basic expert judgement technique for estimation, what is
happened here, one or more experts, they predict the software cost, this process is
iterated until some consensus is reached among the experts. The advantage of using this
method is that is very much relatively simple estimation, it is a very relatively simple
estimation method, it can be accurate, if the experts have direct experience of the similar
systems.
But if the experts they do not have experience of the system that you are developing then
the estimation may be wrong. The disadvantages that very it may the estimate may be
very inaccurate, if there are no experts available in this kind of what system that you are
developing suppose, you are developing a avionics system and there is no expert who
have knowledge who has knowledge on the avionics, then; obviously, the estimates will
be wrong .
(Refer Slide Time: 17:02)
So, now let us see about this steps of the basic expert judgement method. So, first in this
method there will be a as I have already told you there will be a group of what experts,
one person who will act as the coordinator. The coordinator presents each expert with a
specification and an estimation form ok. You will coordinate the what activities, you will
present the coordinator present each expert with specification and an estimation form and
the coordinator calls a group of meeting in which the experts discuss estimation issues
with the a coordinator and each other.
So, coordinator can convene the meeting where the experts they will discuss the
estimation issues with the coordinator and with the other experts then the experts fill out
the forms anonymously. Then the coordinator prepares and distributes a summary of the
estimation, the coordinator prepares a summary and then he distributes the summary of
the estimation on an iteration form. Then the coordinator calls a group meeting specially,
focusing on having the experts discuss points, where their estimates varied widely.
So, here the if there are suppose, five experts and their estimates are varying widely, then
again the coordinator will call a meeting and discuss why there is a variation, because
project is same parameters are same, why there is a variation among the estimates then
they may have discussed. Then experts, they will fill out the forms again anonymously
and steps 4 and 6 are iterated for as many rounds as appropriate till they reach to a
consensus decision, this process will be iterated.
(Refer Slide Time: 18:40)
Now, the we know what is an expert, actually an expert is a familiar with and expert is a
familiar with the system and he has he is knowledgeable about the application area that
you are developing and the technologies that you are using. So, particularly it is very
much appropriate where existing code is to be modified and existing code is already
there and you are trying to modify, then you are doing this estimation. In this case basic
expert judgement technique will be very much what useful, but research shows that the
expert judgement in practice it tends to be based on another methodology called as
analogy methodology.
(Refer Slide Time: 19:22)
So, let us see what we will see this analogy methodology. So, let us see what are the
stages that the basic expert judgement method may pass through, as I have already told
you, it is based on an analogy method the steps or the stages are like this. Then first
identify these significant features of the current project. Then identify or just look at the
previous projects with similar features.
Then look at if there is find out, if there an any differences find out whether if there are
any differences between the current and previous projects. Then find out what are the
reasons why they are differences find out the possible reasons for the errors or the risk.
Then measures adapt measures to reduce this uncertainty, then you have to text some or
adopt some measures to reduce this uncertainty or the risk.
(Refer Slide Time: 20:15)
As I have already told you this the basic judgment technique is basic expert judgement
technique is based on the estimation by analogy. So, what do you mean by this
estimation by analogy? The cost of a project is computed by comparing the project to a
similar project in the same application domain. So, suppose, you are we have developed
a project for a private organization academic institution and next you are the as a project
manager you are developing this, what academic system for a government institute, then
they are similar types of applications.
So, here you may what compare the projects that you have spent in the while developing
the academic autonomous system, for the private organization or private university with
that of the what proposed one; that means, for the government university, then you can
see what could be the estimate. May might little bit vary, but it will it may give
appropriate result.
So, the cost of a project here is computed by comparing the project to a similar project in
the same application domain. So, one example I have already given you that if you have
already developed a project for a private institution and then developing a similar project
for a government academic institution. So, you can compare the projects and estimate
accordingly, for the new project that you are undertaking for automating a government
university or institution.
Now, the advantages of estimation analogy that it may be accurate, if a project data they
are available and the people and the people and the tools they are same ok, it may be
accurate, if the project data which are available to you from the first project and the
people and tools they are the same. It will be advantages, disadvantages is that it is very
much impossible, if no compatible project has been tackled.
If similar kind of similar or if similar kinds of projects they have not been done earlier
then this is then, you cannot estimate for the current projects. So, this will disadvantage.
So, it needs systematically maintained cost database. So, whatever previous projects are
there you must maintain their various cost in some database. So, it is needs
systematically, maintain their cost database, so that you can use in future.
(Refer Slide Time: 22:36)
So, now again let us go back to the basic expert judgement technique what are the, what
disadvantages, it is very much hard to quantify. Similarly, it is a hard to document the
various factors, which are used by the experts or the experts group. Experts may be
biased, because after all they are human beings, experts may be biased, they may be
optimistic or pessimistic.
Even though they have been decreased by the group consensus and the expert judgement
method always complements the other cost estimating methods such as algorithmic
methods. So, always the expert judgement method, it complements the other estimation
method such as algorithmic method.
(Refer Slide Time: 23:18)
So, now we will receive the second one that is the weighted average estimates. Here,
weighted average estimation is also known as a sensitive analysis estimation and here
three estimates are obtained rather than one just, because if you are going one; it may be
it may not be fully accurate. So, three estimates are obtained rather than one.
So, one is the best case that is the O and or the optimistic case, then worst case, or
pessimistic case P and most case or most likely case that is the median or M we take and
now, this provides a more accurate estimate than when we are considering only one
estimate. So, then these are used in a formula to produce the estimate. So, that formula is,
                            Estimated effort = (O + 4M + P) / 6
So, use the first find out these values for what best case worst case and most likely then
use this formula you will get this estimated effort.
(Refer Slide Time: 24:22)
This is what is happening in that is why the name is weighted average estimates. The
other method is consensus estimating, consensus estimating. Here, the steps in
conducting a consensus estimation session is like this first a briefing you have to brief a
briefing is provided to the estimating team on the project, then each person is provided
with a list of work components to estimate. So, each person will provided a list of the
work components, they have to be to estimate. Then each person independently estimates
these optimistic value most likely value and pessimistic value for each work component.
Then the estimates are written up on the whiteboard and then each person he discusses
the basis and the assumptions based on which they have prepared the estimates and
finally, some suggestions may come then a revised set of estimates is produced. Then we
have to take what since, we are getting a revised set of estimates you have take the
average you have to take the average of the O M and P values. You have to take the
average for the optimistic and then the most likely on the pessimistic values these are
calculated and finally, these values are used in the above formula that we have seen. So,
in this way the consensus estimating is followed.
(Refer Slide Time: 25:42)
And next is Delphi estimation; so, it is a variation of consensus estimation technique.
Here, as I have already told you it is a variation of consensus estimation, here also a team
of experts will be there and their coordinator will be there to coordinate among the
experts.
The experts may carry out the estimation independently ok. The normal the experts they
will carry out the estimation independently. They will mention the rationale behind their
estimation what is the rationale, what is the assumption they taken. They will also
mention in that a paper, then the coordinator notes down any extraordinary or rationale if
any expert has taken, then he circulates the coordinator circulates the estimation or the
rationale among the other experts.
After receiving the what estimates from other experts each expert they re-estimate their
values then they, but here the experts never meet each other in judgement or yes in this,
expert judgement technique the experts they meet each other, but here in Delphi
estimation the coordinator takes the most important role. He will circulate among others
among other experts, the experts never meet each other to discuss their viewpoints.
(Refer Slide Time: 26:58)
So, Delphi means Delphi is an expert survey in two or more rounds. So, starting from the
second round so, first round is over, after first round starting from the second round a
feedback is given about the results of the previous rounds, then the same expert he
assesses the same matters once more influenced by the opinions of the other experts. He
takes into account the suggestions or the opinions of the other experts and then he
assesses the same matters once again, he re-estimates again the same parameters. So,
here the important is anonymity.
(Refer Slide Time: 27:37)
So, the steps are like this the coordinator presents each expert with a specific and an
estimation form, then coordinator calls a group meeting in which the experts they discuss
the estimation issues with the coordinator and each other and then experts, they fill out
the forms anonymously. And coordinator prepares and distribute a summary of the
estimation on an iteration form and the coordinator calls a group meeting specifically
mentioned in the noted rationale, where the estimated varied widely. And experts they
fill out the forms, again anonymously, experts fill out the forms, again anonymously, and
steps 4 and 6 are iterated for as many as rounds as appropriate ok.
(Refer Slide Time: 28:25)
So, finally, we have discussed the price. We have first discussed a one method this price
to win estimation method, then we have presented how to find out how to estimate size
using LOC or SLOC. Also discussed expert Judgement based estimation techniques. So,
basic Judgement weighted average estimation ah, consensus estimation and Delphi. We
have also explained the analogy based estimation. So, these are the references, we have
taken and.
Thank you very much.