What is agile development

Agile software development

Agile software development refers to approaches in the software development process that increase transparency and flexibility and lead to faster use of the developed systems in order to minimize risks in the development process. The core idea is to keep sub-processes as simple and flexible as possible (= agile). In 2001 the so-called Manifesto for agile software development was created, which consists of four values ​​and twelve principles. The four values

  • “Individuals and interactions more than processes and tools
  • Functioning software more than comprehensive documentation
  • Working with the customer is more than just negotiating a contract
  • Reacting to change more than following a plan "

state that, for the successful development of programs, formal principles such as standardized processes, documentation as well as prescribed frameworks and instructions for action through contracts are necessary, but soft criteria such as communication, consideration for those involved and flexible action are at least as important.

In order to take these values ​​into account, the twelve principles that should be followed in agile software development have been formulated:

  • “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changes to requirements even late in development. Agile processes use changes to give the customer a competitive advantage.
  • Deliver working software regularly within a few weeks or months, preferring the shorter time span.
  • Technical experts and developers have to work together on a daily basis during the project.
  • Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
  • The most efficient and effective way to convey information to and within a development team is face-to-face.
  • Working software is the most important measure of progress.
  • Agile processes promote sustainable development. Clients, developers and users should be able to maintain a steady pace indefinitely.
  • Constant attention to technical excellence and good design promotes agility.
  • Simplicity - the art of maximizing the amount of work not done - is essential.
  • The best architectures, requirements and designs are created by self-organized teams.
  • At regular intervals, the team reflects on how it can become more effective and adapts its behavior accordingly. "

Examples of agile methods in software development are Crystal, eXtreme Programming, Scrum, or Feature Driven Development.