Page 93 -
P. 93
76 Chapter 3 Agile software development
2. A ‘scaling out’ perspective, which is concerned with how agile methods can be
introduced across a large organization with many years of software development
experience.
Agile methods have to be adapted to cope with large systems engineering.
Leffingwell (2007) argues that it is essential to maintain the fundamentals of agile
methods—flexible planning, frequent system releases, continuous integration, test-
driven development, and good team communications. I believe that the critical adap-
tations that have to be introduced are as follows:
1. For large systems development, it is not possible to focus only on the code of the
system. You need to do more up-front design and system documentation. The
software architecture has to be designed and there has to be documentation pro-
duced to describe critical aspects of the system, such as database schemas, the
work breakdown across teams, etc.
2. Cross-team communication mechanisms have to be designed and used. This
should involve regular phone and video conferences between team members and
frequent, short electronic meetings where teams update each other on progress.
A range of communication channels such as e-mail, instant messaging, wikis,
and social networking systems should be provided to facilitate communications.
3. Continuous integration, where the whole system is built every time any devel-
oper checks in a change, is practically impossible when several separate pro-
grams have to be integrated to create the system. However, it is essential to
maintain frequent system builds and regular releases of the system. This may
mean that new configuration management tools that support multi-team soft-
ware development have to be introduced.
Small software companies that develop software products have been amongst the
most enthusiastic adopters of agile methods. These companies are not constrained by
organizational bureaucracies or process standards and they can change quickly to
adopt new ideas. Of course, larger companies have also experimented with agile
methods in specific projects, but it is much more difficult for them to ‘scale out’
these methods across the organization. Lindvall, et al. (2004) discuss some of the
problems in scaling-out agile methods in four large technology companies.
It is difficult to introduce agile methods into large companies for a number of
reasons:
1. Project managers who do not have experience of agile methods may be reluctant
to accept the risk of a new approach, as they do not know how this will affect
their particular projects.
2. Large organizations often have quality procedures and standards that all projects
are expected to follow and, because of their bureaucratic nature, these are likely to
be incompatible with agile methods. Sometimes, these are supported by software