Decomposition is the estimation technique most software developers are familiar with. Using this technique, you break the entire project into the individual components that are going to be impacted. Within each component, you itemize the changes that have be be made. You then estimate how long each of those changes will take to complete. Add up the changes for a component and you have the estimate for the component. Add up the components within the project, and you have the construction estimate for the entire project.
There are a couple of issues with this technique. The first problem is that it requires a detailed level of design knowledge concerning the project to come up with an estimate. If you are in the early stages of a project, you aren’t going to know all of the components that must be modified. And if you don’t even know the components you certainly aren’t going to know the changes within the components.
The second issue is that you have to know the skill level of the person doing the work. If you have a rock star developer doing the coding, then the estimate should be significantly different then if you have a new hire. In order to put together this kind of estimate you need to know who is doing the work.
But, this level of estimate does have its place. It just needs to be utilized late in the project, after technical design has been completed and you know who is going to be doing the development.