Thursday, June 11, 2009

Back to the Future

They seem goofy these days, but I really enjoyed the action and sci-fi movies of the eighties. One franchise, in particular, really captured my imagination and started my wheels a-turning: Back to the Future. It wasn't just the screen play, God love ol' Doc Brown, it was the paradox of time travel. While Marty McFly fades into the ether strumming out "Earth Angel" I wondered, "Why is he gradually disappearing? He's either got to *pop* away or stay solid - he can't be *half* born if his parents never get together.

It's funny how so many businesses seem to defy the laws of physics with similar paradoxes. How do businesses stay afloat when they're only *half* running their business? Let's talk about an often neglected component of doing business: project budgets.

A good budget is an *educated* guess on the quantity of a resource that will be required in order to produce some desired result. Being able to properly quantify the energy necessitated by a project, put a profit on top, and pass it along to a client is essential to maintaining a good looking bottom line. The key to that guesswork is the "educated" component - but where does that come from? That's where we take a step back and realize that each job we do, every task we complete isn't just an isolated activity or just for one job or another, but instead is a learning tool and a building block, developing more accurate budgets across the board. Sounds like a job for knowledge management.

I was once oblivious to the power of budgeting and even more so to the idea of managing my company knowledge to improve estimation. When I began a small web design firm awhile back, our process for submitting proposals to clients consisted of nothing more than guesswork really. We looked at other design firms and what they were charging for "boiler plate" projects and used that as a starting point, which really isn't that bad of an idea for getting going initially. As expected, our actual time investment didn't directly correspond to our fees. Sometimes we made great profits, sometimes we lost big, sometimes we broke even. In an ad-hoc manner, we started looking back at past contracts to identify similar projects and started copying our own pricing from previous projects for new projects. This helped us zone in somewhat, but what it failed to tell us was how and why we actually performed (or didn't) per project - we just had an idea of "we lost" or "we profited".

It wasn't until Pete and I began developing our own knowledge management tool (KMx) that my firm was really able to take control of the budget process. Really, it isn't that complex with the right tools, but it does require some discipline. I've found that combining time tracking, task management, and some simple budget tracking features I can pin-point *exactly where* a particular budget suffered or performed and use that information to develop a more accurate budget next time.

The key for us was to develop a systematic approach to the proposal process that now goes something like this:
  1. Gather all of the project requirements. This is an important step, because every requirement translates into some activity that requires some finite amount of time, and therefore money, to complete. If one doesn't identify it before the proposal, they run the risk of not charging for it or worse yet, not doing it and having the client think that they are going to.
  2. Create a detailed task tree indicating how much time each step should take. Taking this approach definitely increases the amount of time and effort required to put out a proposal. It may sound risky since it may be time lost if a project isn't landed, but it's a good investment - that time can be added into the proposal itself. In order to really do a good job at this, it's almost necessary to perform a simulated run on the project, i.e., pretend as if the project has already been landed and line it out for the project team to start work on.
  3. Double check the task tree against previous projects' trees. This will make more sense after running through the whole process, but essentially, we've been tracking tasks, time and budget performance for all of our projects and now have a complete history of every task that we performed well (or poorly) on, project comments, and lessons learned. We use that information to tweak our trees and hours to ensure that we don't repeat the same mistakes.
  4. Create a set of budget items based on deliverables or milestones. Total up the monetized time involved to complete each milestone based on the task tree and billing rates. Now we have the most accurate budget we can achieve for the client.
  5. When the project is accepted, we can schedule quickly and get started quickly because we've already got all of our tasks detailed out complete with the time / resources required. It's simple from here. Now every member of the team simply logs their time as they perform work on their tasks and note specifically what was done during that time (this is made pretty simple using the timer tool). We check our logged hours against our budgeted hours regularly, and note the cause of any underages or overages.
What we end up with after this is an powerful way to gain introspective on how we work and how that work relates to what we bill. Every proposal we put out is based on a budget developed systematically to be the best based on everything we've learned in the past.

Sure enough, a little knowledge management makes a big difference in staying profitable.

No comments:

Post a Comment