Software organizations are in need of methods to understand, structure, and improve the way estimation is done for internet-based applications. The effort of estimation required in developing good quality Web-sites/application is a difficult task. Accurate estimates play an important role in the success of web projects. Estimating for an Internet based project is difficult to define as there is no single model for effort estimation with the number of focus areas that drives the project. As there is no established method of estimation it is difficult to arrive at the total effort and hence the staffing and schedule is also not derived correctly.
In this paper we will take a real case study of an Internet project that we have executed for our client. The methods have been used in our project and found to be close to the actual effort details after execution using the User Use Case Point (UUCP) approach. The UUCP is a modification of the Function Points method of estimation. This should be considered as a means of arriving at a ballpark estimate of the effort involved in developing the system. The steps are explained below:
1. Weighting Actors: The process starts by considering the actors in the system. For each actor, determine whether it is simple, average or complex. A simple actor represents another system with a defined Application Programming Interface (API). An average actor is either another system that interacts through a protocol such as TCP/IP, or it is a person interacting through a text-based interface. A complex actor is a person interacting through a graphical user interface.
2. Weighting Use Cases: A similar process is followed for use cases. Used use cases or extending use cases do not need to be considered. For each use case determine whether it is simple, average, or complex. The basis of this decision is the number of transactions in a use case, including secondary scenarios. For this purpose, a transaction is defined to be an atomic set of activities, which is either performed entirely or not at all. A simple use case has 3 or fewer transactions, an average use case has 4 to 7 transactions, and a complex use case has more than 7 transactions.
3. Weighting Technical Factors: Start by calculating the technical complexity of the project. This is called the technical complexity factor (TCF). To calculate the TCF, go through the following table and rate each factor from 0 to 5. A rating of 0 means the factor is irrelevant for this project, 5 means it is essential. Now, for each factor multiply its rating by its weight from the table. Finally add together all these numbers to get the total T factors. The equation for arriving at the estimate is:
TFactor = ....(Tlevel) * (Weighting Factor)
TCF = 0.6 + (0.01 * TFactor)
The above method has been tested on some of the projects executed by us and we have found that the variance between the actual effort and the estimated effort is close to 15%. The paper will elaborate the details of this methodology.
Santanu Banerjee is a project leaders at Infosys Technologies Limited, India. He has been working on various web projects and currently involved in the design and development of a complete investment portal.
Rakesh Agarwal is working with Infosys Technologies Limited, India, in the Education and Research Department for the past 3 years. He has published more than 60 papers in leading conferences and Journals.
Bhaskar Ghosh is working as Associate Vice President in Infosys Technologies Limited, India for the past 4 years. He has lead many projects in his carrier and Heads one of the Development Centers of Infosys.