Archive for the ‘Company’ Category

Omitting Load Testing In Your Release Process Creates Technical Debt

Wednesday, April 22nd, 2009

Money to burn

I previously worked at a company, let’s call it “Edutech” to protect the innocent, that had developed a variety of customer-facing web applications to open their financial information to colleges around the country. The data-center manager, a friend of mine, once told me that they had spent over a million dollars on hardware (machines, SAN, etc) scaling one of our web apps. This application only had to support around 250 concurrent users. I was shocked.  Edutech went years without load testing this particular application, even though it was under constant development.

The compounded effect of years of quick and dirty development decisions meant scaling the application in its current form wasn’t possible without the costliest cutting-edge hardware.  Previous development decisions had locked the app into approaches that worked effectively only at small scale.  Fortunately for Edutech, the function the app provided was so valuable that throwing money and hardware at it was a viable strategy. Load testing was being introduced, as a practice, for the first time at this company that year, because the costs of scaling the application had finally pushed the needle to a point where upper management took note.

Testing is a crucial step in the software development cycle, yet it’s often given short shrift.

Technical debt, a concept proposed by Ward Cunningham, suggests that, like financial debt, a price must be paid later when quick and dirty decisions are made in the development process.

The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object oriented or otherwise.

When load testing is a part of your release process, you escape the compounding interest of technical debt.  The moral is: test early, and test often.

[Post to Twitter] Tweet This Post 

Testomatix: An Introduction

Monday, March 2nd, 2009

Web technologies have progressed a great deal since the 90s. As we near the end of a new decade, we can look back on the development of useful, complex interactive web applications built atop any number of powerful technology stacks. However, as the complexity of applications increases to ever greater heights, many remain too brittle for their own good.

Eric and I have been thinking about the emerging challenges of web application development for quite some time. We believe that technology is outpacing our ability to properly use it. When we noticed the problem, we founded Testomatix.

Our goal is to help people alleviate the pain of testing the scalability of modern web applications. For many such applications, scalability can be a major source of problems for as long as they remain in active development. It doesn’t help matters that scalability issues don’t get the attention they deserve until actual damage is done.

In many cases, scalability issues come up not due to poor architecture, but from unanticipated bottlenecks. Introducing redundancies, caching data, and optimizing the queries will often make quite a difference, but the crucial bottleneck that will hold your site back can remain unapparent until after-the-fact. Load testing helps you know beforehand.

In a complicated application, tackling every aspect of design on paper is not always comforting–one can never discount human error. Using live traffic is similarly unreliable, since it won’t be predictable and it certainly won’t be forgiving once a problem occurs. In practice, the best approach is often to implement the most promising design candidate and see how it fares under heavy stress.

At Testomatix, we feel that load testing is important and frequently overlooked. Too often, it’s a time consuming process requiring expensive hardware, costly licensing, difficult scripting and other headaches. We started Testomatix to fix that problem. Scaling your application shouldn’t be so difficult. With easy and intuitive load testing, it won’t be.

Email us your thoughts, questions, and suggestions!

[Post to Twitter] Tweet This Post