With the advancements of software development technologies, techniques and methodologies, just a working software does not mean any thing to the more advanced and matured enterprises anymore. What makes software win in the market (when they are products) or makes the customer satisfied (when they are customized solutions) is defined by various other aspects of software such as performance, security, usability, overall quality etc. In this brief article, we discuss the performance aspect of software development.
When it comes to performance of software product or the solution, there are various aspects depending on what is expected from the software. If the software is mission critical and used 24×7 with no downtime, then the availability and reliability would be considered as more important over other performance characteristics. Online shopping carts that cater to the worldwide customer base would need this kind of performance for a continuous service. There are so many examples of losses that had occurred due to temporary unavailability of web sites in the history. One of the major causes for having less availability for some of the web application is that they are not designed for handling large number of concurrent users. Most web applications just meet the expected functionality and security requirements but not the concurrency requirements. One important reason for this is lack of expertise in the software houses (especially when they are small) for testing the application for concurrency in the “real” way.
When 9/11 terrorist attack happened, do you know the stress that built up on BBC news site? It was estimated as 40,000 hits per second. If BBC news site was not designed for such a concurrency, the accountability of BBC would rapidly go down as they are not able to cater the news readers at the hour of need. I think this example is more than enough for understanding the availability requirement of web applications.
Software performance has other various characteristics such as business transaction performance, stress, load, scalability etc. In the next few articles, we’ll be looking at these factors one by one and see how important they are in the world of software development.






Leave a Reply