Monday, August 9, 2010

What Am I Missing?

So Agile2010 is underway this week and due to the eternal constraints of time and money, I'm not there. I'm catching some of the buzz vicariously via Twitter and starting to miss ... well, what am I missing?

Based on past experience, I know I would be enjoying myself if I was there. I know the intense and intimate gathering of the AAFTT group would fill my brain with ideas that would percolate throughout the year. I know the energy and passion of @unclebobmartin would be contagious. I know the wisdom of a seemingly off-hand comment by @RonJeffries would reveal itself to me about a week later. I know a session by @jbrains or @GeePawHill would make me realize, yet again, that my understanding of agile development is incomplete and there's still another layer of mastery for me to pursue.

Oops, that's right! Those last two didn't make it on to the program, did they? And not being there gives me a chance to reflect once more on what is in the program. Of course, there's some truth in the observation that it's not really about the program, it's about the people and the chance to reconnect with old friends and meet new ones. But I think that's really only true if you're there on a speaker's comp. If it's costing you $3000 to be there, there better be some damn good content in the program!

Let's go back to basics. What is absolutely essential for a successful agile project? From my developer-centric POV, it's good developers. I don't believe that agile only works with rock-star developers. But it only works with developers who are dedicated to the concept of the software craft - that we are professionals and we work every day to hone our craft. This means working continuously to improve our understanding of SOLID, TDD and clean code. These aren't skills that you master in a 3 hour tutorial. These are skills you develop throughout an entire career.

What do I see dominating the Agile2010 program? Lots of good sessions on learning, communicating, coaching, creativity, adoption strategies. Sessions that I would probably come out of saying "interesting" and "thought-provoking". But ultimately, sessions that were easy to digest. Not sessions where I encountered concepts that are fundamentally difficult and require hard work to master. Not sessions where I struggled to write good tests and emerged with a determination to rework and discuss the examples over the coming weeks until I finally felt I understood it.

Perhaps I'm a minority. @HackerChick tweeted about a tutorial on TDD where only a quarter of the attendees showed up with laptops, prepared to get their hands dirty. Perhaps Agile2010 isn't the conference for me. A conference where the technical track is only 1/15 of the program. And the technical track includes sessions on "The Butterfly Effect" and how to "Walk and Code". But I worry about another crop of agile converts, filled with all the soft skills and strategies they need to succeed, headed for failure because they don't know about the hard work and dedication needed to build that essential ingredient: the agile developer.


  1. Sorry you didn't attend the conference. I did, and found it wonderful. @jbrains ran the extreme fish bowl, so you would have gotten ample opportunity to hear from him. Bloody stupid johnson teaches agile was amazing. And there where 16 stages, so there was always a technical talk if you wanted to see one (which I did).
    I should note that the Butterfly effect was a great talk on how dev teams have responded to metrics placed on the team. Full of great insights, including my favorite of the conference from Michael Feathers who said "I think the key (in what's going wrong) here is that the dev team is creating code coverage for someone else, instead of for themselves." give it a week, then it will hit you how insightful that comment was.

    I deeply agree that there should be more technical talks, but I don't in the least blame agile2010. I was at most of them, and they where not full. I think agile2010 is accurately measuring judging the demand, I wish there were more people showing up wanting to code. of course they could just go to the code retreat afterward on saturday. it's free! if you're are already here it's barely any money at all, and even cheap if you just flew in for the day!

    Hopefully we will see you there! Of course with 1,500 devs at agile2010, even 1/15th would overfill the venue.

  2. I can think of a couple of reasons. It is mostly senior employees and managers that get the budget to go to the expensive conferences. The developers tend to go to more focussed training.

    Also if you think about the stages that developers and organizations go through with agile, they usually start off with the technical practices, which can be learned from books, but proficiency comes with practice. Even then the developers are going to feel much more comfortable exercising their technical skills and making decisions that effect the way things get programmed. The management aspects are however more difficult to grasp. If a manager has been CSPO certified but is otherwise uninterested or unengaged in agile and lean, or thinks it is only something that is relevant to developers, then this is the ideal candidate for visiting a conference like agile 2010 and finding out how his management practices and philosophy can catch up to the technical practices that the developers have already been working with. A conference is ideal for this, as they can talk with others and share knowledge and go into detail on special circumstances.

    But it is all a difference of perspective. Apparently a lot of people are involved in situations where management has applied scrum, yet the developers neglect to apply XP practices. I suppose this might be your situation. I have never been in a situation like that, but I have experienced the reverse. Competent developers, that learn and apply the XP practices fairly well, and did so without the help of a conference, maybe even with a basic scrum process, involving only the developers, struggling to make further progress because management are simply not as engaged in agility as the developers.

    I am perfectly happy with conferences like agile 2010 focusing on soft skills and management topics, as I perceive that is both where the need is and the type of material that the conference format lends itself well too.

    You can implement XP practices as a developer without attending agile 2010 but it is challenging to effectively manage an agile organization without attending conferences like agile 2010.

    Perhaps you would prefer conferences like the Software Craftsmanship ones, or ones dedicated to specific technical practices like XP, or tools like RubyConf, or even computer science ones like ones that focus on advanced algorithms and data structures.

    Personally I worry about the crop of agile converts, filled with the knowledge that TDD, refactoring, and pair programming are good, heading for failure because they don"t have a basic understanding of core computer science basics, like algorithms and data structures, functional programming, optimization, tuning, reverse engineering, hardware, artificial intelligence, or the skills to work in a self organizing team such as the importance of culture in software development, communication skills, understanding the business, understanding finance and contracts, optimizing the value stream and the legal aspects of licensing etc.

    See it is all a matter of perspective. What is important is whatever you lack, whatever is outside your comfort zone, whatever you have trouble with. And for each of us that is something different.