<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=299788&amp;fmt=gif">

Balancing the Door

Development Process, Software Development

Great things can be achieved with the judicious placement of a fulcrum. When properly utilized, a fulcrum allows massive objects to be effortlessly moved. This principle is what makes commercial fire doors so effective. Once balanced, the massive door can be moved by the average two-year old. This ease of movement is especially important in highly trafficked areas.
The entry point into a high availability enterprise system is analogous to a fire door. System entry points provide a powerful separation between internal and external, protecting both the enterprise and users when the system is properly configured. A key component to the configuration of entry points is performance testing, balancing around the fulcrum that allows access to the system. When properly done, information flow into and out of the system should appear effortless to the end-user and provide minimal drain on system resources.
Implementors of enterprise applications devote costly time and resources to system performance testing. The tweaks needed to properly balance system performance are often an art unto itself. Once the performance of system entry points has been properly tuned, it is seldom revisited unless a P1 performance issue crops up.
Since software is often a living, breathing beast, changes will occur over time. Static content gives way to dynamic content. Middleware changes. Functionality is added, changed and occasionally removed. And, of importance to this discussion, access patterns change. As newer technologies arise, users will access the system in new ways. A simple example of this is the move from returning all the content for a page in one shot to the use of AJAX as a tool to return partial page content. Additionally, security and authentication approaches are constantly changing. New optimizations are constantly being added to servers to keep up with access and security changes.
This constant change is a big part of what makes working in technology so exciting. At their heart, most people involved in IT love to solve puzzles. In contrast, most technology workers loathe tedium. Unfortunately, performance tuning of system access points often falls into this bucket. Additionally, business stakeholders commonly view system aspects that do not deliver new functionality as threats to profitability, relegating them to afterthoughts at best. The union of these factors often results in a situation where the system entry points do not proceed past functional testing. There is a common mentality of, “We already performance tested system access. There aren’t enough changes to justify the cost of validating something that has already been proven to be rock solid.”
Let's return to our fire door analogy for a moment. We’ll replace the standard key lock that came with the door with an electronic lock. And while we are at it, let’s go ahead and replace the handle with a new one to match some other decorating changes. Now that we’ve changed out the door lock, we’ll do a functional test on the door lock which passes with flying colors. That should be enough, right? Yes, it is…if your only goal is to having a working lock. But during the process of installing the lock, the weight distribution of the door changed and it’s no longer properly balanced. Now a fire breaks out and the door is more akin to a wall for anyone trapped inside.
You might say to yourself that this is a hyperbolic example. Though I haven’t seen the fire side of this happen, I have seen a fire door go from being easily opened by a coed to eliciting grunts from college linemen simply from changes to balancing while the locks were replaced. This led to a very unhappy fire marshal.
The performance testing of system entry points is very similar to this. Successful performance tests and an unblemished historical performance record are of little consolation when users stop using the system because the access points were not properly balanced. Though the cost of testing and the tedium involved may be unappealing, they are as important to the process of enterprise delivery as proper solution design. As a provider of an enterprise internet product, you don’t want to be trapped on the wrong side of the door when that fire breaks out.

TAGS: Development Process, Software Development

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Subscribe to Our Newsletter

Recent Blog Posts