Part 1: What is Agile Software Development?
The trend of agile software development
Agile software development has been a strong trend for several years and there is almost no way around it as a customer or as an agency in the digital industry. In order to implement complex software projects in today's very fast-paced world, agility is a must. In this three-part blog series you will find out what pitfalls there are when introducing agile software development and what you have to watch out for.
Why is agile software development necessary?
A short story: An adventurous bachelor made it his goal to cross the Mediterranean Sea in a one-man rowboat. The launch was to take place in the port of Naples. The destination of his journey was the port city of Tunis. The weather was excellent. It was almost windless. Since the young rower knew that there were exactly 572 km between Naples and Tunis and that he could row at an average speed of 11 km/h over long distances, he predicted his arrival in Tunis exactly 2.5 days later.
During the arduous journey and almost unnoticed by the bachelor, a light breeze picked up from the west. In addition, the rower had to take a few more breaks than planned in order to be able to cover the long distance at all.
At the end of his strength but overjoyed, the young rower reached the port of Bizerta after four days, which is 60 km north-west of Tunis. Although he had not landed in Tunis and the journey had taken just over one and a half times as long, he was proud of his achievement. After all, he had crossed the Mediterranean!
Impressive performance, isn't it!? If something like this had happened during the realization of a software project, I am sure that one or the other customer would not be quite as satisfied with such a service. The trip of the bachelor, who had planned everything meticulously and knew his destination exactly, ended in a completely different place due to changed conditions. The situation in software development can be similar to what happened to the bachelor: the unforeseen can change the direction of a project easily and quickly. And from experience we can say: the conditions within a demanding project are always changing.
«The conditions within a demanding project are always changing!»
It doesn't matter whether it's the development of complex custom software or a crossing of the Mediterranean Sea, the conditions and requirements will change continuously over the entire duration of the project. If you do not react to changed circumstances, you will most likely miss your goal.
The Origin of Agile Software Development: "The Agile Manifesto"
Shortly after the turn of the millennium, a group of developers discussed why sophisticated software projects often fail and what the future of software development might look like. Everyone agreed that the main problem was that companies were too busy planning and documenting their software before implementation, instead of meeting the customer's requirements. The group wanted to change that, which is why they developed the originally 68-word "Agile Manifesto".
The four core values of agile software development
Responding to change over following the plan.
Although you have to have a plan for every major project, you should be able to react to changing conditions or new requirements during the project. Even if you have to deviate from the original plan.
Individuals and interactions over processes and tools.
Although processes and the use of software and tools can be enriching, people should come first: the project team, stakeholders and of course the end customer or user of the product, who should always play the most important role.
Customer collaboration over contract negotiation.
Although contracts and agreements are unavoidable for software projects with larger budgets, close cooperation with the customer and in particular with the user of the software must be the priority.
Working software over comprehensive documentation.
Although documentation and diagrams can promote an exchange and understanding of the software, meticulous documentation of a software that does not work at all is of no use. The goal is to have working software before extensive documentation is written.
Part 2: Why agile software development doesn't work
7 common mistakes in agile software development
Part 3: How agile software development can work
Advice and tips to make agile software development successful