Again and again one hears about software development projects that do not go according to plan and do not achieve goals or only do so insufficiently. The reason is usually that many software projects are too complex to plan in detail in advance. Agile software development starts at this point by allowing flexible and transparent project planning.
History: From classic to agile software development
Classic software development methods such as the waterfall model often lead to unsatisfactory project results due to rigid requirements. Since around the turn of the millennium, more and more companies have been focusing on agility. The Agile Manifesto made a decisive contribution to this. This was formulated in 2001 by 17 renowned software developers and forms the basis of agile development methods.
Instead of starting with the functional scope of a development and accepting it as given, agile software development is primarily based on it Quality and on-time delivery. Changes in requirements are expected from the outset. Consistent change management, feedback collection and process improvements are fixed work components in an agile team.
What is agile software development?
Within the framework of agile software development, there are various methods, such as Scrum, which are based on a step-by-step refinement of planning and the procedure within a project. This forms the basis for these agile models agile Manifest, which contains four values and twelve principles.
The four values of agile working:
- people and collaboration before processes and tools
- executable software before extensive documentation
- Cooperation with clients before contract negotiations
- reacting to change from obstinately following a plan
The most important principles of agile software development
While the four values of the agile manifesto form the framework, the twelve principles go into more detail and fill the framework with life. This creates a theoretical construct that also serves as a recommendation for action for agile teams. The agile principles have their origins in software development, but can be transferred to many areas of everyday work, such as agile project management.
Die twelve principles can be summarized as follows:
- early and continuous delivery of valuable software
- Changes in requirements are always welcome.
- Delivery of working software within a few weeks or months
- daily collaboration between subject matter experts and developers
- Projects around motivated individuals
- Face to face conversations
- functioning software as the most important measure of progress
- steady pace indefinitely
- constant attention to technical excellence and good design
- Simplicity is essential.
- self-organized teams
- Regular reflection and adjustment in the team
Was sind agile Frameworks?
In agile software development, there isn’t just THE one agile Method. Rather, there are various agile frameworks that essentially follow the same principles, but differ in terms of scalability, team size, implementation effort and costs, for example. Companies are spoiled for choice here.
The most well-known method is the Scrum-Approach. This usually works very well at team level, but can reach its limits when a large number of agile teams are working on several products in large companies. So it depends on the size of a company and its strategic orientation, which agile – or rather non-agile – approach suits you. If a company already has its own agile culture, it can make sense not to be too restricted by a framework.
Agile software development using Scrum as an example
In Scrum, the project participants are divided into Product Owner, Team and the Scrum Master. The product owner is the customer or client who defines the requirements. The Scrum Team is a team of developers who work independently and self-organizing for the success of the project. The Scrum Master moderates between the team and product owner and keeps the project together. Fixed rules ensure that the development team can work undisturbed and that change requests are channeled. The team orientates itself on the product backlog created by the product owner, which contains all requirements including prioritization. This catalog of requirements can be supplemented or changed during the project. In terms of time, project management in Scrum is divided into different sprints, which have a fixed duration of 10, 15 or 30 days.
Advantages of agile software development
A main argument for the use of agile software development is first and foremost the acceleration of the development processes. Finally, the use of agile methods leads to fewer or more efficient coordination processes. Technical and organizational hurdles are overcome. The fastest possible delivery of functioning software is targeted. But agile software development scores with much more than time savings.
Greater value and competitive advantage
A principle of agile development is to welcome changes in requirements, even late in the project. Changes are seen as an opportunity that can become a decisive competitive advantage. At all times there is close feedback with the client and later users, which – if practiced correctly – increases the actual benefit of the application.
Agile methods intend a permanent comparison of expectations, goals and specifications. In this way, undesirable developments are recognized and corrected at an early stage. When the general conditions change, the project does not continue to run rigidly, but remains flexible. In the end, the quality and benefits of the solution may even surpass original expectations. The result of each step is tested instead of checking the product for quality after development.
Daily cooperation between the development teams, specialists and future users, ideally face to face, aims to achieve a high level of acceptance of the solution at the end of the project. If all stakeholders are actively and continuously involved in processes and decisions, the application is not a product of unknown developers, but the joint result of real teamwork.
Agile software development shows its strengths, especially when the solutions to be developed are very individual and only a few fixed framework conditions exist. Ultimately, it comes down to using the right mix of promising methods and tools.
Agile processes and methods are not only suitable for development, but can also be transferred to many other areas of daily interaction in the office or remotely. Ask yourself: In which areas could the agile principles benefit your team or your company? We would be happy to support you in an advisory capacity or in the Implementation of agile projects.
Was this article helpful to you? Or do you have further questions about agile methods and software development? Write us a comment or give us a call.