A Mutable Log

A blog by Devendra Tewari


Project maintained by tewarid Hosted on GitHub Pages — Theme by mattgraham

The power of oversight based on continuous forecasting

Knowing that you’ll have too little or too much of something is always a challenge. It can be time, money, people, equipment or just about anything that can be quantified. Do it badly and you face grave consequences, do it well and you gain efficiency and predictability. It is hard to justify forecasting for a whole year since nowadays change seems to happen in a matter of days and weeks, instead of months and years.

I have used continuous forecasting, supported by some simple accounting, to predict how things will be in a couple of weeks to a few months down the line, in personal finance, personnel allocation, and software change management. I’ll go through my personal experience in each of these areas below.

Personal finance

I have been using double-entry bookkeeping for my personal finance for almost a decade now. I have used it with Excel, an open source software called JGnash, and for the last couple of years, a commercial alternative called Moneydance.

If I pay using a credit card, I immediately add that transaction to my credit card account. I then add that same amount to a transaction that pays the credit card company, at some future date. If I decide to pay in instalments, I add the instalment amount to several such future payment transactions.

I also create transactions that represent bill payments, savings, and other known expenses, a month or two ahead of time. All this ensures that I can see quite precisely my financial situation for the coming months. This has helped me avoid debt and, with some discipline, save money, and plan for future expenses.

Personnel allocation

I have been working for most of last decade in a dynamic project-driven organization, with several hundreds of professionals. Knowing when to hire and (rarely) fire under performers can be a challenge. Projects are prospected, ramped-up and ramped-down on a continuous basis. This creates quite a dynamic situation, where professionals with varying skills are either lacking, in excess, or at just the right numbers.

Tracking precisely when a resource profile will be released or demanded by projects, and plotting a chart based on that over weeks or months, can allow you to easily determine if it is time to let go or hire.

Software product development

Software product development is quite a dynamic environment, with product managers requesting new features, software developers making changes to code, and testers finding new bugs. To know when to ship something can be nearly impossible. Software change management is crucial to guarantee a successful product delivery. Most managers in traditional organizations have to deal with a plethora of different systems, that control different aspects of development.

If you can translate all software product development activities into a list of open issues with due dates, you have taken the first step towards being in control. Associating other bits of information such as status, people involved, change request id, priority, target product version, and version control id, will help you oversee even the most complex product development. This information is updated on a day-to-day basis, manually, or by pulling it together from disparate systems.