How to estimate the cost of the software project?

Posted on 2009-07-12
Last Modified: 2012-06-27
How to estimate the cost of the software project with diagrams or tools used and please explain in detail with reference web links and videos.
Question by:sudhir_gs1
  • 2

Expert Comment

ID: 24838485
Estimating project cost depends on two parameters: size and (let's call it) productivity.
The project's size can be measured or estimated using any of the different methods available. In Holland (where I reside) the method of sizing with Function Points is very popular. This method is originated from the 'old' main server systems and counts user interactions. But when used properly it is still suitable in modern projects. Other sizing methods are based on calculating Use Case Points, Story Points and all kinds of work-breakdown methods. Which to use depends on your situation and environment. I am happy to drill down into it if you can provide some more information on your environment.

Having the size of your project the real fun starts: how to map the size with the actual costs. Some say to just take the cost of one size unit (call it productivity), multiply one with the other and your project costs are written on the wall. But, as productivity depends on the technology used, on the process (e.g. waterfall versus agile), on the competence mix in your team, on the business domain, the non-functional requirements and whether or not you want to reuse existing components - to name a few - deriving the cost of this one unit is the big problem, eh challenge.
The best way to deal with this challenge is to record all project activities, categorize them, calculate their costs and learn from the experiences. Tools and processes take up with this by providing ways to connect planning with work done, by using work items and/or process enactment. The most modern ones even come close to an integration of sizing and calculating productivity, which is maybe a sign towards reaching some maturity of the IT branch?
As with the sizing methods what method fits you best again depends on your environment. Let us know.

Author Comment

ID: 24845892
Hi Archyon,

That's a great question. I am thinking to develop in .net 3.5 framework ( 3.5 with C#) with GOF design patterns & agile process. I am going to develop a collaboration tool having all the features of web 3.0 and includes all the latest features of today's technology like widgets, mashups, and some features similar to netvibes, igoogle, pageflakes, microsoft live etc. For sure, I will reuse the existing components. Please let me know if you have any further questions.


Accepted Solution

Archyon earned 250 total points
ID: 24847779
Since you are planning to go for C# and an agile process I recommend to look into "SCRUM for Team System". SCRUM is a very popular agile software engineering process that uses Story Points for estimating the size of (portions of) your project. Team System gives you the opportunity to capture all stories (features/requirements) and get instant feedback on the effort taken, which gives you insight on the costs. From this point you may agile learn how in your situation with your team and your project your size estimation relates to the effort and costs.

You may ask "What if I want to know in front how much my project's budget should be?" In this case you may use the following:
try to look at your system in terms of persistency and calculate the number of tables your system would have as it would follow a data-driven architecture (=T). Next count the number of external interfaces (where your system has to communicate with other systems) and call this E.
A very rough estimate for your project's development cost is: $ = (T*25 + E*10) * 650
This assumes you have your team and environment fully operational and competent on developing C# with patterns etc. Please be aware that this formula is only helping to get an educated guess on the order of magnitude for your project's cost.

A very good resource on SCRUM and Team System is (what else). From here you can also download an add-in to Team System to get all process resources integrated into the development environment.

If you do not have experience with Team System a good idea would be to hire a consultant to set up the environment (both infra and process) and train your complete (!) team to work in this environment. Although very compelling, do not try to learn Team System 'on the fly'.

If you have thoughts for other environments or if this is not working for your situation, please just let us know. There are many more roads to Rome.

Regards, Peter (Archyon)

Expert Comment

ID: 35269344

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
PMI-ACP 1 90
MS Project 2002 Object Model 7 142
ScrumMaster or Scrum Master 1 245
What is Power BI capable of 1 74
Online collaboration can help businesses be more efficient, help employees grow their skills and foster a team environment.
"Disruption" is the most feared word for C-level executives these days. They agonize over their industry being disturbed by another player - most likely by startups.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question