An idea occurred to me today, while I was trying to configure some SAP servers at work today. For those not in the know, SAP is middleware designed by Satan, implemented by idiots, and purchased by masochists. SAP is an exemplum (diction to underscore the mythological proportions of SAP’s suckiness) of bad software. But really bad software is everywhere.

I think it’s a case of Muller’s Ratchet and the principle of Conservation of Misery from Molecular Evolution. Muller’s Ratchet is basically the concept that in vertical gene transfer, degradation of the quality of the gene pool is inevitable. Negative selective pressure on organisms with bad genes dominates any possible positive selective advantage. Over time, organisms end up with a minimal functional set of genes.

One would expect that bad genes would eventually be purged from a population by evolution. However, the principle of Conservation of Misery says that in diploid organisms, fatal recessive alleles actually tend to accumulate due to masking. Masking occurs when an individual is heterozygous for a fatal recessive gene, and thus experiences no symptoms. Since the phenotype for heterozygous and homozygous dominant for this gene is the same, there is no selective pressure towards either. The result is that once introduced into a population, a fatal recessive allele has a decent chance of becoming widespread in the gene pool.

Software is like this. Whenever a company ships a software package, what they are selling is the bare minimal set of functionality that they can get away with selling and have people actually buy it (The Ratchet). At the same time, when a company goes to release the next version of said piece of software, they add a bunch of extra features to justify the upgrade, but there is no strong pressure to fix any bugs in from the previous version if they didn’t obstruct the critical path (Conservation of Misery). This is what makes software like the kind SAP has inflicted on me so terrible. The dark heart of the demon is composed of ABAP scripts originally written in the 70s. Then there is all this additional stuff cobbled together on top of that. Then there are some UI layers on top of that. A bug anywhere in there is: 1) never going to be found, 2) never going to be fixed, 3) waste hours of my time. And companies shell out thousands of dollars for a single license. Bah.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.