Premature Optimization - early load testing and profiling

Premature optimization applied broadly is often a bad thing, however, a good developer will utilize common sense and experience when selecting and applying design idioms and patterns. When you are dealing with a singleton shared resource like the highly utilized core database, it is absolutely necessary to be aware of best and bad practices and to design appropriately around them.

Every query either good or bad affects every other user of the system. With respect to the database, spending up front time to consider and design optimal access is warranted. Those choices pay off later as the system is enhanced and scaled.

One common theme I have experienced at the last few companies and on the last few projects is that lots of code was implement and deployed without early and regular load testing and profiling. By the time performance issues became apparent, bad selections had become embedded and bad practices had proliferated through the code base. At that point it was very time consuming, expensive, and often difficult to correct them.

Early profiling and load testing would have taught the teams lessons that would have avoided the magnitude of the problems they later faced. They could have learned lessons early and applied them broadly, optimizing early, but no prematurely.

Comments

Popular posts from this blog

Sites, Newsletters, and Blogs

Oracle JDBC ReadTimeout QueryTimeout

Locks held on Oracle for hours after sessions abnormally terminated by node failure