- Understand the system and requirements (with end user) - 10-25 total hrs
- Meeting (System Requirements and Deliverables) - 2-5 hrs
- Meetings (internal) - 5-10 hrs
- Programmer understanding and walkthrough (w/end user) - 3-10 hrs
- Primary Modeling - 5 total hrs (RECOMMENDED)
- Database Modeling - 7-22 total hrs
- Pre-existing (3NF/BCNF) - 5 hrs
- Non-existent/Pre-existing (other or not normalized) - 15-20 hrs
- Meeting (Approval) - 2 hrs
- Changes - 1 hr + 1-5 hrs to each down (#4-#11)
- NOTE: Software use here is Visio (which can also give you the build scripts)
- Database Build - 5-15 total hrs
- Script Build - 2 hrs
- Triggers - 2-10 hrs (RECOMMENDED)
- Script Debugging & Execution - 1-3 hrs
- Changes - 1 hr + 1-5 hrs to each down (#5-#11)
- Database Information Transfer/Conversion - 30-80 total hrs (OPTIONAL) - concurrent
- Pre-existing (3NF [Third Normal Form] or BCNF [Boyce-Codd Normal Form]) - 15 hrs
- Pre-existing (other or not normalized) - 30-60 hrs
- Meetings (internal) - 5-10 hrs
- Changes - 5-10 hrs (changes will not occur after the transfer)
- Quality Assurance of Data - 5 hrs
- Data Access Layer (DAL) - 10-16 total hrs per table + 5-10 total hrs
- Unit Tests Build (nUnit) - 1-2 hrs per table
- DAL Build - 5 hrs per table
- Unit Testing & Debugging (nUnit) - 2-4 hrs per table (this applies every time changes are made)
- Meetings (internal) - 5-10 hrs
- Changes - 2-5 hrs + 1-2 hrs to each down (#7-#11)
- Business Objects/Rules - 8-14 total hrs per object + 20-40 total hrs
- Object Modeling - 15-30 hrs
- Unit Tests Build - 1-2 hrs per object
- Object Build - 5-10 hrs per object
- Unit Testing & Debugging (nUnit) - 2-4 hrs per object (this applies every time changes are made)
- Meetings (internal) - 5-10 hrs
- Changes - 2 hrs per object + 1-2 hrs to each down (#8-#11)
- NOTE: Each Object corresponds directly to each major table in the database (one object per table)
- User Interface - 7-13 total hrs per page + 12-45 total hrs
- Design/Pre-existing - 5-10 hrs
- Design/Non-existing - 10-30 hrs
- UI Build - 4 hrs per page
- Testing & Debugging - 2-4 hrs per page
- Meetings (internal) - 5-10 hrs
- Meetings (external) - 2-5 hrs
- Changes - 1-3 hrs per page
- Quality Assurance - 1-5 hrs per page (this includes Accessibility)
- Code Review - 2-5 total hrs
- Meeting (internal) - 2-5 hrs
- NOTE: Causes change management at any level
- NOTE: Does not apply in change cycle
- Code Documentation – 1-5 hrs per object, page, etc + 8-24 total hrs
- Project Overview - 1-3 hrs
- Ongoing (VB Commenter) - 1-5 hrs per object (page, business object, etc)
- Help Files - 5-15 hrs
- Documentation Build (nDoc) - 1 hr
- NOTE: Include object models here
- User Testing and Approval - 16-32 total hrs
- User Testing - 15-30 hrs (estimated)
- Meeting (Approval & Final Sign Off) - 1-2 hrs
- Security Testing - 15 total hrs (RECOMMENDED)
- NOTE: Causes change management at any level
- Change Management - 30-80 total hrs
- NOTE: Includes any changes above
- Troubleshooting Documentation - variable hrs
- NOTE: Causes change management at any level
Understandings:
1. In a normal 8 (eight) hour day of work, a programmer will most likely work a total time of 5 hours. That means you are able to project the length of the project by setting your resources to five hours in a day. The other three hours of the day are spent doing administrative things, helping others, and taking breaks.
2. An average of 20 working days per month.
3. An average of 5 Objects/Tables per project.
4. An average of 3 pages per object.
5. Adding more people resources into software design in the middle of the process (in order to meet a deadline) will not finish the project any faster. In actuality it will actually hinder the project deadline because the added bodies will need to be brought up to speed.
6. Changes are not applied to the total hours. Change management, although part of the design and build, is not added until the end (in estimate) because it is so volatile and unpredictable.
7. There will be changes to the system.
8. Security Building is part of the programming process at every level and is included as part of the Build hrs for every object.
9. Use a class library that does basic page validation (server side), email, etc. If you don't have one, build one.
So what does all of this mean?
- A typical project (with five typical objects) at best will take 288 programmer hours, 31 project manager hours, and 35 end user hours.
- In days that is 58, 6, and 7 respectively.
- In months that is 2.9 for the programmer.
- A typical project at worst will take 630 programmer hours, 67 project manager hours, and 54 end user hours.
- In days that is 126, 13, and 11 respectively.
- In months that is 6.3 for the programmer.
- Any changes to the system will cause additional time requirements. Remember that it will happen.
- Typically that will add 30-80 hours (or more) to the project. Plan accordingly.
- Best case you are looking at just over 3 months best case scenario and 7.1 at worst.
- Adding Pre-existing data to a project (transfer) will add 30-80 hrs to the project. It is best to employ another resource to this area because it can be concurrent with code development.
- Business Object design can be split up to resources when everyone has a good understanding of the end system. The same applies for the UI.
- Remember that this is an estimate in and of itself. This provides a basic understanding of time requirements for end to end software creation.
Supporting Document: Software Time Requirements.xls