I am a bit of a collector (I have around 20 virtual machines with unusual operating systems). But I have never collected billing systems.
I have worked on billing systems close to 20 years. You would think I would have had an opportunity to create quite a collection – systems I have implemented, systems I have designed, systems I have replaced. But unfortunately, my OS collection lacks some of key elements like VMS, TSO, etc. Regardless, even if I did – I wouldn’t. None of these are open source.
Maybe it defies my age, but I just missed the golden era of billing systems – when 1000’s of custom solutions were being written and maintained in the 1980’s – multiples per operators. The teams that wrote these systems are dispersed into retirement or, unromantically, managing implementations of systems they have no real influence over. (I think this loss of control is slowly being reversed… finally).
But back to these “old” systems: they were full of genius. This covers both the custom as well as “productized” systems. A sampling:
- One system used “matching” not “look ups” to do rating. It was exceptionally easy to model any rate structure. It had two faults. One – it never had the the “no rate found” problem: it had the two many rates found problem. Two – most people could not get their heads around it.
- Another system treated the monthly bill as an order. Every month the billing systems would re-order services for very customer. It was great in making sure customers got billed correctly – it was a nightmare for any type of commitment contract. It also needed a hierarchical database to function with any modicum of efficiency.
- There was an old mainframe system that had a special module – with a 3 letter acronym beginning with F (exceptionally common in Spanish speaking countries) – that compare every new bill with every bill run last period checking for unexpected differences. Unfortunately its logic was unfathomable and took the mother of all JCL to run.
There were some real nightmares as well:
- I once had to maintain a system to calculate service outage rebates in the early 1990’s. The programmer was a genius. The maintenance programmer (me) was not. I would spend on average 4 days to do any small change – 2 days to figure out what the code did – 3 minutes to modify it – 1 day to test and 1 day to pray.
Well I will stop there with a thought – if these 1980 systems had been cost effective to maintain and upgrade, would billing be better off?