Requirements gathering is the process of generating a list of functional, technical and systematic requirements from several project stakeholders, such as clients, IT staff, product users or vendors. This list may likely include features, activities and tasks for a team to execute in order to achieve the goals of a project. Usually, there are two types of requirements to consider: functional and non-functional. Functional requirements include the information, interactions and processes that a client requests. Non-functional requirements are other technical and operational aspects of a project.