Customer requirements are the foundation of software design, and a rapidly changing online world demands agile requirements modeling by software developers. In years past, waterfall or “big up front” design projects meant interviewing customers, stakeholders and users for several weeks at the beginning of a project, then vanishing to create a monolithic set of requirements and build the software. This type of “no customers allowed” software design was responsible for some colossal, expensive failures.
Often customers don’t know what they need in a software package. This means that their requirements aren’t strictly reliable as they will try to state requirements in terms of the software they know. It’s better to recognize that the requirements are going to change, and keep the users involved with the software project to enable agile requirements and modeling. Once users see the project coming to life, you can be sure that they will start changing what they are looking for in the final package. Their initial requirements were based on a vision that was the result of their old software, or perhaps what a sales rep showed them.
A skilled software developer will use early models of the program to work with the users to refine their requirements. By staying agile with requirements modeling, the development team is prepared to shift their designs in response to the changing needs of the customers and users. Big up front design always tried to build the software before it was built. Agile requirements modeling improves customer satisfaction and delivers a product that solves the problem more quickly.