I remember reading a while ago, a discussion about making the decision to build a complex peice of code now which contains more functionality than is required, compared to building a simple version now and having to pay more in the future to add that extra functionality (cost in future is higher because of inflation, having to remember what your code is about, paying for the time where the business is on hold waiting for the new functionality, etc). I sadly can’t remember where I read it, but it didn’t give too much info so I wasn’t able to do such a calculation on my own.

Then yesterday I was in a meeting where we discussed about how the version of eGate we are using is only supported on Windows 2000, and MS is about to stop supporting that. So should we move to the next version of eGate and to Windows 2003, or should we stay as we are and take the risk that if a bug occurs on Windows 2000, that we won’t be supported by MS…

Well, I got out my book called "The 10 Day MBA" which I bought a few years back and started to look into the problem. It turns out that there are several tools, namely "Decision Theory (DT)", "Net Present Value (NPV)" and "Expected Monetary Value (EMV)"…

The solution goes like this:

1) Draw a tree diagram with all the decisions on it. In this example, we have the following (sorry for the text version, when we get the new blog version, i will be able to include a fancy picture ;-):

    a) move to Windows 2003 now, pay 3 months of migration work, total cost is 99000CHF.

    b) stay on Windows 2000, find a bug in two years, pay 3 months of migration work (NPV makes this more expensive in the future, so say 108900 CHF because of say 10% inflation), pay another 3 months of man days for manual intervention to work around the problems until the migration is fixed (108900 CHF). Total Cost is 217800 CHF

    c) stay on Windows 2000, never find a windows bug. Total cost 0 CHF.

2) Work out the EMV. To do this, you multiply the total cost of each branch with the percentage of it happening, and sum it with its opposite branch. In this case:

    a) EMT = 100% chance * 99000 CHF. EMT = 99,000 CHF.

    b+c) EMT = 5% chance of branch b + 95% chance of branch c = 5% x 217800 + 95% x 0. EMV = 10,890 CHF

So, the decision can now be made. Compare 99,000 to 10,890 and its clear that b+c is the better option to choose. Sure it might cost you double compared to moving to Windows 2003 now, but because theres only a 5% chance of having to pay for the migration, its well worth the risk!

Factor in other things like if you do find a bug in Windows, what are the chances that MS will actually help you to fix it, or compare the stability of Windows 2000 to Windows 2003 (the former has been running for 6 years with many more customers than the latter) and the decision becomes even easier!

Now, how to convince the customer that my daily rate should go up because not only am I an architect, but an MBA / management consultant too 😉