Siraj ’s heaven.

Imagination is more important than knowledge. -Albert Einstein

Estimating the Software Project

Posted by sirajq on March 23, 2008

It is very essential activity of any project and success of any project depend on realistic estimation of the project. Most of the project suffer due to bad estimation. Estimation varies project to project and it depends on many factors. When it comes to estimating the project, team select experience person who has worked on similar project or technologies on which project based. There is no such thing as 100% correct estimation of the project exists, at least for me. My experience says that it is almost impossible to get accurate estimation of the project because there are many factors which we can not see or control  while estimating the project like requirement gathering,  technology issues, client feedbacks and approval, resource attrition, risk assessment.  

 Competition is another factor which lead to project team to estimate the project incorrectly because management put the pressure on team to give low estimate to  reduce the cost of the project in order to get the project from client. It put put huge pressure on the project team to complete the project within unrealistic and callous deadline. I have experienced working for such projects working day and night  like chicken with its headcut off. I am sure many people are still working offshore  for such projects minimum 12 hours a day. No, I am not saying that there is no rule or guidelines are available to get good estimation of the project. As I  said earlier, some rules and guidelines can be applicable to one project but same may not applicable to another project. For example, you can not apply same rules for estimating two different project like Asp based project and .Net Project/J2EE Project.So here are some rules and guidelines which I have experienced working for some projects. If the requirement gathering is done for the project or you have a fair idea what you need to develop for the client, then your next task is to estimate the project and send the proposal to the client, get his approval, if  project proposal is approved, then you can start working on next phases of project like planning, designing, coding and testing and deploying of the project.

 I am taking example of ASP based project for estimation. In the scenerio, you need to do first Screen based estimation. You need to identify all the screen. Classify the screen(GUI) in simple,  medium and complex. Depending on the functionality of the screen, for example you can estimate that simple screen will take like 2 pd (Person Day) and medium take 4 pd and complex take 6. So suppose if you have 15 medium screen, 8 medium and 5 complex. So total screens will be 28 and estimate for all the screens will 15 * 2 + 8 * 4 + 5 * 6 = 91 pd. So effort for completing 28 screens will be 91 pd. Same way you can do estimation for all the reports. Now next task is  to get FP (Function Points) based estimation. For example, in the Library Management System, Registering new memeber in LMS may be one function point. Now you have to estimate how many effort it will take to complete 1 FP. you have to divide the effort into all the phases of SDLC. for example, if you think Registering new member will take 20 PD, then you have to estimate that how much efforts you will be needing for Designing, Writing, Test Cases,Coding, Testing, Project Management. Ideally,  you should take 30% of efforts for Analysis + 10% of efforts for writing test case + 25% efforts for coding + 25% for testing + 10% for project management for all the FPs. Then you can calculate efforts required for all the Function Points. This is the guidelines had worked for us when we applied for one of our asp project. It may not work for all the projects. It give you some idea how the project should be estimated. If you have some better ideas, please share it with me in comments sections. I will appreciate it.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>