Go Premium for a chance to win a PS4. Enter to Win


How to estimate the cost of the software project?

Posted on 2009-07-12
Medium Priority
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 (asp.net 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 1000 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 www.scrumforteamsystem.com (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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

If you are using Scrum Framework or another agile process, a retrospective may be part of it. Does your team perform retrospectives? Are you getting value from your retrospectives? I see a common anti-pattern when people conduct a retrospective f…
In this article, you will read about the trends across the human resources departments for the upcoming year. Some of them include improving employee experience, adopting new technologies, using HR software to its full extent, and integrating artifi…
Introduction to Processes

824 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