Back from Italian Agile Day where Stefano Fornari of Funambol with Marco Abis of Sourcesense animated a debate about mixing Free/Libre Open Source Software (FLOSS) and Agile development methods. I used to think that there was no issue because, after all, free software is a way to release software and it’s not a development method like many still think. Strictly speaking, what makes software free and open source is its license, not how it’s developed. But a lot of FLOSS is indeed developed in similar ways, with distributed teams, volunteer based contributions, merithocracy based leadership and so on. Some of these traits make FLOSS and Agile difficult to mix.
At Funambol we love Agile, me included, and we love to try new things so we proposed an experiment mixing Agile methods with community based development into a new Funambol Code Sniper program. The slideshow below summarizes the basis of this experiment based on the assumption that the community is the Product Owner of the new software. The community will have to define the user stories and also to define when they’re DONE.
There are still a few grey areas, the biggest being how to distribute rewarding to contributors. I think they should be proportionate to the efforts put into the project. Even if it is possible to evaluate code contributions proportionally to story points (or hours/weeks), code is only a part of software development. Bug reporting, quality assurance, feedback and even writing user stories is important as well: how to evaluate these other kind of contributions? What do you think?
Gianugo Rabellino has given me more food for thoughts about my research on Free/Libre Open Source software development and Agile/Scrum methods. His latest post contains a sentence that summarizes my key finding so far:
At the end of the day, this means that the customer is there – it just happens to coincide with the community as a whole.
Talking with my Funambol colleagues, the pragmatic agilists, and looking at Ross Gardler presentation below, I have the confirmation that the Pentaho guys are on the right track with Open Scrum. I also learned that it’s better not to use the word Scrum if it’s not The Scrum you’re talking about. With that in mind, I’m now focusing on best practices for communication between developers distributed around the world (more in latest posts).
Funambol engineering team uses the SCRUM methodology to develop software. It’s a very interesting method that seems highly compatible with free/libre open source software development habits. It mandates fast release cycles (like the release early/release often mantra), teams that can self-organize. SCRUM also mandates fixed time (2 to 6 weeks) to complete a development cycle (called iteration or sprint). This last part doesn’t seem to be very compatible with contributions by volunteers.
I’ve been looking for other free software projects that use SCRUM internally to understand how they involve external contributors, volunteers, in strictly time constrained release cycles. Pentaho wiki has a very interesting paper on the topic, but I still don’t understand if they have established a process to assign user stories to volunteer contributors.
I wonder if some have tried and failed or nobody has ever tried this at all.