A Key Challenge in Software Development - Uncertainty about Requirements

Sangeevan Siventhirarajah
3 min readFeb 23, 2024

Uncertainty about Requirements brings most challenges to the software development. Software projects are developed based on user requirements. So, if the user requirements have uncertainty, the projects also be a challenge.

Defining the requirements is the process of understanding the user’s problems in a very detailed way. The software project must be a well-suited solution for those particular problems. The beginning of a software development life cycle is a “Requirement gathering”. So, this step must be done in a clear way to build a quality product. The design, development and testing of the software project will be based on the requirements gathered from the users. So, the requirements must be clear, to understand how to design the system and what needs to be developed by the development team. If this stage has complexities, the end-product doesn’t meet the user expectations.

There could be multiple factors like poor documentation, conflicting requirements, lack of access to end users, focusing on visual aspects rather than functional requirements, change in the mind of stakeholders, communication problems, and so on, that make this requirement- gathering process complicated.

In the situation of, the project team misunderstanding the requirements or the user failing to communicate the exact requirement, the design of the project will be based on that wrong requirement and the development also will be based on it. So, the end product fails to solve the actual user’s problem and it leads failure of the project.

In some situations, the initial requirement gathering process may have been done in a good way, and the design and development also have been ongoing based on it, but in the middle, the user may come up with new changes in the existing requirements or may add some new additional requirements.

So, in these kinds of situations, there may be difficulties for the development team to change and re-design the current design of the software project based on the changes in requirements. It may consume more time than what the team estimated in the initial estimation process. And in some scenarios, it’s hard to alter the current design, and may need to come up with a new design. This will add more complexity to the project.

By following some good practices, the development team can reduce the challenges caused by these types of situations. The requirement-gathering process must be done in a well-organized way to capture the exact requirements of the user, and the requirements must be in a well-documented way. The development team must clearly understand the user’s exact requirements, and if any instance of ambiguity in the requirements, the development team must discuss it with the user to clear it, before doing development. The communication between the user and the development team must be in well-organized way. The design of the software must be flexible to adapt the future changes.

References
https://www.geeksforgeeks.org/challenges-of-software-developers
https://www.orientsoftware.com/blog/software-development-challenges
https://www.breadcrumbdigital.com.au/requirements-gathering-challenges-and-solutions

--

--