Custom software is generally complex in that it is designed to solve multiple problems and/or exploit multiple opportunities. The business entity that needs the software generally knows what they need and want from a very high level, so it falls on the developer of the software to perform the necessary elicitation and analysis in order to translate needs, wants, and desires into actionable requirements.
What are Elicitation and Analysis?
Requirement gathering or elicitation is the process of determining what the software needs, so it will do everything the business needs it to do. This can be done through interviews with the client, surveys, brainstorming with experts in the industry, and in a number of other ways. The goal is to make sure the software will have everything it needs and will work properly for the business without major issues. Once that is done, analysis is needed. This portion of the process determines if there is enough information to continue with the software development or if the developers need to learn more about what the project needs before they begin.
Why Requirement Gathering is Needed
The leading cause of failure during custom software development is a lack of elicitation. If there is not a good understanding of the technical requirements for the project, the resulting software will not be what the business needs and could end up being a waste of both time and money. During elicitation, it is crucial for the business analyst to make sure they do as much requirement gathering as needed so that the software does meet all business requirements and will work well for the business now and in the future.
Why Analysis is Crucial
After all of the information is gathered, it’s then necessary to evaluate whether the information is enough to start creating the software. Though this phase is often overlooked, it is crucial to the development of the software. There are a number of ways to analyze the information received and to make sure it is everything the developers need to create the right software. The fruits of good analysis is models such as flow diagrams, use case scenarios, mockups, and wireframes.
What About Agile?
A common misconception is that Agile software development bypasses the need for elicitation and analysis. This is simply untrue. True Business Analysis always involves a fair amount of “tailoring” to the software development lifecycle. A project using the Agile methodology still needs to define requirements and then analyze those requirements, but instead of doing the majority of that work upfront, it is done multiple times before each iteration or sprint and it becomes part of backlog management and grooming . Agile doesn’t mean “fly by the seat of your pants”. It just reorders when and how often tasks are done. Agile is about early and continuous delivery of valuable software and requirements elicitation and analysis when done right is a perpetual process during project development.