Can anyone beat this?
This morning I get in to find an email from a customer relating to a change we did for them. He is complaining that the quantities in the EDI file that we send to a business partner are wrong.
I investigate and surely enough, the code uses the wrong index - it's always zero, not the loop index.
But strangely we didn't change that code. So I checked source control, and its always been like that. In fact, there's a comment a few lines up which a developer added in April 2003 to say he was adding this code and the indexes needed checking...
So amazingly this has been in production for 3 years. It's an interface between the client and Woolworths in Australia - and apparently its one of the most business critical interfaces that the EAI team deals with, processing millions of dollars worth of orders each day... So you can see how important EAI is here...
Anyone have a bug that was discovered later?
Not sure if I should post this, so I apologise if I offend anyone. If you are easily offended, please leave this page.
This morning, just like every morning, I picked up the free paper on the bus on the way to work. Its in french, and I don't speak much and the bus ride is quite short. So to help me learn french, I normally choose one article and try to understand it by the time I get to work...
Today on the front page, there was a picture of a lady in underwear, so I thought that might be an interesting read, and less difficult to read than the political article about the french riots.
To my horror, the first words I understood were female, laser and genitals.
Although horrified, curiosity got to me, and thanks to altavista/babel fish I now know that Lausanne is unique in Switzerland for being able to offer plastic surgery to those wanting a bit of rework, after say birth, menopause, or apparently divorce...
I'm taking a book to work from tomorrow onwards.
Funny story about how 'the business' just doesn't get IT
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 ;-)