By Sabina Belyaeva sabinabeliaeva@gmail.com
Software development is a complicated process that includes many steps. These steps may simplify the whole operation if the approaches for their implementation are chosen in the right way. One of the significant steps is requirements elicitation and development, since requirements should define deliverables and reflect relevant goals. Extensive and well-organised requirements make the process of development understandable and consistent. The eliciting and developing requirecement demands right techniques. But in fact the process of selecting the right techniques is also quite complex. As the result, the taxonomy of requirements elicitation and development methods may simplify this process by giving a brief description of each method and signifying a particular interaction between stakeholders and analysts.
A guide to the business analysis body of knowledge provides a lot of different techniques. Almost all of them were taken from social sciences but only a few of them have been chosen for requirements elicitation and development[1]. It goes without saying that each method has its advantages and disadvantages: Brainstorming is used for generating new ideas and solutions, usually conducted in free-form discussion. Each member presents their own ideas for the solution of the problem. Best idea is nominated by members voting as a solution for the problem[2]. This technique is not suitable for a small group of stakeholders with different points of view. And the success of the method depends on individual creativity and willingness of participants. Document Analysis is the process of gathering information about business by studying available documents. This process includes analysing each document’s content and recording notes about each theme[3].It is also necessary to find out whether some notes conflict or whether there are some duplicates. This technique is efficient for capturing domain knowledge. Due to this method business analysts do not need to create additional content and existing documents are usually used as a point of reference to find out what has changed. Moreover, results of analysis can be used for validating against the results of other requirements elicitation techniques. Interviews is the speaking process when an interviewer asks stakeholders specific requirements questions. Conducting the right interview the interviewer can gain a complete view of the system. However, successful interview depends on several factors[4]:
Without these factors the interviewer can collect only imprecise data. Requirements workshops are formal and highly structured meetings for reviewing requirements. Usually such meetings are of longer duration and they are useful for developing large and complex requirements. Requirements workshops generally include[4]:
The weaknesses of this method are that this technique is expensive, slow and not useful for small products. Observation is the process of watching for stakeholders who complete their tasks. Analysts can observe stakeholders in either work environments or artificial conditions. The main advantage of this technique is that real insight about conducted tasks of stakeholders will be gained. But the process of observing can be threading and obsessive for the person who is the target for observation[4]. Prototyping presents the initial visualisation of the system. Usually this method is used for confirming system requirements. Prototyping helps to recognise the workflow of the actual system. This technique is costly. The process of creation may be slow since the system can be sophisticated. User scenarios usually reflect functional aspects of the system. It should specify a sequence of interactions between a system and an external actor[5]. Use scenarios are understandable for stakeholders due to their narrative flow. They also clarify scope and provide a high-level understanding of requirements.[4]
At first sight all techniques are different but in fact some of them have little in common and be classified by communication means[6]:
This taxonomy shows different types of techniques and gives a brief description that allows one to get acquainted with the methods without deep analysing of each technique. Moreover, this classification can help to combine the techniques. As it was mentioned, all techniques have their strengths and weaknesses and sometimes it will be more useful to combine them in order to get better results. For example, in order to prepare for an interview (collaborative type), it will be useful to conduct document analysis(analytic type) or in order the interviewees get proper information, they need to see a prototype(contextual methods).