Agile software development describes a development process that increases flexibility and transparency so that it can be continuously optimized. Sub-processes should be kept as simple and agile as possible by self-organizing teams, so that developed systems can be implemented faster.
In comparison to classical process models (e.g. Rational Unified Process and V-Model) agile methods help to structure complex processes, to react quickly to changes and to increase the productivity of the developers while the software gains in quality.
Through constant communication with the customer and flexible intervention in the process, the entrepreneurial risk is to be minimized and better end results are to be achieved.
The agile way of working is based on four values and twelve principles, which were laid down in the “Manifesto for agile Software Development” in 2001.
The four values:
„Individuals and interactions more than processes and tools
Functioning software more than comprehensive documentation
Cooperation with the customer more than contract negotiation
Respond to change more than following a plan“
This is actually quite easy to explain, because although certain standardized processes and formal foundations are a prerequisite for the successful development of software, communication, interaction and flexible action in such a process are at least as important.
Flexible: No requirement specifications are required so that the process can be started without delay. During the project, changes can be made flexibly to new requirements, which are enormously important for a successful end result.
Time-saving: In addition to the technologies, the agile method relies on constant and direct communication with the customer, so that details can be clarified quickly and ambiguities cleared up without delaying the process. Regular feedback from the customer ensures that there are no negative surprises and that both the customer and the developers are at the same level.
Competitive: The quick and easy communication between the development team and the customer ensures that the software is completed faster, giving a clear competitive advantage. Are certain elements of the system more important to the customer? The agile method makes it possible for these parts of the new software to be completed first so that they can be used earlier.
The agile software development also benefits the developers, since they do not have to work through rigid specifications, but can flexibly estimate actions and expenses themselves. Taking on personal responsibility is not only fun for the developers, but also leads to important learning successes. In addition, direct communication with the team and the customer increases both trust and mutual appreciation of the work.