Archive for the ‘Agile’ category

Italian Agile Day 2009!

July 30th, 2009

And so it begins! The sixth Italian Agile Day will be held on November 20th, 2009 in Bologna – Italy.

The conference has organically grown:

  • Milan, 2004 -> 100 attendees
  • Milan, 2005 -> 150+ attendees
  • Milan, 2006 -> 180+ attendees
  • Bologna, 2007 -> 260+ attendees
  • Bologna, 2008 -> 400 attendees!!

This is a free conference for the community by the community and instead of looking for commercial sponsors we accept donations. Real donations as in no minimum amount required and more importantly people don’t have to donate in order to participate.

If you are interested in knowing more about how that worked, statistics and analysis about this aspect take a look at:

BarCamp Apache Oxford: Agile and Open Source Development

April 5th, 2009

Got back to London after having spent the day in Oxford at the BarCamp Apache Oxford (#barcampoxford).

Between meeting interesting people and discussing various topics Gianugo and I led a session about Open Development and Agility. As you might expect the topic is very broad and it’s easy to get sucked into one aspect or another (and even one specific practice or another) but I believe we managed to discuss quite a few interesting things.

The discussion started by showing a wiki page I wrote back in 2003 titled OpenSourceAsAgileProcess. Yes, the page is kinda stale now but it was my way to try and focus the session on values and principles rather than practices.

Of course all sort of questions and opinions came up about colocation vs distributed, programming focus vs management/governance and so forth but I hope I managed to get my main point across:

I see little value in mapping exercises (being it mapping XP or Scrum practices to CMMi or Open Development or whatnot). I see value in discussing commonalities and differences in values and principles and drive everything else from there.

Now, values are so high level that it’s easy to agree on them and then go about implementing completely divergent practices. That’s where principles come into play – those 12 principles behind the Agile Manifesto that most people have never heard of (or at least forget easily about).

From my point of view principles are what bridge the gap between values and practices: use the principles to drive the practices that help you realise the values.

During the session we took a look at the 12 principles in question and it became quite obvious to me that one of the reasons why it’s so hard to adopt Agile fully – whatever that means – in a typical Open Source project can be nailed down to one single word in the first principle:

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

As there isn’t necessarily a customer in the common sense of the term. It might be a whole community, the single developers working on the project or something else entirely.

Will need to think more about this and luckily a conversation started on twitter among a few people following the BarCamp and we are going to try and discuss this further soon.

Thanks for the day!

Productivity and Quality effects of TDD

March 18th, 2009

In the May/June 2007 issue of IEEE Software magazine there was an awesome series of articles about Test Driven Development and I’ve just discovered that one of them – the main one – is now freely available: Guest Editors’ Introduction: TDD–The Art of Fearless Programming by Ron Jeffries and Grigori Melnik.

Go get it, read it all and spend some time studying Table 1 on page 28:

In particular the last two columns: Productivity effect and Quality effect

A new challenge

March 16th, 2009

As I wrote here my professional life boils down to a couple of things: Agile and Open Source. Within these I’ve done almost everything from software development to programme management, from coaching to facilitation, including a couple of ventures as owner and CTO.

I’ve spent the last 3+ years mainly in London working for ThoughtWorks and that has been the most mind-opening experience both professionally and personally. It’s mind-opening to work with people from all over the world (in my first project with ThoughtWorks we had 15 different nationalities) and to realise that there are enlightened people who really care about values and principles and doing the right thing. I learnt so much!

But the time has come for me to move on to new pastures and as of today I’m the managing director of Sourcesense UK, a European Open Source systems integrator providing consultancy, support and services around key Open Source technologies. Go check the website :-)

The sadness for leaving the greatest company I’ve ever crossed path with is today replaced by the excitement for this new opportunity and I honestly hope I’ll be able to bring with me everything I’ve learnt in these past few years.

Open Source, Agile, technology, business and me

February 27th, 2009

Warning: rambling thoughts with loose connection :-)

I’ve recently come to realise something that, in retrospect, is quite obvious. Long before my name got associated with the Agile movement back in 2001/2002, I was known (friends, colleagues and business acquaintances) as an Open Source enthusiast.

My first experience with OSS goes back to 1994 when a software development magazine I used to buy had a Slackware 2.1 CD in boundle. At the time I considered myself a hardcore C and C++ developer (so much so that my first website in 1996 was called C++Warriors, hosted on Geocities) and I couldn’t believe my eyes when such a wealth of interesting, complex and freely available source code got into my hands.

