How to be agile without falling on your face

Projects aren't going to wait just because you have fewer resources. To work faster without disaster, test smarter

Been visited by the budget hawks yet? No doubt. But the problem isn't just fewer resources, it's that the type of business disruption we're enduring now often translates into dramatic change -- and a magnitude more development work for IT. For example, PricewaterhouseCoopers predicts a surge in "mergers of necessity" this year, with companies that can no longer stand on their own mashing together to survive. Suddenly, IT is faced with integration problems of massive proportions.

Under such circumstances, you may have no choice except to get it done ugly and clean it up later -- but not so ugly that things break.

[ For unique insight into app dev trends an challenges, check out Neil McAllister's Fatal Exception blog. ]

Lately, I've seen the return of cobbled-together applications that fail all over the place. Remember the "ready, fire, aim" mantra of the dot-com boom? Back then, the enormous pressure to be first to market meant cutting the testing loop to a bare minimum. Today, the rationale to "just get it up there" with minimal QA more likely stems from a simple lack of resources. Well, I didn't buy the philosophy of "put it in production and fix it as you go" during the boom, and I don't buy it now. It's a great way to damage your brand, unless you're blessed with the world's most forgiving users.

Yet impossible demands are on the rise. I know several people under pressure to complete complex hurry-up projects who are beside themselves. They would never launch without testing, but the complexity of thorough testing would either disrupt other running systems or push the go-live date into the next decade.

Recently, I spoke with Derek Townsend at iTKO, which provides innovative testing and validation solutions. He said that companies at the center of the M&A cyclone -- particularly financial services -- are desperate to accelerate development projects. "They get 80 percent through a project and they think the end is in sight, but the last 20 percent really stymies them, and that has to do with the test and delivery part. They're dealing with so much complexity. Telcos are experiencing this too. The components and underlying systems are changing constantly underneath."

Service-based environments are complex by nature, with all sorts of unforeseen dependencies. iTKO's solution is to provide what it calls "service virtualization," which is not virtualization in the conventional sense. Instead, the company's LISA product absorbs the behavior of all relevant components in a service-based environment and simulates them, so developers can get a sense of how an application based on those services will behave under various circumstances in the real world.

As complexity increases, sophisticated modeling and testing without huge overhead will become increasingly essential. "Agility" may be too polite a word for what IT pros aspire to these days; in fact, everyone is just dancing as fast they can. To avoid falling off the stage in an embarrassing pratfall, don't cut testing to the bone. Instead, optimize the efficiency of your testing tools, environments, and methodologies.

Copyright © 2009 IDG Communications, Inc.

How to choose a low-code development platform