There's nothing like an epic fail to get software pros to factor in performance up front. I am referring, of course, to highly visible application performance failures such as healthcare.gov. Painfully slow at launch, the now-infamous website was all but useless to citizens shopping for health insurance. This very public failure damaged the reputation of the Obama administration. And it made the Affordable Care Act -- the signature legislation of Obama's presidency-- appear doomed before it ever had a chance to prove itself.
Thankfully, most application performance problems don't create epic fails on the level of healthcare.gov. But all performance problems, even performance shortfalls, have very real costs. The reputation of the company behind the app -- not to mention the credibility of the software team responsible for developing, testing and operating it -- are always at stake.
Even if your company isn't a household name and its application performance failures are not the stuff of headline news, your organization has a reputation to uphold with partners and customers. If a Web application is too sluggish for distributors to download real-time inventory data, for example, the company behind it looks bad. If a mobile app that lets salespeople take orders at customer sites can't call up the customer's account in an instant, the reputation of the business is on the line.
In this edition of Quality Time, I talk about what a Performance Center of Excellence is, and how establishing one -- or at least adhering to its principles -- can help prevent performance disasters, even if they don't reach epic fail proportions.
Performance Center of Excellence
In the last couple of weeks, I have been talking to analysts and software vendors about application performance and I am hearing a lot about Performance Centers of Excellence. The concept is not new but it seems that application performance experts are talking about it in a way they weren't a year ago.
The term is admittedly overblown. But a Performance Center of Excellence is not a huge, heavily staffed facility. It's a small team of software pros on a mission to make application performance a high priority throughout the development process. "It's not people-intensive, it's people with the right skills," said Theresa Lanowitz, founder of Minden, NV-based, research firm voke, Inc.
Chief among the necessary skills is understanding how application architecture affects performance, said HP Software director of product marketing Kelly Emo. "There are performance ramifications for architectural choices." It is crucial to design an application for good performance from the outset of the development process, added Lanowitz. "Architectural flaws are hard to fix at the end."
Guiding a team effort
A Performance Center of Excellence will make sure load testing is carried out early, and repeated throughout the application lifecycle. "You get off a build and run a load test," Emo said. Performance centers oversee a continuous cycle of improvements: simulating peak loads for anticipated and unforeseen events, measuring the performance impact of moving to a cloud infrastructure and testing how an application fares on different mobile devices, among others.
More on centers of excellence
Create an SOA center of excellence
Expert interview on test centers of excellence
For beginners: A test center tutorial
Determining ROI for a testing center of excellence
Performance center staffers make sure these kinds of tests take high priority. That said, they aren't the only ones responsible for performance; developers, testers and operations managers don't have to. Performance centers serve as advisors to the software team, making sure the performance message is translated into better code.
Lanowitz said that even line-of-business people need to get involved in application performance. "You aren't expecting them to talk about response times or server performance." Their job is to discuss the users' expectations for the application, she said. "What do they want the customers to experience? It's the software team's job to translate [the answers] and do the testing."
The do-it-yourself performance center
I asked HP's Kelly Emo what steps software teams can take if establishing a Performance Center of Excellence isn't an option. She recommends that software pros working on different teams get together informally to share their experiences and advice on performance testing. This is especially effective when the applications they are working on have a high profile within the company.
Once that conversation gets underway, the next step is to engage line of business partners. Emo suggested some good questions to ask. "What are the performance implications of the business requirements? How many people do you expect to use this application?"
Initiating the dialog is a first step toward putting leadership in place to make sure all applications are designed for performance, Emo said. "You have to design them properly from the get-go. You can't just throw more hardware at them."
Don't wait for an epic fail to fix performance problems. What are you doing to make sure performance is built in? Let me know and I'll write about it in a future column.