World Wide Webber


My Books
REST in Practice: Hypermedia and Systems Architecture
Amazon:
US, UK
Developing Enterprise Web Services by Sandeep Chatterjee and Jim Webber
Amazon:
US, UK,
Now available: Korean Edition

My Bookshelf
Programming Clojure by Stuart Halloway

RESTful Web Services by Leonard Richardson and Sam Ruby
Agile Atheism
Posted: 30 November 2006 @ 00:23 UT from Melbourne, Australia
Last updated: 30 November 2006 @ 10:33 UT

Though I'm often thought of as a grumpy guy, I generally try to do the right thing in my day-to-day life. I don't murder people, I try to be calm and pleasant to my fellow humans. I don't steal or commit adultery or any of that kind of thing. I do this because it seems to me to be the most pragmatic way to live my life. I could maybe take it a bit further and give up beer or sex on the hope that it would have some generally positive affect on the planet, but that's not a risk I'm prepared to take.

Some folks I know also live their lives in a similar way. I guess most nice people generally do. However some of these nice people live their lives in a well-intentioned way because it is prescribed for them in religion - they might be nice guys too, but religion plays a key part in defining their behaviour.

Perhaps they're following some religion from the middle-east and coveting their neighbour's asses is prohibited (for the record I've never checked out my neighbours ass, but it's statistically likely to be OK), or perhaps they're particularly hostile to idolatry or homosexuality. Perhaps they follow an eastern religion and they're doing a bunch of mediation to reach enlightenment. Their behaviour (minus any oddities about hating people based on their sexual or religious preferences) generally looks and feels much like my behaviour - they're generally trying to be nice to others so that we can all rub along nicely on this small temperate rock we call home.

The difference is that the religious don't deviate from prescribed doctrines because that would put them at odds with their faith. Where deviation occurs it may be described as sacrilege or otherwise be used to distance the deviant from the mainstream faith and pillory them. I find this unappealing since in general people are trying to live life in the best way they can, and the philosophies underpinning religious practices should support that.

In my professional life I see similar situations. I work for a company (ThoughtWorks) who are aggressively agile, to the extent that our chief geek was one of the authors of the agile manifesto and working agile is the preferred engagement model for our consultants. In recent weeks both Joel and Steve have put the boot into agile, and though it made me a pariah internally I openly admitted to finding the postings insightful and funny.

It seems I do not have the agile religion. This was probably apparent when I joined ThoughtWorks two years ago. I asked some of my interviewers what this "agile" thing was about, and was told that it involved using techniques like sensible planning, source control, and testing to take the risk out of software delivery. Coming from a middleware background where we had (somewhat) sensible planning, (plenty of) source control, and (the most sophisticated) testing, I found this explanation confusing because the values portrayed under the agile banner were those same values I had held true in an un-agile workplace which the agile religion of course doesn't allow.

I still like source control, testing, and sensible planning and have refined those techniques considerably under the mentoring of my ThoughtWorks colleagues, but I am not agile. I am not agile because I don't believe in the agile religion and I don't accept its dogma. I like the engineering and planning practices that agile teams use - in the same way that I like people who do nice things (even when they do it because of fear of divine retribution). The difference is I don't want to be constrained by dogma into only doing those sensible things which are prescribed by agile. In the same way I don't like being prevented from doing sensible social things because of religious beliefs.

For those that have the agile religion, it is routine to express to others why they are not "agile" because they're not doing precisely 72.799 hour iterations, or because they have code coverage of less than 83.002% or other arbitrary measures. That is counter productive. Instead we should be encouraging good behaviour as a general practice, not enforcing it through religion and the humiliation of non-conformists that most religions - including agile - engender. Sensible software engineers do the things that make projects successful and we should maintain that, but without the dogma.

This is why I am an agile atheist.

Comments:
#

Your link to "Steve" seems to be broken. 

Nice posting, I'd summarise as extremism is bad. Extremely single minded inflexible working habits are bad, and so are constant interruption ADD working habits. Keep things balanced in between.

#

Hey Adrian, 

Thanks for the bug report - fixed now. 

Jim

#

Jim, 

I hear alot of talk about the Agile Religion, but I have yet to hear from anyone who actually subscribes to it. Any more information on that?  