After that enlightening experience my relationship with OSS kept growing so much so that I founded a company called OSWay – The Open Source Way – back in 2000. We did all sorts of things from partnering with SuSe Italy, to develop the world first Kylix enterprise-grade POS application (there used to be our case history on Borland‘s website before the CodeGear split). We sold part of the company to a publicly traded Italian company to raise funds and develop products but this is another story :-)

Over time I got more and more into not only the technical side of OSS but also the approach and reasoning behind it. In fact when I started delving into Agile it struck me how many things in common it had with a typical OSS approach to software development. In particular with what EricRaymond‘s TheCathedralAndTheBazaar described. I also created a page on the c2 wiki titled Open Source As Agile Process back in 2003 highlighting what was IMHO in common.

After that though I kinda stopped talking and writing about OSS. Does it mean I don’t care anymore? Absolutely not! but somehow I stopped making it visible, it just became second nature. And this has already been happing with Agile as well. I guess the only reason why I’m still actively involved day in and day out with the Agile community is because I organise the Italian Agile Day and the Italian Agile Movement and this forces me to be proactive because I care so much about them. And probably that’s why I try hard pushing intermediate members of the community to be more involved for all the good reasons nicely explained by Kathy Sierra in her 2006 post How to Build a User Community.

Now finally both my passions (that is: Open Source and Agile) have or are about to cross the chasm (with all the watering down involved but still!).

Italian Agile Day 2007

November 28th, 2007

The fourth edition of the Italian Agile Day is over! It’s a free, one day conference I organise every year and for the second year in a row I managed to fund it using donations via PayPal instead of looking for commercial sponsors.

The remarkable thing about this edition is that we went from 180 attendees last year to over 260 this year!!

Some facts:

- for the first time we moved from Milan to Bologna (part of my plan to conquer the whole country…)
- 3 rooms for 3 parallel tracks
- more than half the people had never been to an Agile Day before
- Tim Mackinnon kindly agreed to be our (great) keynote speaker

- 4 sessions for newbies
- 5 experience reports
- 1 three-hour long workshop on User Story writing

– many OpenSpace sessions

- a Futurespective on the Italian Agile Day 2010 (and 2009, and 2008)

A group of people then went for the usual post-Agile Day dinner and this is how the starters table looked like :-)

 

I know I say this every year but indeed it was the best edition ever even though, looking at the ideas for 2008, it’s gonna lose this position in 12 months :-)

The Anti-IF Campaign

November 26th, 2007

I just got back from the fourth Italian Agile Day and I’ll write more on this in the next few days but I want to share with everyone an interesting Italian campaign my friend Francesco Cirillo – the oldest (not as in age :-D ) and greatest Italian eXtreme Programmer – has launched:

It’s called The Anti-IF Campaign (the page is in Italian)

It reads: “anti-if campaign, you can quit if you want to!”

Francesco talk at the Agile Day (about, among other things, proper Object Orientation) was funny, entertaining and full of meat as usual. Imagine a great public speaker addressing the crowd wearing an Anti-IF t-shirt and saying, while showing snippets of real code with a McCabe’s Cyclomatic Index > 110, “be honest guys: you like this code, don’t you!”

I believe the campaign should have international visibility and that’s why I’m writing this post. Go Francesco, go!! :-)

Why Business Acumen

March 24th, 2007

Lots of people (including me) keep saying you need to understand the fundamentals of Agile before tinkering with it. We keep saying working in iterations, doing stand-ups, doing TDD, sitting altogether in a room is not enough to claim you are “doing Agile”.

This is true for any approach, Agile or not: you have to understand how, when and why it works before starting to customise it.

IMHO this is the main reason why you are supposed to apply an approach sort of “by the book” before starting to change it (through retrospectives, of course! ;-) ). This is also why people talk about Shu Ha Ri as a way to approach Agile.

A common advice is to always change things once you got the core values behind them. Even better once you got the principles who fill the gap between values and practices. The real problem, as usual, is the complexity surrounding these aspects and the far-from-the-books reality of the day to day troubles.

To help organising ideas and possibly cut through this complexity many interesting and useful perspectives have been proposed both on the Agile side of the pond and the other. For example, David J. Anderson’s Recipe for Success:

“Focus on Quality, Reduce Work-in-Progress, Balance Capacity against Demand, Prioritize”

Nonetheless people keep having problems with the complexity that often prevents us from seeing the bigger picture. We have problems in cutting through this complexity and go back to the building blocks.Most of the people I meet though don’t even consider these building block, their focus is on the process/approach/method/methodology itself.

