Olu has a Master of Science degree in Business Information Technology.
The application development process is fairly standard regardless of the type of application being developed. All applications start with an idea which would have come from thinking in terms of a potential solution to an identified problem. It is no different for a web application. Once the idea for a web application has been identified, it is important to formally define the stakeholder requirements of the application. The process of generating the requirements i.e. needs, tasks and goals of the application is known as requirements gathering.
In this lesson, we'll be using the example of an online collaboration application, wherein users can create documents, logs, videos, discussions and collaborate on them. The application also has an approval work flow for content publishing, as well as an admin function which can generate participation and usage reports.
Requirements Gathering Defined
The process of requirements gathering is the first and crucial phase of the software development life cycle (SDLC) process. This sets the stage for the subsequent phases. It is at this phase that the assessment of the business goals or the objective that an application is required to meet is fleshed out.
In software engineering, requirements gathering identifies the functional and non-functional requirements of the web application.
Functional requirements are those which are related to the technical functionality of the system. Functional requirements state how the users will interact with the application. It is something the application must do and can be testable. For the online collaboration application, the functional requirements may include:
- Descriptions of content to be created and published in the system i.e. documents, blogs, videos etc.
- Descriptions of operations performed by each screen
- Descriptions of content approval work-flow process
- Descriptions of participation and usage reports
Non-functional requirements specify criteria that can be used to judge the operation of a system in particular. Conditions, rather than specific behaviors. While functional requirements define what a system is supposed to do, non-functional requirements define how a system is supposed to be. Non-functional requirements are often called 'quality attributes' of a system. Examples of non-functional requirements for the online collaboration application may include:
- Performance - how much time each page should take to load
- Scalability - will the system be able to handle large volume of users that keeps increasing
- Capacity - how much storage will be needed
- Availability - availability and downtime of the application
- Security - this includes security of the content and encryption etc.
The Requirements Gathering Process
Requirements gathering can begin as a brief description of what the online collaboration application must have as a minimum and what users will be able to do on it. As those requirements are fleshed out, they would need to be defined, described and documented.
While there is no perfect way to identify and gather requirements, some commonly used methods include:
- Interviews - this is one-on-one dialogue with users and clients.
- Survey - this technique is used to collect information and requirements within a short time frame, from a large user group.
- Storyboarding - in this technique, the interactions between the system and user, are visualized.
- Use Cases - this technique shows how people interact with the online collaboration application. It shows what the application does.
- Questionnaires - this method is used for getting requirements from large groups of distributed users
- Brainstorming - in this method, subject matter experts conduct sessions where solutions to complex issues are discussed.
- Prototyping - this technique involves building a model of the software which helps in uncovering and capturing software requirements
The Challenges of Requirements Gathering
- While the stakeholders of the online collaboration application may have a clear idea of the problems they are facing or the potential of the application (i.e. inability to collaborate on content, no central content storage), they may be less clear about what they are looking to achieve.
- Poor communication between stakeholders and analyst could lead to the requirements of the online collaboration application not being clearly defined.
- Stakeholders may have conflicting priorities which may have an effect on their active participation in the requirements gathering process.
- The potential online collaboration application users may be unknown during the requirements gathering phase. This can impact the quality of the requirements. This is typically the case when the application is open to any user on the internet.
- Web applications are vulnerable against exploits in the operating system, web server software, database etc. It can thus be difficult to assess the security of online collaboration application while gathering requirements.
- The inconsistencies between different browsers, versions and platforms also poses a challenge in requirements gathering
- Stakeholders or users of the online collaboration application may not have adequate domain knowledge, which means that the actual needs of the user cannot be transformed into the requirements.
Requirements gathering identifies the functional and non-functional requirements of any application. The requirements gathering techniques include: Interviews, Survey, Storyboarding, Use cases, Questionnaires, Brainstorming and Prototyping. The challenges to requirements gathering are varied and stem from stakeholders, users, platforms and technologies. We have looked at all these from the perspective of an online collaboration application, whose unique nature, presents unique challenges.
To unlock this lesson you must be a Study.com Member.
Create your account
Register to view this lesson
Unlock Your Education
See for yourself why 30 million people use Study.com
Become a Study.com member and start learning now.Become a Member
Already a member? Log InBack