Irfan Idrees wrote with the observation that while performance analysis and prediction are of critical importance for software developers, the rigorous approaches prevalent in the marketplace have not been widely accepted in the community. Irfan then asked how software factories deal with this issue.

 

Software factories provide leverage by reducing the amount of variability in application development. With a software factory, one effectively builds a variant of a known application type. All features common to the product family are designed and implemented in known ways. The only variability in a given member of the family is due to the features that make it unique.

 

Unique features include both fully custom features and variations on known variable features. A fully custom feature is one that has not been predicted or taken into account in any way by the software factory. Variations on known variable features may be either fully constrained (e.g., picking one of five predefined transaction policies from a drop down), or partially constrained, (e.g., writing custom code to complete a template generated event handler designed to work within a predefined event architecture).

 

To the extent that the performance of that application type is known and understood, then the task of analyzing and predicting the performance of a given variant becomes a matter of analyzing and predicting the performance of its unique features, and of analyzing and predicting the impact of their performance on the known performance characteristics of the application type, such as overall performance, the performance of specific operations or scenarios, and the way those measurements may vary with variations on known variable features.