Project Manager: Francis Lim
I have been working in Education, Financial, Print, Procurement, Services and Information Technology (IT) industries since 1994. As a whole, the software industry doesn't estimate projects well and is difficult to estimate appropriately given the complexity of the projects. Projects that are under-estimating leads to under-scoping the quality assurance effort and under-limiting staff involvement can also lead to tight deadlines that accounts for setting too short a schedule. Therefore, effective software project estimation is one of the most challenging and important activities in software development. Though there are no right ways to accurately estimate the time and cost for project that is new but through educated scope of control, design measurement and the development of IT applications with the right expertise, we can guess about the time and therefore cost involved in a given project.
The four basic steps in software project estimation are:
1. Estimate the size of the development or number of user interface screen designs. This generally ends up in either number of lines of code or functional point of codes, but there are other possible units of measure such as integration or connection of extension to other applications that require in the pipelines.
2. Estimate the effort in person-months or person-hours and/or number of people involve in the development and deployment.
3. Estimate the schedule in calendar-months.
4. Estimate the project cost which includes, for example the applications, man-days and resources.
Example of Estimating A Project
1. How many "screens" or "menus" will you need? Let's say you need to see Customers, Suppliers, Invoices, Inventory, and Reports. A total of five screens layout. Assume at least 30 hours of development time for each layout. That is 150 hours. Now double that estimate for everything that must happen behind the scenes and integrating layouts to make it all work together. In this case, it will be at least 300 hours.
2. Will there be many users using this system? If so, add another 10 hours of development time per user. If you have 5 users, add 50 more hours. We're now up to 350 hours.
3. Will the internet be involved? Add it in again. 350 hours + 50 hours = 400 hours. This figure is more likely provided that the development application comes with internet configuration, otherwise if the internet development is considered to be another integration project than the figure will double-up or more as shown in the initial figure, point (1).
4. Will there be a medium to high level of security? Add 10 hours for each level. If there will be at least three different levels of workers; i.e., administrator, manager, user, then that would be 30 more hours. Now the project is up to 430 hours.
5. What happen if it is more than 5 to 10 users terminals for example, there is a requirement for database server to be installed to serve larger range of users. There will be some workaround time, add another 50 hours to provide for the server configuration and terminals setting. Now, the figure becomes 480 hours. For your information, database server can serve above 100 users terminals depending on the network, bandwidth, and the database application uses for the project development.
6. Add another 100 hours for pilot installation, testing and deployment. Now, the figure becomes 580 hours.
Typically, a minimum project time would take about 600 hours, about 3 months time to complete. A complex project has different levels and may take up from 9 months to 2 years or more to complete. Ask a professional consultant or developer on hourly or per man-day rate, which typically range from $100 to $250 per hourly rate or from $900 - $1500 per man-day; and it varies accordingly to different rates of professional fees in each country, expertise and subjected to the knowledge and different types of the applications development. Professional consultants and Software developers are all high-caliber people and experience developers are so much in demand, they have depth of expertise in the subject matter and breadth of expertise in its application. Given the new age of technologies where IT automation helps to leverage companies work effectiveness, operational readiness and streamline cost effectiveness, therefore consultants and developers are able to help you do business better.
Some developers would double the final figure in the above example, as projects may be contracted to different parties or teams working together, I wouldn't dispute on these fees the developers charges on as many incidents or matters can happen during the cycle of project development that cannot be well accounted for up front. Being prepared for the worst scenario will be good practices for estimating a project work.
Preparing A Project
If you're looking to build software or product development for you or your company, then I would recommend the following preparation:
1. Do a preliminary investigation of your business system model. If possible, using a decision flow-chart can decide what business functions are absolutely necessary. Make a secondary list of functions that are important to have and break down further by making a third list of functions items that are cool to have but maybe hardly necessary but it also helps to provide for the project enhancement.
2. Create user interface screens on how the layouts should look like. You should also draw on where the data entries are placed in which position or segment of the screen. Others like viewing record, finding record, reports format, import or export and other items. As you click buttons to go to different screens, change the piece of paper in front of you, like the screen would. When you find yourself going back and forth between two or three different screens, you've found a process that needs to be smoothed out.
3. You might have to change your screen designs as and when you begin to picture gradually and seeing your screens transformed into what we call it a "Phototype Model". By having a users group to discuss your business processes, not your final project presentation will help you to discover what your business processes are and can do for you. It is importantly to remember that if you have no business processes which are your scoping requirements for building the business system then consultants or developers wouldn't understand what and how to build your processes and it would cost more to be consulted on. Likewise, without a Phototype Model you won't able to visualise how the screens gonna be transformed into a solution system, it is best to consult a Business Information Manager, Consultant or System Analyst to work with your team of users and key-personnels.
4. Declare one or two people as the project management liaisons. These people will typically be the administrators of the system. They will need to be very deeply involved in the delivery of the project.
A good start will help you in your project estimate above. If you needed advice, you can email me at: francis.limth@gmail.com