The False (Form-Factor) Dilemma: Hardware or Software

Lori MacVittie 缩略图
Lori MacVittie
Published April 11, 2016

Anyone who has studied philosophy and in particular, logic, knows that there are wide range of logical fallacies that ultimately undermine one’s argument. Most people are probably familiar with the ad hominem fallacy, which attempts to repudiate an opponent’s argument by attacking the opponent instead of the argument.

Similarly, there’s the red herring fallacy, in which you deliberately change the subject to avoid arguing about the original premise at all, usually by questioning some facet of the original argument. An example might be responding to the statement, “It is not moral to lie”, with “What does moral mean?”

Another fairly common fallacy, but for some reason rarely pointed out, is that of the false dilemma, in which one assumes there are only two choices available. The most common example is “Either you’re with us, or you’re against us”. Or how about “you can take the red pill or the blue pill” when there are at least two other choices: you can take neither, or you can take both.

That’s kind of like the argument over form factors today. You can either choose software or hardware. Except that’s not the only choice, you can choose both.

It turns out that’s exactly what most IT professionals prefer: a mixed bag of hardware and software. That’s likely due to both the continued bifurcation of the network as well as the bifurcation of the data center, with some apps in the cloud where software is a must and others in the data center where hardware or software is available.

hardware vs software soad16

In fact, it turns out that form-factor preferences are influenced by the role of an IT professional within the data center.  IT professionals in our 2016 State of Application Delivery report who preferred hardware over software were those who self-identified as having roles in the “network” and in “security.” Unsurprisingly these are the areas within IT where scale, speed, and security of data, apps, and even the systems themselves are critical to the success of business every single day.

See, it turns out that hardware is actually better at some things than its software counterparts. Security is often one them, performance and scale are another.

That’s because the hardware is usually designed specifically for a given purpose. For example, switch architectures (which are very different than general purpose compute architectures) are designed for high-speed and scale. That’s why an enterprise and service-provider class switch can process 100 Gbps of traffic and my laptop can’t. That same switch can’t run Angry Birds, though, so there’s at least one plus for general purpose compute.

Hardware is not just about providing compute, storage, and network resources. Sure, that’s a big part of it because hey, the resources  needed to deliver applications doesn’t magically appear by having a unicorn run through the data center with “resource dust” spewing from its magical horn. Resources come from hardware of some kind. But sometimes it’s also about how that hardware interacts with and handles those resources. In the network, purpose-built hardware is still not only valuable, but necessary to ensure the speed, scale, and security of the data its handling. Without that, you have to embark on a journey to recreate the same outcomes using architectural means. Scaling out software with software isn’t impossible; it’s done every day. But it results in a far less stable environment with many more moving parts, all of which have the potential to break down and disrupt business.


Now, if you were thinking this is was a “Go Hardware, Forget Software!” kind of post, think again because that would be a kind of false dilemma, too. Because that’s not the answer either. There are good reasons for preferring software over hardware, particularly when we look at the needs and requirements of applications and emerging methodologies that value agility and velocity, such as microservices and DevOps. In the cloud, of course, there’s really no choice at all – you’re going software, period. That was reflected in our survey, too, with those identifying as being in “app” or “infrastructure” or “cloud/DevOps” roles preferring software over hardware. In the case of app and infra folks, by significant margins.  That’s because software is considered a better fit in their domain, which focuses on applications and app services that must be agile, easy to provision, and respond rapidly to changes in the environment.

But it turns out that every role prefers a hybrid model comprising both hardware and software. Because there’s value in the hardware and there’s value in the software and it really comes down to determining what you’re trying to accomplish – and where.

So don’t let someone back you into a corner and force the false dilemma of “software or hardware” on you. Both are appropriate and each has advantages and disadvantages depending on the environment, app, and specific purpose to which you’re going to put the solution.

Like cloud, this isn’t an either-or proposition. It’s an “and”.