I spent much of my career at a relatively small indenpendent software vendor (ISV). Like many small shops, we were not big on keeping track of numbers beyond number of sales and revenue. To me taking the time to record and analyze numbers such as hours worked on tasks and defects per unit of work seemed like a waste of time that would only slow down the coding. It is easy to focus on production and forget about everything else. However, now being in a large company that has very rigorous processes in place for estimating, monitoring and measuring I have seen how these processes can be easily scaled down to benefit smaller software companies.

So, what specific things should even a one-man shareware company record and measure:

  • Define the tasks that are needed to accomplish each feature. In project management speak this is called creating a work breakdown structure(WBS). 
  • Estimates of how long a task will take before you do it. This is called a baseline estimate. Never change this number, always keep the baseline number around. It will be important when you analyze the results later.
  • A record of how many hours is put into each task.
  • Keep track of the hours spent on technical support, technical writing, Web site modification, etc. related to the project.

There is no need to use sophisticated project management software like Microsoft Project, although that works fine, you can probably use a fairly simple spreadsheet.

So, what will these simple measures help you accomplish:

  • Clarity of Purpose: The process of creating a WBS will  force you to figure out what you are trying to accomplish and point out what you don’t know yet.
  • Scope Control: Once you break down the tasks into hours you will see if what you are trying to accomplish is realistic. If you are working on a project 10 hours per week and want to accomplish 600 hours of work and have it all done in one month you will see that you either need to increase effort (hours worked per week), change your expectation of when it will be finished, or cut scope to meet your time goals.
  •  Focus: When you know how much you have done and how much you have left to do, it will keep you focused on your critical path tasks (the ones that actually get the product done) rather than getting off on tangents.
  • Better Estimates: The time when you will really be happy with yourself is when you go to do the next project or upgrade of a current product. You will have real, actual data that you can use to more accurately estimate how long it will take to do the next project.
  • Increased Efficiency: As part of your analysis you can take a look at where some tasks went awry from the baseline. What happened? How could you avoid that mistake next time? What lessons can be learned? How can you approach that problem in a better way or use better tools next time?
  • Know What it Worth: Keeping track of hours will give you an idea of what the product you made or service you created is worth. This will help you set pricing and rates. If someone wants to buy out your company or product you will have defendable evidence of what it is worth. Also, this is the only way you can measure profitability. Could you have made more money slinging burgers?

I would like to write more of these types of articles that boil down the important parts of formal project management and apply them to smaller software companies, consultants and ISVs. Let me know if you are interested.