You said you are not Agile because you don't believe in it's religion and you don't accept its dogma. Yet I AM Agile and I also don't believe in its religion nor do I accept its dogma. As a matter of fact I don't have any idea what its religion or dogma are. 

In light of the above statement either we have different understandings of what it means to be Agile, or there is something besides these two issues that determines Agility.  

But seriously, the Agile Manifesto mentions some pretty good guidelines in my opinion to keep teams focused on delivering software rather than adhering to a (potentially dogmatic) methodology.

#

Hello Jeff, 

I don't think I can call myself agile because others who are agile would find my practices different. For example, I subscribe to (enough) architecture and design; I am also wary of YAGNI as a way to shelve important design decisions under the belief they can be magically retrofitted later. I also like quiet focussed areas in whcih to work, and I'm sure there are other ways I'm sure that I disagree with the orthodoxy. 

I don't mean to convey any disrepect for agile practices. As I said in my blog post I like (most of) the engineering and planning practices that agile teams use. But I don't fully subscribe to ADD working environments or full time pairing etc. That is why I am an agile atheist. 

Jim

#

From what I'm reading, the title of your blog reads like a sensationalized headline on a newspaper that has a shot of a semi-naked woman on page 3. 

I can appreciate that your sticking to the religious underpinnings of the blog, but atheism (or complete disbelief) does not seem to be the message you're conveying. 

Perhaps you could point me in the direction of the definition of Agile as you see it and your Atheist stance would be clearer? 

When I refer to Agile - just the word - as you have in the title, I'm focused on the mindset, the spirit, not the practices. 

Even when implementing an Agile methodology, implementations vary between teams. Teams tweak practices throughout the lifecycle of the project. The thing experiencing the least change is the mindset, or spirit of the methodology.

#

Great post, Jim! 

I reckon that is the most sensible approach to software development. XP/Agile is great, but every methodology should be applied sensibly.

#

Hello Matthew, 

Yes, the title of the posting was deliberately provocative. I had a serious point to make that dogma undermines delivery. I also want to make the point that you don’t have to be a v-chipped signatory to the agile manifesto to believe in sensible software delivery. I am not anti-agile, where agile is a umbrella term for sensible software development, I am an agile atheist because I do not have the agile religion. These are quite separate issues. I don’t need to cite a reference for my definition of agile because that’s a religious act; the mindset and spirit of agile are also often religious acts used to distinguish those who are agile and those who are not. I cannot subscribe to that. 

I prefer to work in a way that is iterative, incremental and to all intents and purposes is essentially agile. Probably 80% of the time I look to an external observer like an agile developer. I write tests; I like single branches in source code repositories; I pair with peers when it's appropriate; I like continuous integration; I use index cards where it makes sense; I deliver in increments aligned with stakeholder priorities. My working day looks and quacks the same way as yours, pretty much. 

However the agile religion prescribes against practices that I (and others) have observed are productive. For example agile jihadis often find architecture and design un-necessary activities instead choosing to allow design to emerge from coding activities. I disagree with that fundamentally since a shared understanding of where the team is heading is necessary for consistency. I do not advocate ivory tower architecture roles, but it seems that the dev lead plays the hands-on architect role in most agile teams anyway.  

I also believe that small quiet rooms are preferable for getting things done. Right now I am working with an agile team in an open space and the problem is that it is too social. The team is absolutely lovely and has bonded really well which means I get sidetracked all too easily. Perhaps this is a weakness on my part, but small, quiet rooms with doors are where I personally excel. I believe that "ADD" environments are sub-optimal for creative people (which is a view substantiated in the literature). 

Fundamentally open plan offices are about cheap installations for commodity workers, not about quality working environments for skilled professionals. 

I have been critiqued for my views on architecture and workplace by people who would consider themselves (and I too would consider them) agile developers. Their beliefs are self-evidently true to them, and my beliefs are self-evidently false. I am not therefore a part of that faith community and cannot therefore call myself agile. I suspect this is a relief to those who are agile :-) 

Jim

#

Have you heard of Agile Modeling? It's all about creating a "shared understanding of where the team is heading".  

http://www.agilemodeling.com/ 

I've always considered Agile Modeling to be a catalog of names of the many design practices that agile teams use. (Including XP - TDD is not the only design practice that XPers use.) 

FDD is an Agile method that emphasizes more up-front design than XP does, but both are agile methods. 

