Agile describes both the methodology of agile project management as well as the methods and processes of agile software development. Many companies are firmly convinced of the advantages of agile methods. We provide an overview of the topic and explain what is required for a successful implementation of agile methods.
Agility describes a modern-day form of work organization, which has flexibility, adaptability and rapid development in short, iterative cycles as its primary goals. By delivering software regularly, the added value is created at an early stage, and the changes needed can be recognized and implemented in a timely fashion. Processes are deliberately kept lean. Communications and transparency are central elements of agile organization.
Teams are characterized by a high degree of responsibility, self-management and freedom of choice. An agile culure is an important prerequisite for the successful introduction of agile methods. Agile organization is especially useful in complex projects and environments, as unexpected changes can regularly occur in such environments – requiring a change in planning.
The use of agile methods in software development is becoming increasingly relevant to companies. With flexible and lean development processes, web solutions can be developed more rapidly and with a closer orientation toward the customer. This reduces development costs and shortens the time-to-market. The aim is to deliver implementable software as soon as possible as well as receiving rapid and regular feedback from the customer – and to use it for further work. For years, AOE has been working according to the guidelines of the Agile Manifesto and, among other things, uses agile methods such as Scrum and Kanban extensively in all phases of the development process.
Scrum projects, unlike Waterfall models, do not usually work according to rigid plans and do not produce comprehensive documentation. Rather, close customer communication and the flexible consideration of changes are the focus.
At AOE, Kanban is primarily used in teams with a high percentage of short-term, difficult-to-plan or cross-project tasks, such as the support team.
According to the survey “The Chaos Manifesto”, conducted by the Standish Group in 2012, agile projects are three times as successful as projects implemented using the traditional Waterfall model. The number of failed projects is also significantly lower for agile projects than for traditional methods. In addition, customer requirements are only partially met in more than half of all waterfall projects.
Software projects rarely end the way they are initially planned. In complex projects, requirements can changed during the course of development – this is actually the case in all complex projects. Development processes must therefore be structured in a flexible manner and allow changes even during development. Agile software development is characterized by flexible processes, which can take changes into consideration at any time during the development process.
Development results at a qualitatively high level with maximum business value in complex projects
Short development cycles (sprints) with functional software elements in every cycle
Iterative approach with short reaction times for changes
Customers as part of the project team, clarity concerning status quo, planning and controlling of the project
Daily coordination and feedback between dev team and customer
Few rules and little bureaucracy as well as lean documentation
Rapid implementation of the solution through peak efficiency and agile methods
Proven higher success probability of agile projects
Lower consultant- and fixed costs, creative freedom with individualized programming
To optimally structure projects and create the best-possible conditions for success, the project team’s structure is of critical importance. A functional team with the necessary expertise and agile methodological competence is essential, especially when developing software for complex projects. Our agile project teams generally work using the Scrum model, consist of five to nine persons and fill the following roles:
Organizational structures and corporate culture play a big role in successfully implementing agile methods. From the outset, AOE has relied on the principles of agile organizations and places great value on a beneficial corporate culture.
Agile software development also requires agile project contracts. In this context, one of the fundamental concepts of agile methods is based on the presumption that a software project cannot be planned in every detailed requirement at the beginning of the project. Later changes are therefore extremely likely and should be able to be implemented without large obstacles such as Change Request processes. To ensure that this is possible, AOE has developed a special agile project contract: Team & Method.
The agile values and principles form the foundation of agile development. They were stipulated in the Agile Manifesto. The goals are lean processes and flexible adaptations to change.
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.”