dotProject for Calculating Metrics
As a software developer with over 7 years of experience you'd think one of the things I could easily do would be to gage how long it would take me to complete a certain project. The truth of the matter is I couldn't. Of course I can take a stab at an estimate, using rough remembrance of my past projects, but this is obviously a very poor guide. Unfortunately nobody ever told me to track my time on projects, until recently.
You would think that metrics for software development would be readily available. Unfortunately they're not, because it's not an industry standard to track your time. Developers will often only spend 50% of their actual work time coding anyways. Even so, tracking how long your projects take, how many lines of code you write, how many classes you write for specific projects, and how big those classes tend to be can all produce extremely useful metrics. These calculations become even more valuable if you stick with a single programming language. Unfortunately this is rarely, if ever done.
Open source project management software dotProject (http://www.dotproject.net/) is probably one of the best tools to track your projects in the FOSS realm. dotProject allows you to set up project timelines, assign tasks to projects, team members to tasks and then log progress over time. Doing this allows you to build up a reservoir of knowledge about how long projects took to complete. This feature is rarely touted when convincing new customers to adopt dotProject, but it is perhaps one of the most useful functions for historic analysis. While dotProject is wonderful software for managing projects, its value as a repository of timelines toward completion of a project cannot be underestimated.
By returning to old projects, calculating the total number of lines they took to produce, the time it took to complete the project, and other measurable characteristics of past projects you can more clearly evolve your understanding of how long future projects will take. These sorts of calculations will allow a more honest estimate of project timelines for customers, and probably also save you a lot of late night "sprints" to meet milestones.