A Design Flaw is not a Bug

I realized the other night that no one else cares whether a problem is a bug or not.

Let me be clear, I'd seen evidence of this, and understood intellectually that they didn't get why it matters. The other night, I realized that it never will matter to them.

I'm a professional programmer. I deal in algorithms and data. I classify everything. Classifications are important in my world. The classification of a problem is important to me on a gut level, as well as having an important function in this case.

So, to all you non-programmers, listen closely. Programmers, remember this idea.

A bug is when the system does not work as it is intended. If there is a bug, we need to fix the code, so the program works as it is designed to. When the design is bad, it is not a bug. It is a design flaw. If we treat design flaws like bugs, you end up with a program that does the wrong thing perfectly. When the problem is not a bug, we have to re-design the program (or a portion thereof) or you don't get what you want.

Design flaws and bugs are fundamentally different, and we should treat them as such.

Rant: How to throw money at a problem

There are two ways to fix a problem of inefficiency.

The first, and simplest, is to beat it into the ground with money and hardware.

The second is to fix the inefficiency.

Right now, I'm having a lesson in why the first does not work. We wanted to speed up the site. For business reasons, no one wanted to allocate time to address the problems inherent in a four-year-old system that was originally designed by someone who was relatively new to the language. So, we put the system on two web servers behind a load balancer. There were a few wrinkles, but we were ironing them out one at a time, until we hit a snag. The balancer (which is shared, so we can't reconfigure) has a timeout of 30 minutes. For reasons I won't go into here, we need a minimum of 40 (and a little more for security).

So, now, we either have to address the inefficiency in such a way that we can produce a division of labor (my suggestion) or apply a quick fix that will regenerate sessions if they are routed to the wrong server.

This frustrates me. The whole reason that the higher-ups (I was not part of the decision) went with a load-balancer was to avoid doing work. Now we have to do work to support the load balancer, and it's not even going to fix the original problem.

I just want my site to be well-structured, efficient, and maintainable. Right now, it is none of those. And it stinks.

BlogCFC was created by Raymond Camden. This blog is running version 5.9.5.003. Contact Blog Owner