What is taught in software development

The way is worth it, both customer and developer benefit from this method of product development.

Requirements elicitation in the classic sense

The collection and definition of the requirements for an end product, including user requirements for this product, takes place in the classic procedure in a timely manner before the order is implemented. It is completed by inclusion in the specification sheet. In the further course of the project, the contractor implements the software based on the defined requirements and the client ultimately accepts the software product based on these criteria.

 

Requirements in agile software development

Experience has taught us that a requirements elicitation that takes place before the implementation of software is never completely or so precisely defined that it can do without further changes. Based on this statement, it seems paradoxical that the functional specification defines the solutions for all requirements for a software to be developed. In the agile approach, both the definition and the collection of requirements are a continuous process that takes place over the entire duration of the project by the client.

If the requirement is mainly collected by the customer at the beginning, this status changes due to the influence of an iterative incremental development. Short development cycles, at the end of which there is always an executable software artifact, offer the customer the opportunity to experience the software permanently.

Experience software has an impact on the requirement (s)

Many short development cycles are a core aspect of agile software development. At the end of a cycle there is an executable piece of software that the customer has to test. Through this experience of the software, as well as the experience from the "partial acceptance", the customer can decide, depending on the situation, which requirements are to be implemented next. He may have to raise new requirements, as other functions may come to the fore. New requirements do not have to arise solely from the perspective of the stakeholders. It is possible that system conditions that were unknown prior to the project and that must be taken into account in the successful development of the software were not taken into account. In the classic form, an additional order package may be developed, or the requirement may be included in the specifications in a bureaucratic act based on a change process. The agile way of working values ‚Äč‚Äčcommunication with the customer more than contract negotiations and implements this in that the customer determines before a development cycle which requirements are to be implemented next.

Communication and collaboration

For agile software development to be successful, the client must be actively involved in the project. The following tasks must be performed by the client for the collection and definition of requirements:

  1. Continuous recording and formulation of customer requirements

  2. Prioritization of the requirements before their implementation

  3. Communicate the requirements to the contractor before starting a new iteration

Critical discussion

In a market that is constantly changing and in which software requirements can change daily, the agile approach offers opportunities to react appropriately and in a customer-friendly manner. On the other hand, there is the lack of binding requirements as part of the contract, which the customer has to accept. At second glance, the customer gains the flexibility to react to unpredictable events and thus receive a product that is precisely tailored to his needs.