Following are some of the common issues faced by many teams that I came across, at one or the other point, is the complaint posted by their client regarding following:
- The team including developers and testers do not understand requirements
- The team do not ask enough questions and require spoon feeding
- The team makes assumptions
- The team does a good job in coding normal use case scenario; However, they fail to take into account exception handling.
The end result of above is unhappy client, a confused team and go-fix-the-issues team management. With some research and experiments, I found some of following questions that when asked during requirement analysis phase, helps take care of most of the above issues.
- What business need is forcing the above change? What will be the benefit to the business with above change being incorporated?
- What business events lead to the above requirement? (Input & output data are generally used to determine the business events)
- Perform business use case analysis
- What is the business use case that involves above activity in alternate form?
- How the current business processes use to get executed without the change mentioned in the requirement? How would business processes get impacted as a result of change?
- Consider evaluating different scenarios including normal, exception and alternate cases for involved business use case
Following are some of the terminologies that may be good to know for software developers/testers:
- Business events: Any happenings taking place outside the boundary/scope of work which enters the system boundary in the form of input data set can be called as business events
- Business use case: The system response to business event can be termed as business use case
- Business process: The set of activities/tasks required to be performed in business use case can be termed as business processes
- Scenarios: A set or sequence of activities that takes place in business use case can be termed as scenario. Scenario can be normal, alternate or exception scenarios.
- Product use case: The set of activities/tasks that falls within scope of system can be termed as product use case. A product use case constitutes business use case.