Once a project is accepted, the clients get involved from the requirements gathering to the delivery of the product. The article explains why involvement is necessary in requirements gathering phase and why managing such involvement is vital for the final product.
Requirements gathering starts at the beginning of a project and may continue throughout different phases of the project, depending on the software development life cycle methodology used by the project.
Gathering the right requirements, organizing, documenting, verifying and validating them is essential when building up your software product. It is the clients who know the business/ user requirements which would provide basis for the properties and the functionality of the products. Hence for proper management of requirements, it is imperative that businesses rely on the clients’ support as well.
The communication of the functionality and the non functional requirements need to be clearly agreed upon. There should not be any ambiguities hence, the development team needs to clearly communicate their concerns over requirements.
Example : If the particular requirement is related to outdated technologies, if it takes too much time and effort or if the particular requirement is beyond the scope etc.
High involvement by clients may also provide unnecessary distractions and delay the developments carried out by the project teams. It can bring negative effects such as the developments may be delayed, the user interfaces and requirements can be changed often, etc.
As mentioned previously, client involvement is also essential because at the end of the day we need to satisfy the clients and ensure we deliver the product which satisfies their needs and desires. Therefore it is imperative that the development team/ software company handles and manage the client involvements and their requests to ensure smooth operation of the development process.
If the development methodology is Agile Scrum, below can be followed to improve communication and negotiations with the clients.
- Provide a deadline for requirements changes to minimize last minute changes and/or new requirements.
- Presenting what is to be carried out at the beginning of the sprint and at the end of sprint and getting the feedback.
- Agreement on how to handle client requirements which are given after the deadline. Example : Charging a fee, Agreeing on delaying delivery dates etc.
- Discuss with Scrum team if there are new requirements or additions to the current requirements and include in backlog accordingly.
- Communicating the concerns or the possibility to attend the requirements.
- Prioritizing the agreed requirements.
The above would assist in managing the clients and their requirements, while ensuring that development team shall deliver a product which performs and have the quality which the clients expect.
Note: The original article was published in LinkedIn.