Mosaic has found testable requirements to be an intuitive, flexible measure that is a very useful tool for identifying and communicating issues to users and management. Mosaic regularly uses the measure to:
Quantify and communicate size issues -- both the size of the user requirements, and the size of technical and operational requirements.
Quantify and communicate test coverage issues.
Difficulties using the measure center around two issues:
1. Understanding the requirements -- System specifications are frequently vague and incomplete. This can make it difficult to size a system with any sizing measure. Sizing with testable requirements will quickly focus attention on areas of the system which are not well understood or well specified. While this can be frustrating from a sizing perspective, it provides valuable early warning of potential problems if the specifications are not corrected.
2. The relative newness of the measure -- There is not a large body of industry data and experience with the measure. When developing with newer technologies, it is possible to underestimate the size of a system because certain types of requirements are not understood and are not properly sized. For example, in contrast to traditional mainframe systems, client/server systems can introduce significant new complexity in the user interface (e.g. GUI), the database technology (e.g. the need to synchronize a database on a server with a database on the mainframe system), or numerous other ways. Web applications have introduced other types of requirements. With experience, these types of requirements can be identified and sized.