Articles / Agile Practices

Agile Practices

There is a fundamental sea change happening in the industry around us, a move away from prescriptive top-down mandates to implement a methodology to a developer-led "viral adoption" of Agile Practices. But exactly how widespread is this movement?

Methodologies have come and gone over the last 20 years, each with its own tilt on how to best improve the development process, but their adoption generally follows the same path. Non-developers, often fairly senior managers within the organization, "decide" that methodology "X" is the best thing since sliced bread and that they need to implement it to:

  1. Improve time to market
  2. Reduce Costs
  3. Improve quality
  4. Become accredited as being ISO compliant
  5. Attain CMM level n
  6. Reduce their % of disaster projects

Once the mandate has been issued from on high, the message is passed down the chain of command to the troops at the coalface. It is quite common for this mandate to be treated as a weird CIA plot to put obstacles in the way of their real job, which is to deliver projects that provide a business benefit.

The sheer weight of the ceremony associated with methodology "X" is often a strong inhibiting factor. Combining this with the costs of training/tools and the ever-present demand to continue to deliver products creates a very high-risk strategy.

Contrast this with the mushrooming adoption of practices most commonly associated with Extreme Programming or Scrum but probably better associated with the more generic Agile Alliance.

One of the key differences here is that the main drivers of this adoption are the actual developers. This is a powerful phenomenon, and one which we can consider in more detail.

Why is the "virus" so powerful?

Trust
Many of these practices are developer-driven, and so have a high degree of trust bestowed upon them within the community. Is a developer going to believe a salesman or manager that tool x or practice y will help them? Generally, no. But they are much more open to tools and techniques that other developers have produced to help themselves.
Sheer numbers
Remember: There are many more developers than there are senior managers. And the workers are starting to talk to each other and take active steps towards adapting their behavior in order to improve their capacity to deliver (see "The Web").
Low ceremony
This leads to easy adoption and experimentation. You can try it at little risk in terms of time or money. If it doesn't work for you, at least you are exploring the possibilities and are probably a little wiser as to what might make a difference.
Often, the "host" organization doesn't even know it's been infected
This is an interesting and, I think, quite common occurrence. Because the movement is being driven by the developers, they are most interested in getting their job done rather than publicizing the practices to the rest of the organization. Quite often, senior managers are not really aware of what is actually being done on a day-to-day basis (and why should they be?). Not knowing you are being infected means the viral adoption process has time to spread within an organization unhindered.
The Web
The Web has provided the active feedback mechanism required for ideas and practices to flourish. The IT industry is probably the one that is most closely aligned to this means of knowledge transfer, and as such is reaping the benefit.
Open Source tools/frameworks
Before I even write this paragraph, I can almost hear people shouting, "But the Agile Alliances Manifesto says: Individuals and interactions over processes and tools."

I do believe that people are of first order significance when talking about a group's ability to deliver software, but I also believe just as strongly that the availability of world-class and freely-available products such as Ant, Maven, the Xunit group of frameworks, Wikis, and Weblogs (amongst many others) have been a major driving force for the adoption of Agile Practices.

The growing influence that Open Source technologies have on the day-to-day life of developers provides us with a phenomenal toolkit with which to deliver our projects. If their influence is not being felt within your organization, I suggest that you are missing out on some of the most powerful agents for improvement that are currently available.

Open Source Adoption

ANT

Figure 1: ANT Page view statistics, courtesy of Vadim Gritsenko
Graphic 1

As you can see from Figure 1, the number of page views for ANT has remained at over 900,000 per month since February 2002, peaking at 1.5 Million page views in March 2004. Having an accurate figure for the number of downloads would also be a good indicator of the level of interest and adoption, but due to the use of mirrored sites to handle the volume of download requests, these figures are not readily available. What we do have are statistics for downloads from Apache's own site, which peaked at nearly 230,000 for one month (October 2002).

Maven

Figure 2: Maven Page view statistics, courtesy of Vadim Gritsenko
Graphic 2

Maven, the Java project management and comprehension tool, is proving to be increasingly popular. As you can see from Figure 2, the activity with regard to page views for Maven (peaking at 530,000 in May 2004) is currently at a lower level than ANT, but it growing at a much faster rate.

The increasing adoption of Maven also serves to highlight the adaptive nature with which these practices are moving from organization to organization. As new tools and techniques become available, they are being evaluated and incorporated into the development process where they add value.