This is limiting, this is not why we have (and discuss) methodologies in the first place. This is what I was referring to at the end of my “From Technicality to Business Awareness: now what?”.

Everyone agrees that not all the processes should be managed the same way. Processes differs in particular depending on the four Vs:

  • volume – high volume ones can exploit economies of scale and be systematized
  • variety – high variety ones require enough built-in flexibility to cope with the wide variety of activities expected of them
  • variation – high variation ones must be able to change their output levels to cope with highly variable and/or unpredictable levels of demand
  • visibility – high visibility ones add value while the customer is present in some way and therefore must able to manage customers’ perceptions of their activities

Generally speaking high volume with low variety, variation and visibility make it simpler to have low cost processes while low volume with high variety, variation and visibility all increase process cost.

Nonetheless all these situations have common building blocks and to make them very clear and easy to understand and remember I’ll borrow some definitions from the business world:

- cash generation
- return on investment (as combination of margin and velocity)
- growth
- consumers

That’s it! Everything else emanates from these core ones. These are what any process/method/methodology/approach/whatever should ultimately enable. If they don’t they are getting in the way of the fundamental building blocks. If they don’t it doesn’t matter whether your are doing all the good Agile stuff or not: you are not doing the right thing.

These building blocks exist, with the appropriate adaptations, at every level of the supply network of any organisation. From the strategic level down to the operational level and that’s why any process MUST address them.

In the next few posts I’m going to write a bit more about these building blocks, why they are relevant and I’d like to introduce the three levels which constitute any business operations: the operation itself, the supply network and the single processes. This way I hope that by the end it will be clear why I’m putting together all these things.

From Technicality to Business Awareness: now what?

March 20th, 2007

The single most important benefit Agile approaches brought to the IT industry is neither technical, nor process related, nor organizational. Let me explain.

From what I can remember, before the Agile movement emerged, the software engineering crowd rarely moved away from the technical argumentation. I think the only time it moved a little was at the beginning of the pattern movement which, by the way, was blamed by many to contain a romantic element like the research of the “quality without a name” clearly at odds with the mainstream technical soul.

Issues like what values and principles stand behind an approach and what beliefs are considered true were almost always lacking while others like in what contexts those values, principles and beliefs are meaningful were usually present in a latent form (aka: you needed to look hard to find them scattered as they were among all the technicalities).

Agile approaches, on the other hand, start from the values and the principles. The beliefs are a little more explicit than before even though still not fully uncovered or better, not everyone yet is ready to accept even the possibility that there might be beliefs behind them which might not be true for every single reality.

Yet again this is not what I consider the single most important benefit brought by the Agile movement to the industry: the single most important benefit is a sort of Business Awareness.

I finally see and hear people, regardless of their official role, talking about business value and how they can help delivering it. Not just theoretical discussions about it but actual actions, contributions, body of knowledge, experience sharing. I see technical people interested in return on investment, opportunity cost, GDP and sometimes cash flow.

I’ll go so far as to say that nowadays if a team is doing all the good Agile/XP stuff like TDD, refactoring, continuous integration, etc, etc but I don’t hear people talking about delivery of business value I’m usually worried because more often than not it means some fundamentals are missing and people are in a sort of “agile Assimilation mode”.

As the title of this post says: now what? Well, this is the first step! The second actually. Often business value is repeated so many times it becomes an empty mantra and even I cannot stand it anymore. To make a parallel is like repeating ad nauseam OOP or TDD or pick_up_the_thing_you_prefer: it’s not gonna make it happen! Now we are aware of it but we still don’t know how to affect it, what it exactly means, why it works the way it works and what we can do about it.

For the same reason we keep saying that we need to understand values, principles and beliefs behind Agile in order to fully understand it and be able to adopt it and adapt it to our reality we need to understand the fundamental building blocks of any business in order to understand why we do what we do, regardless of the chosen approach.

The next step is developing Business Acumen and I hope to find the time to write more about it in the near future.

Get Lean. Get Innovative.

January 23rd, 2007

From an interesting article published on IndustryWeek: “Companies that consistently innovate are ones that invest in working conditions that enable workers to be creative. Simply ordering people to work harder and innovate probably isn’t a great strategy.”

Update: just realised the article is discussed in a post on one of the best blogs out there (IMHO): http://www.evolvingexcellence.com/blog/innovation_illusions/index.html

Among other things it discusses “where to find the time needed”