Project complexity is a very subjective term and prone to several interpretations. To reduce the misunderstanding, in this section, the term project complexity refers to level of difficulty in understanding how to achieve the project objectives. In complex projects, the ability to gather clear and accurate requirements is difficult because the requirements are vague and may even be evolving. To improve the accuracy of software requirements, you may need to create a prototype, storyboards, and modeling. In addition, some projects may require multiple gathering software requirements sessions.
For example, suppose you are planning for software that when deployed will reduce the time taken to checkout by 30% and increase the overall sales (online or product software) by 20%. To meet these objectives, during the gathering software requirements phase, you’d probably conduct user testing of the existing system. In addition, to better understand the audience, you might have interviews and observations. To increase sales, the overall business strategy would have to be looked at. Some factors you’d consider include product portfolio, the competition, the current unique selling points, and the advertising strategy. You might even develop user surveys asking the audience what exactly they like and don’t like. Or, if there are multiple paths to a solution, you may use decision trees. By using this holistic approach, a higher probability of success in meeting the project objectives is possible.
As you can see, project complexity can significantly increase or decrease the average time to gather software requirements.
Image Credit: SXC