The tools that add the most value have the highest adoption rates. This mechanism is a much more efficient manifestation of Darwinian principles than the more marketing-led, cost-restrained purchasing decisions we often see in the commercial world.

Xunit testing framework

More insight can be gained if we look at the statistics for some of the popular Open Source unit testing frameworks. A total of over 9 million page views and approaching 1 million downloads are very powerful messages.


Total

Average


Page Views

Downloads

Page Views

Downloads






JUnit

7,212,167

716,656

163,913

16,288

CPPUnit

1,517,064

115,181

32,980

2,504

NUnit

709,939

108,084

15,433

2,350


Total



9,439,170


939,921


212,326


21,141


Figure 3:

Statistics showing page views and downloads for some popular Xunit testing frameworks

Statistics from www.sourceforge.net, June 2004

Looking at these figures as a whole should give us a clear indication of the massive take-up rate that is being achieved within the development community. These tools can also be seen as key enabling technologies for many Agile Practices. It is this correlation between the use of Open Source tools and the widespread adoption of Agile Practices which provides us with an insight into just how extensively used they actually are.

When worlds Collide?

What happens when Agile Practices meet an organization's existing methodology?

Well, generally, they can co-exist quite happily. This is because many of these practices, such as Test Driven Development (TDD), Continuous Integration, Agile Modeling, and coding automatic checking of standards, are flexible enough to work with a wide variety of proprietary and non-proprietary methodologies while still providing a positive benefit to the team.

Agile Practices can even be effective within a waterfall methodology, but only up to a point.

For anyone who has gone through the integration hell which is commonly associated with waterfalls, having automated unit testing as part of a regular build is a godsend. Just because you happen to work for a company that has a waterfall methodology does not mean you are barred from these practices.

The issue here is that there will eventually be a point at which a wider adoption of Agile Practices (and more specifically, iterative development) will not be possible, given their incompatibility. It is at this point that there could be a serious amount of tension within an organization as to whether there should be a fundamental re-alignment.

One point to bear in mind is this:

If it can be shown that the Agile Practices have produced a positive impact on an organization's ability to deliver valuable projects, these kudos can be used to leverage the argument to moving towards an iterative development cycle. This, in turn, will allow more of these proven practices to be adopted.

And the winner is...

I believe that the adoption of popular tools and practices currently associated with the Agile movement will continue to spread across the industry until it becomes the norm and is commonly accepted as playing a significant part in furthering the industry's ability to deliver value to businesses.

And I, for one, believe this is a very good thing indeed.

But as to whether this will lead to a major adoption of Agile-like methodologies, I am much less sure. Agile Practices are scary to large organizations who prefer the comfort of the tried and tested. I also believe that one of the major reasons why most organizations will not fully adopt an Agile style of delivery will be their inability to provide for dedicated customer involvement throughout the life cycle of the project.

Without this involvement, it would be almost impossible to fully adopt what we would refer to today as "Agile", as it would severely compromise one of the bedrock principles:

Having an efficient, adaptive feedback mechanism provided by immediate and effective customer input.

What we would have is a useful set of best practices. But is this enough?

Time will tell.

Useful links

Recent comments

17 Oct 2004 19:40 Avatar mdnava

Agile Practices since conception of IT
I think there have been "Agile Practices" on IT since the conception of IT and it will always exist regardless of the metodology a business implements. And for me is just natural to find better ways to develop software implementing existing tools and classes than reinventing the wheel several times as needed.

09 Sep 2004 06:56 Avatar AndrewCates

Interesting article
I would add I think there is also a big factor of senior managers on average being scared of IT. I am not yet 40 and the first BBC micro arrived in my last year at school. There are frighteningly many senior managers who still use a secretary to type their emails... BozMo (http://catesfamily.org.uk/)

28 Aug 2004 18:04 Avatar sanxiyn

Python
Python, from version 2.1, includes PyUnit framework, so be sure to count all Python downloads for XUnit statistics. :-)

28 Aug 2004 09:34 Avatar edyoung

Oversimplified
Sometimes agile practices are applicable, sometimes they are not. It may well be that they are more generally applicable than is commonly recognized, but they're not a panacea - consider writing safety-critical software, for example. See the book Balancing Agility and Discipline by Boehm for an interesting discussion.

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.