If you think that software is cheap to create think of this, that game that your kid is playing on the xbox probably cost between $6,000,000 and $10,000,000 to make. Many people are suprised at the cost of sofware. Hopefully this post will help you understand the cost that goes into creating software and IOStream's process for determining that cost.
Joe the plumber has just started his new business. He comes to us with a great idea for his website. He would like a map that has real-time updates of the location of his employees throughout the day and shows where they are in their daily schedule. A customer could go to the website to see where they fit into the schedule and how close the plumber was to their home. This sounds like a really cool idea and will really wow Joe's customers. After getting all the requirements from Joe, IOStream comes back with the estimated cost of the software project. Joe is amazed at the cost and he thinks to himself, it’s just a map and some lists, how hard could it be! At this point Joe has some options. He could get some more bids (I recommend at least 3 bids on a software project), he could scrap the project, or he could let his cousin who does some programming on the side try to do it. The cousin is usually the cheapest, at least in the beginning, but more often than not the project never gets finished or has so many bugs it costs more in the end. After Joe gets the other bids (from reputable software companies) he realizes that is just how much software costs. Still, I’m sure he would like to know how we came up with that number.
Let me go through our process. First we take the requirements from Joe's project, then our project manager and developer break the requirements up into finite programming tasks. The developer then takes the list of tasks and assigns an amount of hours to each task; this amount includes development and unit testing. Then the list is given to a tester that again assigns an hourly amount to each task. After that the project manager adds his time. Then the task list and hourly amounts are reviewed by me or our other senior developer. Once the hourly amounts are finalized we can give a proposal.
Now the reason that our process works is really a matter of experience. I personally have been creating commercial software for over 10 years as has our other senior developer. We have worked on all sizes of projects from millions of lines of code to projects that take only a few hours to code. The hardest part about software creating is costing the hours it takes to finish a project. Many times a newer developer will come in with an hourly amount that, in my opinion, is not accurate and usually it is too low. We normally discuss why he thinks it would take so much or little time. Once we go back through all the features and how he will need to implement them, the time is usually double the developer's original estimate.
Creating good software is as much about experience as anything. You need to be able to understand how long a piece of software will be in use without major upgrades, is speed a priority, or is the ease of use most important thing. There is a skill that comes from experience especially developing custom software. So far, excluding change orders from customer requests, IOStream have never come in over budget. We are very proud of this fact. Not only that, but the customers that we have done a software project for have expressed their pleasure at how smoothly the project has gone. Now most every software project has some defects that slip through. We don't let many get through, especially with our testers. But because of our good design we can fix the problem quickly and correctly.
Posted:
1/21/2009 9:53:38 PM by
Development Lead | with
1 comments