Skip to main content

Broken Windows – System Administration and Security

A recent study confirms that the ‘Broken Windows’[1] crime theory might be valid. As reported in the Boston Globe:

“It is seen as strong scientific evidence that the long-debated "broken windows" theory really works—that disorderly conditions breed bad behavior, and that fixing them can help prevent crime”[2]

Does the theory also apply to system administration, security, servers, networks and firewalls? How about application code?

I grew up knowing that you always cleaned and washed your car before you took it to the mechanic. Why? Because if the mechanic saw that you had a neat, well kept car, he’d do a better job of fixing it. I’ve seen that in other places, like when you visit someone with a neat house versus a messy house, or hang out in a messy, smoky bar with cigarette butts and peanut shells on the floor, or a gated community versus a slum. Let’s assume that it’s simply part of human nature.

Quoted in the Boston Globe article:

""One of the implications certainly is that efforts that invest in improving the environment in terms of cleanliness may actually help in reducing moral transgressions because people perceive higher moral standards," said Chen-Bo Zhong, assistant professor of management at the Rotman School of Management at the University of Toronto.”

Higher moral standards reduce moral transgressions. Disorderly conditions breed bad behavior.

Does the theory apply to applications, servers, networks and firewalls?

  • If system administrators, developers and network administrators consistently and carefully maintain a system or application by tracking down and cleaning up all the little bugs, error messages and minor day to day cruft will the system perform better, have higher availability and better security?
  • If a firewall rule set is organized, systematic, structured instead of random and disordered, will the firewall administrators pay closer attention to the firewall and be less likely to cause an error that results in misconfiguration or unavailability?
  • If a server has applications and data neatly organized instead of scattered all over the file system, if the root directory has only system files in it instead of random leftovers from past projects, will the sysadmin pay closer attention to configuration, change management and security?
  • If and applications code base is organized, structured, and generally neat, will the code maintainers do a better job of maintaining the code?

I speculate that this is true, based only on observation and anecdote.

[1] Broken Windows, George L. Kelling and James Q. Wilson, the Atlantic, March 1982
Breakthrough on Broken Windows, The Boston Globe, Feb 8 2009

Via: The "Broken Windows" Theory of Crimefighting, Bruce Schneier


  1. Certainly it applies to programming. The Pragmatic Programmer dealt with broken windows at length, suggesting putting the equivalent of police tape around known bad code to warn others away. I don't know of any studies that bear this out, though there no doubt are some, but I have seen it in practice again and again.

    I also see code that I wish I'd put police tape around being copied and re-used.

  2. I think the cleanliness factor - whether it's in the analog world or in the digital world - brings with it just a hint of a "panopticon effect". The mort sublte version being the old adage that folks _generally_ live up to expectations others have of them.

  3. Panopticon - I had to look that one up ;-)

    @Sam - We have servers that should have police tape around them too. The worst is one that I built a decade ago. We've never cleaned itup and started over. Nobody has the guts to take it on.

    I've found 'living up to expectations' to be generally true also, and the cleanliness factor might simply raise expectations.


Post a Comment

Popular posts from this blog

Cargo Cult System Administration

Cargo Cult: …imitate the superficial exterior of a process or system without having any understanding of the underlying substance --Wikipedia During and after WWII, some native south pacific islanders erroneously associated the presence of war related technology with the delivery of highly desirable cargo. When the war ended and the cargo stopped showing up, they built crude facsimiles of runways, control towers, and airplanes in the belief that the presence of war technology caused the delivery of desirable cargo. From our point of view, it looks pretty amusing to see people build fake airplanes, runways and control towers  and wait for cargo to fall from the sky.
The question is, how amusing are we?We have cargo cult science[1], cargo cult management[2], cargo cult programming[3], how about cargo cult system management?Here’s some common system administration failures that might be ‘cargo cult’:
Failing to understand the difference between necessary and sufficient. A daily backup …

Ad-Hoc Versus Structured System Management

Structured system management is a concept that covers the fundamentals of building, securing, deploying, monitoring, logging, alerting, and documenting networks, servers and applications. Structured system management implies that you have those fundamentals in place, you execute them consistently, and you know all cases where you are inconsistent. The converse of structured system management is what I call ad hoc system management, where every system has it own plan, undocumented and inconsistent, and you don't know how inconsistent they are, because you've never looked.

In previous posts (here and here) I implied that structured system management was an integral part of improving system availability. Having inherited several platforms that had, at best, ad hoc system management, and having moved the platforms to something resembling structured system management, I've concluded that implementing basic structure around system management will be the best and fastest path to…

The Cloud – Provider Failure Modes

In The Cloud - Outsourcing Moved up the Stack[1] I compared the outsourcing that we do routinely (wide area networks) with the outsourcing of the higher layers of the application stack (processor, memory, storage). Conceptually they are similar:In both cases you’ve entrusted your bits to someone else, you’ve shared physical and logical resources with others, you’ve disassociated physical devices (circuits or servers) from logical devices (virtual circuits, virtual severs), and in exchange for what is hopefully better, faster, cheaper service, you give up visibility, manageability and control to a provider. There are differences though. In the case of networking, your cloud provider is only entrusted with your bits for the time it takes for those bits to cross the providers network, and the loss of a few bits is not catastrophic. For providers of higher layer services, the bits are entrusted to the provider for the life of the bits, and the loss of a few bits is a major problem. These …