I'm excited to provide you access to a new tool! It lets you analyze how good an investment a software project is the way a fund-manager would. It also helps you optimize a project to make it better. For example, you might be able to make a project twice as good, with a little effort.
Analyze Projects like a Fund-Manager
Software projects come with a lot of uncertainty—on the upside as well as the downside. You might have one project that has a lot of potential, but also a lot of risk. You might have another that has only a small potential, but carries almost no risk. How do you compare the two? Are either of them worth pursuing?
This is the same dilemma that a fund-manager faces when picking investments for a portfolio. William Sharpe's reward-to-risk ratio is at the foundation of nearly every decision in the investment world. The Sharpe Ratio isn't just a guide or rule-of-thumb. It's optimal. It tells you exactly how two investments compare.
When you have an objective number, like the Sharpe Ratio, decisions become much easier. But figuring out how to apply the Sharpe Ratio to software projects takes a little effort.
Adapting an Investment Tool to Software Projects
The Sharpe Ratio assumes that an investment pays back after a period of time that is both fixed and known in advance. Because of that, when I first wrote about applying the ratio to projects, I had to use expense as a proxy for time. But on a software project, time isn't fixed and known—it's one of the biggest risks!
Being unsatisfied with this, I looked into the Sharpe Ratio more deeply.
I started by searching the literature. I found only a small handful of articles about dealing with time-uncertainty in cash-flow analysis or insurance risk. Many of the cash-flow techniques had rules-of-thumb with no sound basis. The insurance risk models only dealt with the chance of catastrophic failure. And I couldn't find anything dealing with the Sharpe Ratio or any other measure of an investment's overall performance.
I decided to adapt the ratio to software projects myself. I designed Monte Carlo simulations in R where I could allow income, cost of labor, and project duration to all be random variables. I had several dead-ends along the way. One model gave the impossible result that time didn't matter at all! Others gave bizarre results, like improving a project by increasing time-uncertainty!
After many trials, I finally had a model which gave correct results. I converted the simulation into a formal mathematical model, derived and verified in Maxima. I made sure everything was based on sound principles.
I spent 1½ months making this tool. It was worth the effort. Picking a good investment over a bad one isn't just a difference of 1½ months of time or money. Sometimes, it's the difference between win and lose.
How to Use the Tool
You need a little bit of data about your project: cost of labor, expected benefit, expected duration. Also, how uncertain you are about those variables, expressed as a range that you think will cover reality with a 80% probability.
That information will come in one of two forms:
- If you have a model that predicts a variable, along with its uncertainty, use that. For example, my project forecasting model might predict 72 days (median) for an upcoming project, with an 80% prediction interval of 64 to 82 days. The spread of the interval, expressed as a factor, is 82/64, or 1.28.
- If you don't have a model with a prediction interval, find the median, 10th, and 90th percentiles of past projects. To do that, take the incomes, costs of labor, or durations of past project, and sort them lowest to highest. Cut off the lowest and highest 10%. If you have 34 projects, you would cut off the lowest 3 and highest 3 (34 divided by 10 is 3.4, rounded is 3). The lowest and highest projects remaining are roughly the 10th and 90th percentiles. The project in the middle of the list is the median.
When you put that information into the tool, it will tell you the Sharpe Ratio for the project.
It also tells you which variables would have the biggest impact on improving the ratio. You can use that to guide efforts to make the project a better investment.
For example, it might tell you that cost of labor, time, and income are all tied for highest impact, because your project doesn't have a good chance of being profitable. You might decide that you could increase income by 20% by adding a feature that increases duration by 5%, and that could be a big win. Alternatively, you might try cutting out a complex feature that doesn't add much, decreasing income by 10% but cutting time by 25%.
In another case, it might tell you that the uncertainty of time has the biggest impact. So, you might put a bit more effort into forecasting the project's duration. Increasing your certainty about the duration would be worth more than increased income.
Access the Tool for Free
I'm announcing this tool to only a few people, as a free gift. Just sign up for my newsletter, and I will give you a link to it in the welcome e-mail.
The newsletter is low-traffic, and you can unsubscribe at anytime. Instructions are included in every e-mail.
Which variable has the most impact on your projects?