Performance tuning is one of the hottest topics in the IT industry. Many people can write computer code; few can write software that's scalable. This article provides some of the general guidelines for application performance tuning. The rest of the articles in this series will go into details of tuning the database portion of the applications.
The Concept of Software Scalability
Let me begin by explaining the differences between a scalable application and its non-scalable counterparts. Any reasonable programmer can throw together a few hundred lines of code that accept user input and store data in tables; it doesn't take much intelligence or effort to write such programs. The development tools keep becoming easier to use; in fact, you can write a small application within a few days or weeks. But what happens to such software when the number of users grows from two to 10,000? Data entry screens start hanging, users have trouble getting their work done, your reports take hours or even days to generate, and your phone rings off the hook24 hours a day, 7 days a week. The trouble is that developing an application that supports a large number of users and affects a lot of data isn't that easy, regardless of the development platform. The level of scalability and performance is what differentiates a college project from commercial software deployed in a professional setting.
It's important to realize that users are the ultimate authority rating your application's performance. A perfect example is one of my consulting experiences. In a meeting with business users, a colleague of mine regretfully admitted that our report was running slowlyit was taking approximately 10 seconds to generate. The business owners laughed at this statement, since their current system took more than 48 hours to generate the same report.
The Sad Reality
Many executives in the industry still haven't realized the effort involved in designing and maintaining highly scalable software. When you first interview with such executives, you're directed to a Pentium 133 MHz with 64MB of RAM, which has been sitting in a closet for the past five years. You're asked to dust off this computer and design an e-commerce site supporting hundreds of users, for a few hundred dollars. And they've got a SQL Server CD somewhere in the closet.
Are you the unlucky IT professional with such a boss? Point him or her to this and similar articles, and indicate that it's time to stop dreaming and have more realistic expectations.