Tuesday, 27 November 2007

Italian Agile Day 2007

Great event in Bologna, with some 300 participants and sessions going on the whole day across three different tracks, from classic sessions for beginners, to open space sessions for advanced discussion.

Very interesting relations and ideas were exposed, with most of the speakers sharing real life experiences. Most of the discussion revolved around how to introduce agility in a team, how to track agile projects, how to apply agility to legacy code, how to agile contracts, and even something about agility and ISO 9001.

I was very pleased to see how agility is gaining momentum even in Italy, despite our industry has been almost sinked in the last few decades, and the IT field is then suffering for the lack of serious engagement.

Below a personal list of concepts I have noted down for my future meditation and adoption (this list simply reflects my current state of thinking and professional needs; DEV=development, PM=project management, LGY=legacy):

  1. DEV - Make stories/tests from bugs

  2. PM  - Reduce the work in progress

  3. LGY - Refactoring cycle: 1) Select; 2) Break dependencies; 3) Write tests; 4) Refactor

  4. LGY - Test used/modified code only

  5. Use a wiki for tracking

  6. Use a Progressive contract as an umbrella/framework contract over multiple Fixed Price contracts for new development phases; use Time & Materials for maintenance and small changes (max 2 days).

The one thing I would criticize does not relate to the event itself, it relates to the content of most relations. Even Tim Mackinnon, the keynote speaker and well known agility pioneer, said it: you need OO technologies to be agile. IMHO, that is plain wrong, and we should simply be talking about component based development, that is applying the most basic engineering design principle: modularity. This is not a cavil, the nowadays widespread emphasis on OO technologies is making a lot of damages, mainly among the younger professionals, all in the name of this idiotic idea that you can ultimately solve problems with tools-based/frameworks-based development. Welcome to the shop...


  1. Hi, I was at the Agile Day too: great event!!

    As I see it the OO references are NOT about tools/languages/framework but about thinking. OO is first of all a way of thinking.

    I can suggest a great book about this "Object Thinking" by David West

  2. Hi Giangio,

    > OO is first of all a way of thinking

    Yes, I am aware of that, and indeed what I am saying is: that is the culprit!

    What software design asks for is "modularity" and related principles, like high cohesion and low coupling.

    Now, on the conceptual level, this can be done with or without OO, which is the main point here.

    Second, even at strict technology level, I claim in most scenarios OO is far from being the best solution.

    For instance, favour composition over inheritance.

    For instance, you now have functional features in C#.

    Etc. etc.