Dr. Rebecca Parsons is ThoughtWorks' chief technology officer. She has more than 20 years' application development experience, in industries ranging from telecommunications to emergent Internet services. Rebecca has published in both language and artificial intelligence publications, served on numerous program committees, and reviews for several journals. She has extensive experience leading in the creation of large-scale distributed object applications and the integration of disparate systems.
BUSINESS USERS SPECIFY THEIR NEEDS primarily through functional requirements. The nonfunctional aspects of the systems, like performance, resiliency, up-time, support needs, and the like, are the purview of the architect. However, often the preliminary testing of nonfunctional requirements is left until very late in the development cycle, and is sometimes delegated completely to the operations team. This is a mistake that is made far too often.
The reasons are varied. There is presumably no sense in making something fast and resilient if it doesn't actually perform the required function. The environments and tests themselves are complex. Perhaps the early versions of the production system will not be as heavily utilized.
However, if you aren't looking at performance until late in the project cycle, you have lost an incredible ...