First phase of software development life cycle is ‘complete requirement gathering’. I want to emphasize on the word “complete” as there is difference between ‘requirement gathering’ and ‘complete requirement gathering’. The designing & development phase starts on the basis on the requirement, business results and expectations of stakeholders. Of course, in agile methodology, product owners can change or add the requirements any time but before starting of development phase complete requirement should be captured in tools. In agile methodology, we have three types of stake holders in scrum team.
Product Owner role can be played by Client Stakeholder or Business Analyst. BAs are responsible for complete requirement gathering from different Knowledge Areas available with them. These Knowledge Areas are mentioned below:-
This Process is leader of all other Knowledge Areas. We need to analyze Stakeholders, Risks, Issues, Future Forecasting as per all available parameters. As we are developing the Application to fulfill the requirement of Stakeholders, We need to find them, involve them and keep them in co-ordination for further Development Processes. Business Competitors, Risks, further changes in Technology also need to be keep in mind for Planning & Monitoring Phase.
Elicitation is most widely used Technique to get the answers WHY, WHEN, PROBLEMS, TO WHOM, WHAT, EXPECTATIONS & others common questions for any projects. We can use Interviewing, Brainstorming, Document Analysis, Interface Analysis, Interviews, Prototyping, Requirements Workshops, Survey/Questionnaire & other Techniques with direct interaction with Business Stakeholders. While Elicitation we can map the expectation and Pain Areas of Stockholders.
Requirement management focuses on planning and priority of requirement for Development activities. Communication method should in detailed and appropriate way so that technical people understand it in well manner and Business people receive it in as expected format. We can create Product catalog, put all user expectation in the form the user stories. Prioritize the requirement list as per dependencies, Business importance and impact on the solution. Faster delivery of right pair of requirement can benefit the business in effective manner.
Enterprise Analysis is related to Portfolio Management, identifying all opportunities, Framework segmentation and optimize project investment plan as per need and correct structure of organization. Enterprise may have several different verticals and domains to be optimize. We need to identify, gathered, communicate and plan as per the portfolio of organization. It involve the tasks i.e. Solution Scope , Requirements Traceability, Requirements for Re-use, Requirements Package, Communicate Requirements to right manner to right stakeholder.
Requirement Analysis is requirement engineering to develop New Product or modify Product. It include observation, validation, impact analysis, working process development and planning of development those requirement into the product. Requirement Analysis involves frequent communication with system users to determine specific feature expectations, resolution of conflict or ambiguity in requirements as demanded by the various users or groups of users, avoidance of feature creep and documentation of all aspects of the project development process from start to finish.
Once requirements are handed over to the Technical team the business analyst is expected to assess the design and impact returned to the project team. Business analyst maintains much of the project’s intellectual property, rights, and properties – especially about requirements. Solution validation is the activities of explaining the solution’s appropriateness to stakeholders, Team and sponsor. This often involves explaining technical concepts to related stakeholder. Often a business analyst will be required to get a document approved by one or many people.
The underlying competencies are skills, knowledge and personal characteristics that support the effective performance of business analysis. It includes Analytical Thinking and Problem Solving, Behavioral Characteristics, Business Knowledge, Communication Skills, Interaction Skills and Software Application Usage.
To conclude, Complete Requirement Gathering via different Knowledge Areas is first and most crucial process of software development life cycle. Requirement gathering way might be diverge for different industry and companies, but we should utilize all knowledge areas in efficient way through progressive channels to achieve better results for organization.