Monday 12 March 2012

Thoughts On Estimating Software Engineering

detailed design. Down to the class level in order to define the responsibilities for each component.

Estimate each responsibility. Aggregating small estimates will average out any margin of error.

Factor in risks. New library, interfacing with legacy code, researching a new algorithm etc. All risks should increase your estimates.

Include unit test time. Allocating time for them ensures they get done. Responsibilities of a class and unit tests will closely correlate. TDD will change the way you think about unit testing.

Aggregate and review. Does the number look reasonable? If not, what have you missed. Iterate as required.

Collect metrics and review. Adjust concepts as required. Build up standard estimates for tasks/responsibilities. Enable future estimation effort with metrics.

No comments:

Post a Comment