|
| Mon, Jul 07th | home | browse | articles | contact | chat | submit | faq | newsletter | about | stats | scoop | 14:25 UTC |
|
login « register « recover password « |
| [Article] | add comment | [Article] |
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? Copyright notice: All reader-contributed material on freshmeat.net is the property and responsibility of its author; for reprint rights, please contact the author directly. 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:
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?
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 AdoptionANT
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
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 frameworkMore 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.
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
Author's bio: Dean Margerison has over 15 years of experience in managing software development projects for a variety of companies and industries (including computer games: Bugs Life). He has more recently been involved in a number of process improvement programs adopting iterative development techniques under the Unified Process and Rational Unified Process. This coupled with automated builds and unit testing to provide greatly-improved development potential. The author of papers on the development process and a regular speaker on the topic, Dean currently works as an independent consultant through his company, Dekam. T-Shirts and Fame! We're eager to find people interested in writing articles on software-related topics. We're flexible on length, style, and topic, so long as you know what you're talking about and back up your opinions with facts. Anyone who writes an article gets a t-shirt from ThinkGeek in addition to 15 minutes of fame. If you think you'd like to try your hand at it, let jeff.covey@freshmeat.net know what you'd like to write about. [Comments are disabled]
[»]
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.
[»]
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 --
[»]
Python Python, from version 2.1, includes PyUnit framework, so be sure to count all Python downloads for XUnit statistics. :-)
[»]
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.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||