Thursday, 6 March 2014

How to a design a software system for performnace

Performance is a very key requirement (implicit or explicit) for most server side software. It might also manifest itself in some way for client side software. The root of the problem first starts in the requirement itself not being clear or completely specified, leading to a subsequent demand after initial development which in turns leads to a major costly re-engineering project. In a way it is very intrinsic part of functional design and its hard to separate or  realize as an independent concern. 

I have faced these questions in most projects I have been associated with as a system engineer and a software architect in a leading telecommunication equipment firm:

(1) The performance requirement is not there
(2) The performance requirement is there but I am not sure whether I have specified it completely
(3)  I am not sure if my design can ensure that the performance goals will be met

I am sure others have too. Ignorance shown towards these jeopardizes the usage of the developed software commercially. The only solution is we need to ask these questions and solve them to the best of our abilities when we begin the development.

The best description of what a performance requirement means, how it is written, whether it is completely specified, ensuring that the design meets the performance, etc is beautifully captured in the first 3 chapters chapters of the book


from Microsoft. Its plain practical wisdom and experience dished out. And the principles are language agnostic as well as independent of .NET platform. Over to the wonderful people who wrote this book (follow the hyperlink).

No comments:

Post a Comment