Will Richard Gabriel's UNIX "worse is better" theory ring true for load balancing software development in 2023?
Comparisons Published on •6 mins Last updatedThere are two long established schools of thought when it comes to software development: "worse is better", and "right is better". But are they still relevant? How do they relate to load balancing? And does the recent economic turmoil push us further in one direction than the other?
I write this on the cusp of being able to announce something super exciting in terms of product development here at Loadbalancer.org. The blood, sweat and tears that have gone into the last few years and months, have caused me to reflect recently on our journey, not just from a product roadmap perspective, but also in terms of our business philosophy. And — whether consciously or unconsciously — we seem to have arrived at a crossroads where, in my humble opinion, it feels like we might have met the market with the right solution at the right time.
Let me explain....
The "worse is better" software development philosophy
It's likely you grew up with Richard Gabriel's UNIX "worse is better" software development philosophy. It came to the fore in 1990 as a research paper and departments from several large companies such as DEC, HP, and IBM requested permission to use the piece to inform their thought processes for their software strategies for the 1990s. It was then shared with a much wider readership, and gained extensive interest globally.
What I love about this theory is that it's immediately uncomfortable for many. It defines "worse is better" as the idea that software development should be enough for the problem it's trying to solve. And no more. Advocates of "worse is better" believe that this model is superior because it leads to simpler, more compatible software, that can be brought to market quicker. Sounds sensible, right?
The classic load balancer
Take one of our well respected competitor's products, the Kemp LoadMaster. This offers a simple range of features that will meet the requirements of the majority of businesses and support the high availability of essential applications and services. As such, their load balancer is an almost off-the-shelf product.
It can be procured and implemented easily and managed in-house by your existing team. So if you don't need a big iron Application Delivery Controller (ADC) on the edge of your enterprise network then a Kemp LoadMaster may be the right product for you - and it will certainly be cheaper! This concept of simplicity however, is very much at odds with a "right is better" approach.
The "right thing" software development philosophy
Advocates of the "right thing" software development philosophy (which Gabriel also called the MIT/Stanford style of design) believe that better is better. In other words, if there's an extra feature that can be added — add it; if there's a bell or whistle that can be included — include it. So the best version of something will always be superior i.e. "the right thing" and the bigger and more complex a piece of software is, the better it is. In other words, the more features and engineering it has, the better.
High-end load balancers
Take F5's BIG-IP and Citrix's NetScaler. These high-end load balancers offer an orchestra of features, and have everything covered "just in case". Their load balancers are designed for customers who need functionality that can make pink dragons fly, and snow fall in summer. For their customers, the priority is therefore not ease of use, maintenance or the user experience. In fact, their software is so comprehensive and complex it is sometimes so unwieldy only qualified technicians can make changes or deploy updates. The "right is better" approach, means that cutting-edge features are often developed even before there is a clear need. But for those who need the pink dragons, snow etc, having software like this in your armoury can give you a competitive edge if that feature comes into its own at a later date.
So if it might come in handy at some point in the future, what's the downside of having more than you need? One word. Price. And I don't mean the purchase price (which is still high). I mean the price in terms of hard to use, hard to change, hard to maintain, hundreds of security updates, operating features you didn't need in the first place causing you pain and downtime etc. The obvious benefit though is that you know every feature under the sun is available in the unlikely scenario that you do need it.
At a basic level, you might argue that the two approaches come down to a "should have" versus "must have" conversation. As I said at the beginning, these are not new concepts, but my own take is that being "enough", does not necessarily equate to being inferior, unless it fails to solve the problem identified. And I would argue that this two camp philosophy remains relevant to the conversations we have with customers, even today.
But what if there is a third way?
The "best fit" software development philosophy
There is another lesser-known "best fit" philosophy written by Goodhue and Thompson that seems to be of particular interest in the current climate.
The Task-Technology Fit theory (TTF) approach states that complex, expensive and inflexible high-end solutions no longer serve the needs of businesses. Instead the software itself should be tailored to the specific use case of the business it is trying to help. In other words, the software needs to fit the task characteristics, as well as the required functionality.
While there has been much focus to date on functional requirements, the way in which people are using and deploying their software has evolved dramatically in recent years. How these two elements are then utilized (as a result of individual beliefs, habits, conditions, social norms and attitudes), is what then ultimately results in the performance impact.
This theory ties in with recent research that shows nurses are becoming less satisfied with EHR software, with little appetite and time to fully utilize complex software. So innovation is needed, not just in terms of features, but also in terms of how these solutions are used and leveraged in real life environments. Therefore, when it comes to IT and end user mastery, certainly the simpler the technology the better, but this is not merely about the number of features it offers. This is also about how quickly and seamlessly it integrates with the existing software stack.
Tailored load balancers
Take Loadbalancer.org. We believe load balancing software should be tailored to the specific task or business problem it is trying to solve.
Our load balancers are clever, not complex, which means they offer the functionality required, but are simple to implement, easy to use and maintain, and designed to solve the availability, and performance problems of the majority of applications deployed on this planet. You might think therefore that we naturally lean towards the classic "worse is better" software philosophy. Well, yes we do, but our new software extends beyond the logic of mere simplicity.
The software I and my team have been developing is been designed to create greater value for both IT and end users, by aligning more closely to the task and technology requirements of individual partners.
For example, this might mean a tailored GUI, centralized management, or for partners like Cloudian, full OEM integration to ensure our load balancers form part of a single solution for the end user.
With recent Gartner research showing that only 40% of end users actually utilize the full capabilities of their application stack, ROI goes beyond simply the price of the software itself. ROI in 2023 will be about harnessing the full potential of each application, and ensuring the application stack fits the use case it serves. There's no point paying for bells and whistles for example, if only some of that functionality is ever used.
So where does all this leave us?
Why will this matter in 2023?
I will say that, for me at least, the "worse is better" and "right is better" software development philosophies ring true in much of the polarization that exists in the load balancing software market today. They also remain relevant to the conversations we have with customers on a day-to-day basis. But, at the end of the day, surely the central question is not which one is "better", but rather "does it do what I need it to do"? With software developed in such different ways, it's surely a fool's errand to compare products designed to do fundamentally different things?
Having said that, with the current economic uncertainty set to continue into 2023 and beyond, and businesses looking to lower costs without sacrificing the technologies required for growth, my view is that "best fit" software is more likely to meet buyers where they are, instead of pushing them to where vendors think they ought to be.