By David Gelperin, CTO, ClearSpecs Enterprises
Bob, the developer, is excited. This is his first assignment with his new employer and he really wants to show them what he can do. They are asking him to develop a “make a hotel reservation” function and he is listening carefully to understand exactly what they want. He has done something similar, except for rental cars. He asks a few clarifying questions and feels fortunate that they asked him to do something he is familiar with.
He heads back to his office to develop an estimate and then tells Sue, his supervisor, that he is ready to begin work. When he meets with Sue, she asks if he has included the relevant “crosscutting requirements” in his estimates. Bob is not sure, because he doesn’t understand what she is asking.
She explains that understanding the domain function is important, but its associated crosscutting requirements need to be understood as well and factored into estimates. Crosscutting requirements constrain multiple domain functions or the system architecture. For example, “each custom module must comply with our coding standards” is a derived crosscutting requirement that supports “understandability.” Most quality requirements are crosscutting. “Undo” is a crosscutting user action. “The app must run on Apple and Google smart phones” is a crosscutting constraint.
To illustrate her point, Sue asks the following:
- If the reservation database needs to be created, what are its privacy restrictions?
- Do users need to be authenticated to be sure they are not bots?
- How are exceptions to be handled?
- How many concurrent users must be handled?
- Are there transaction-logging requirements?
- Are there help protocols?
- Are you familiar with our coding and verification standards?
She tells Bob that when he answers these questions, he will be asked to demonstrate his understanding by outlining the verification strategy he plans to use. The strategy should include verification of the crosscutting requirements as well as testing of the user functions. He should also update his estimates.
Bob takes notes and realizes that these questions apply to many other user functions. He wonders how Sue produced this list so easily. He will ask her another time.
When Bob returns to his office, an image pops into his head.