The ideas that you are ascribing to unnamed "Agile jihadis" are not the main-stream of agile thinking, though some people will make the occasional provocative statement in order to try to give a clue to people who have no conception of how unnecessarily heavy-weight their own ideas of software development are.

#

Hello Keith, 

I hadn't come across the agile modeling work before - it seems to capture formally much of what I tend to do informally. Very interesting. 

My experience of jihadis is that although they are a minority, they are vocal and often use "religious persuasion" to overrule perceived non-agile approaches based solely on that fact.  

Jim

#

Jim, 

Your post is interesting; made me smile. One concern I have is that what you seem to be talking about is in fact practices that are inherently non-agile by definition. Agility is built around people, and the uniqueness of people requires shaping the methodology; thats how I understand the application of any of the agile methods. So the agile religion to my mind is nothing different to traditional extremism, which is built on false understandings. It is intersting to here that the drive within ThoughtWorks feels like agile dogma/religion, as it seems like something fundamental has been missed (wood for the trees syndrome). 

Respect to your own authenticity. 

Nick.

#

Nice one Jim! There comes a point where there's too much energy spent on the religion itself rather than just doing the right/best thing at the time. One can get the best out of agilesque ways of working without having to carry the baggage of evangelism. 

Mike

#

Jim, 

A really good post. More of these are popping up all over the net these days and I can start to see that common sense is starting to prevail AT LAST. I have worked with and I glad to say not for Thoughtworks in the past. There business practices leave much to be desired and are often incongruent with the Agile principles they so sternly follow.  

The lack of detailed planning, light weight project managers, little if any usability testing /proper regression based on proper detailed and documented requirements testing means for me that they are only fit to deliver commercial websites. Agile can truly be like injecting Polonium into a large scale project or programme of work. We currently have 70% IT project failure rates and the whole concept of self assembly is flawed when considering anything which involves details and complex engineering and low fault tolerance. 

This Agile thing is a religion and having worked along side Thoughtworks where openness about the failings of Agile a death sentence (I thought Agile was all about openness :)) should you really need to keep your job. So believe me I can identify with your turns of phrase. 

I am very much a believer in bottom up project planning and team participation and ownership in every aspect of project management please see my Demming Vs Taylor post http://www.claretyconsulting.com/it/comments/taylor-vs-deming-and-software-development-part-2/2006-09-28/ and my post on staff motivation http://www.claretyconsulting.com/it/comments/motivating-it-project-teams/2006-10-04/. 

However, my personal experience of Agile is that it can be more trouble than its worth please see my case study post http://www.claretyconsulting.com/it/comments/agile-scrum-fails-to-get-to-grips-with-human-psychology/2006-08-17/. 

Having seen Agile software House operate over the years it is clear to me that this stuff is a real money maker. My take on the Agile manifesto runs as follows :- http://www.claretyconsulting.com/it/comments/agile-fees-feeding-frenzy/2006-07-27/ 

Having said all this speaking out against the evangelists takes courage as they are a really nasty lot. Please read my post:- http://www.claretyconsulting.com/it/comments/agile-conspiracy/2006-10-30/ 

I have spent years trying to do what get results and Agile is a form of IT Socialism and we know where Socialism got Russia and where it’s taking France these days. Talented staff with good ideas and freedom to express them combined with managers who have vision, courage, integrity and energy are the key to success. This has always been the case! Please see post on key management behaviours - http://www.claretyconsulting.com/it/comments/key-project-management-behaviours-and-attitudes-conducive-to-successful-pro/2006-10-18/ 

I personally feel Agile is an unnecessary distraction from what are the real problems which prevent successful LARGE SCALE IT projects from being delivered. Many of these problems are going to need real hard /painful changes to the way IT systems are built and managed and the quicker these take place the for the good of everyone, customers, developers and managers the better.

#

Hey Jim, 

I'm astonished by this post... I agree with every single word you said and feel the same about Agile and Religion in general... As I also work for ThoughtWorks I know exactly what you mean by "the agile dogma". 

Congratulations 

Cheers!

Author Name:
Email:
Author URL:
Comment:
Antispam:
Please type the following string (note that if the strings don't match, your comment will be lost... sorry!): 'CLJVC'.
 
Recent entries

Recent comments

Feeds:
RSS 2.0 Atom