Agile software development

Agile software development is based on numerous principles, such as making the goals of the development process more flexible, or the increase of product quality.

Various methods and processes have evolved over the years so that agile software development can achieve the aims that its principles set out.

An agile process called Kanban

Kanban was originally developed by Toyota in the 1970s; an initiative that was likely triggered by abnormal levels of stock present in the manufacturing process. In terms of economics, the costs surrounding stock warehousing are always seen to directly impact prices and the ability to compete. Therefore, in order to reduce costs and strengthen their competitive position, stock levels needed to be reduced. The main focus of Kanban is the continuous flow of production.

If you transfer this principle to software development, you find that even here stock has a decisive impact on competitive ability. As a part of our process of software development, we enlarge on the underlying principle of Kanban to incorporate risk management approaches as well as some concepts taken from lean production.

The Kanban board lies at the heart of our software development process. The way it works is that a card is either digitally or physically created for each task, which then makes its way across the columns of the board (the ‘production line’) that has been divided as such to represent subcategories. The time that each card spends in a column (the equivalent to a work station) is seen as a work in progress, and must be recorded. By evaluating the item on each card, the team is able to gauge the procedures needed for individual tasks and can implement improvement measures as a result. Another advantage of using a Kanban board is the visualisation of ‘stock’ in their work stations, thanks to which the team is able to react quickly and responsibly in eliminating any potential bottlenecks.

Methods of agility - an extract

Test Driven Development

The central focus of TDD is the test-first concept. Here, software tests are carried out on specific parts of a programme before the function itself is fully developed, making for an iterative process through which the function is implemented bit by bit. Implementation is complete once the tests establish definition and the actual function has successfully passed them all. Even in projects with a high number of lines of code do we ensure that existing functionality and programme flow still reliably complete their tasks, even after changes or extensions.

Pair Programming

The objective of this method of software development is to produce high-quality source code quickly. When developing a function, feature or module, two developers will always work together at the same workstation to implement the solution. One approach to this method is if one of the developers takes on the role of ‘doer’, expressing ideas out loud and writing source code simultaneously. The ‘co-worker’ then takes on the role of quality assurance, and on account of their distanced view they can question the ideas of the doer and offer any further solutions on the spot. A further benefit of pair programming is the four-eyes principle: the co-worker checks the generated source code as it is being created, with regard to coding guidelines, legibility and structure.

By regularly swapping roles, both colleagues can enjoy ‘learning by doing’. The quality of the software is substantially increased through this approach, since errors are already detected and resolved during the development process; studies on pair programming have proven that the error rate is up to 15% lower compared to conventional developing methods.

image
25 Mil

Documents

1 Mil

Documents Retrieved Daily

200 Mil

Searches per year

What can we do for you?

Christian Praller is happy to help. Give us a call, write to us, or arrange a call-back.

Christian Praller

Gesamtleitung Vertrieb

 Bergerstraße 3-5, 86720 Nördlingen
 +49 9081 85-250
 Praller.Christian@becksche.de
 vCard

Praller