Karl Wiegers asks just 10 questions – and the answers to those 10 questions can help you understand just where your software development organization sits in the world of cost, record keeping, and forward thinking. In this PDF, the experiences of a software group supporting a research organization are highlighted. The ways they managed to collect work distribution metrics, increased productivity, and develop heuristics to help estimate new projects. Wiegers explains how difficult it is to estimate work effort, and how functional metrics can help the process along: Estimating work effort requires that you know the amount of software to be written, which is itself very difficult to estimate. COCOMO is based on the projected number of lines of code in the final product, which is not easy to predict early in the project. Metrics relating to the amount of functionality in a system are more meaningful early predictors of software size. Such functional metrics include function points, feature points, and the “Bang” metric introduced by Tom DeMarco in his book Controlling Software Projects. Functional metrics can be estimated from user requirements, screen mockups, or analysis models, which are available early in the project cycle. Whatever metrics you end up gathering, Wiegers explains, must be shared with the group. Employees benefit from understanding how their work effort translates into the metrics gathered by their employers, so giving them a chance to explore the metrics they contributed to can help increase productivity and personal accountability. Creating reports that also show overall success or danger within the team help cement what work is thought to be done and what work is actually done every day.