To create the Focused iteration artifacts, follow these steps:
6.3.1 Merge Duplicate ProcessesExamine the contents of each use case in relation to the remaining use cases. If you can share a process with other use cases, you reduce the scope of the project. To reduce the number of use cases, you merge duplicates, generalizing similar use cases. To reduce the size of individual use cases, you merge duplicate processes and generalize processes.
Many processes in a business are essentially the same. Early discovery of these similar processes in the development lifecycle will prevent you from designing, building, and testing duplicate code. To find and remove duplicates, follow these steps:
Merger of duplicates is crucial in this iteration. Duplicate functionality in use cases is a serious problem when you begin to implement the requirements in code. It also complicates maintenance because a single change means that you may have to update several processes. 6.3.2 Bring Focus to Each Use CaseAnalysts, designers, architects , project managers, testers, technical writers, and programmers rely on use cases. In addition to extracting scope information from them, these individuals need sufficient data to be able to build and test the system. Each use case must be complete, accurate, and concise . In the Focused iteration, you edit each use case to make sure that your descriptions are complete and provide sufficient information without being wasteful or vague. You must ensure that you define the terms used for the business domain and that you have accurately defined the actors. For this task, look into the following:
6.3.3 Manage Scope Changes During This IterationRequirements change. This moving target, often called scope creep , is invariably viewed as negative. Change renders your carefully crafted requirements obsolete, and that is frustrating. But businesses and government agencies are judged on their ability to adapt to their chaotic marketplaces , so their software must be able to change with them, even while it is being created. Given that you have no totalitarian solution to abolish changes, you must accept change during requirements analysis as well as during the rest of application development. You can develop strategies that allow you to cope with such changes. When change occurs, you must evaluate its consequences objectively and implement them sensibly. Change may increase or decrease scope. Dealing with a scope decreasea change that reduces the level of automation in a systemmight seem easier. However, it is important that you apply the same mechanisms to analyze both types of changes. Your goal is to identify how a change may alter the system. Dependencies between use cases are relevant to the task of understanding change.
6.3.4 Manage Risks and AssumptionsWhile working on this iteration, you'll discover facets of the system that may not be appropriate content for a use case. Even though these observations are irrelevant to requirements gathering, it is important to record and communicate them to team members and users. Carefully document the assumptions that underlie your requirements. The system and its scope may change significantly if these assumptions fail. For this reason, you should present the assumptions to the users with your use cases. The following are some of the risks of the Focused iteration:
You can control these risks by being aware of them during this iteration. Make sure that your reviewers are aware of the risks so that they can screen the requirements for these problems. If the users are not comfortable with their understanding of use cases, it is worth the effort to educate a representative user and involve him or her actively in the requirements-gathering process. We recommend an active approach to risk management. For example, to mitigate and manage project risk we use the strategy proposed in Rapid Development: Taming Wild Software Schedules (McConnell 1996). 6.3.5 ReviewIt is essential that somebody review your work for this iteration. Ideal candidates for reviewers are the SMEs because they have the best understanding of the business and the emerging application. Reviewers look at use cases individually and as a part of the completed system. Each use case must be reviewed for accuracy and completeness. The reviewer must ascertain that the collection of use cases describes an adequate system. If you are reviewing the Focused iteration, what do you look for? 6.3.5.1 Identify Opportunities Not TakenIn reviewing the work done in the Focused iteration, you may be able to identify areas where further possibilities remain . Ask yourself the following questions:
6.3.5.2 System DamageWatch for the following types of faults. You may be reviewing your own or the team's use cases, or you may be a client reviewing the work of an outsourcer.
In addition to looking for mistakes and omissions in the use cases, you should examine the risk and assumptions documentation and be alert for unidentified risks. You should make detailed comments on all flaws to the requirements analyst. The analyst needs to incorporate the observations and correct any defects found.
|