How Agile and Open Source work together in (nearly) perfect harmony

This article is based on the talk I gave for the Red Hat Agile Day in Raleigh on October 11, 2016.

The conversation about agile and Open Source usually starts with an interruption in this form:

Agile will not work in an Open Source context because…

That’s usually how a conversation will start, and that’s the motivation behind this talk because I feel that’s there’s a lot to learn on that, especially if we continue to listen after the word “because”.

One example of possible cross-fertilization between Open Source people and Agile people was given by Jim Whitehurst during the opening keynote.

Jim presented briefly the Open Decision  Framework that is meant to help making decision in an Open Source way. It’s on github for you to try, learn and modify!

This presentation was intended to discuss the collaboration mechanism in open source software development and how those mechanisms are evolving to tackle more complex problems.

If we want to simplify the explanation, we could say that one individual has a problem. She or He will build a piece of software to tackle this problem. She will do that openly, because it’s build on top of other open source software, or it works with other open source software, or maybe because she wants to enable people that have the same problem to use the software, to look at how the software is made and even to contribute to this software. Contribution could be comments, bugs, suggestion for improvement, or even patches…

That’s how collaboration works!

People have problems, they solve their own problems writing pieces of software, and others with the same, or nearly the same problems will use and even contribute to the piece of software that solves those problems.

And that’s how it works and how it continues to work for a lot of software, and we can see that some of the software have a few number of maintainers (some time few is one) even if the number of users is huge.

For a lot of software the developers are the main users of the software, real users, with real production need.

So when you are trying to tackle more problems at the same time, you will need to find a way to foster contributions to avoid the “only one maintainer” risk for your software (that could be really dangerous, if you plan to use in production, distribute or support this software).

How to contribute, how to recognize small contributions to encourage the next steps, how to announce your intention early so your idea could be challenged, the implementation of your idea could be challenged and at the end your code is better, accepted and merged. How to avoid the counterproductive effect of giving too much power to people that were here at the start and so on…

I would recommend The Art of Community by Jono Bacon as a starting point for studying that 🙂 or to look at all the resources available on to learn more about Open Source. I am adding that especially because I add three questions after the conferences that started by: I didn’t ask the question during the Q/A session because I feel I don’t know enough about Open Source… And after that, the question was great, and I would have loved to have this question during the Q/A session :).

Even if sometime people tend to submit code without discussion expecting that a good solution will win the adhesion of other people (some time it works, and some time it’s not).

All those aspects of fostering collaboration are important, and we could expect that projects that forgot to have a good collaboration code, with “no assholes rules” for example, will probably not stay relevant for long.

The diversity of the community is one of the important factor that will improve the relevance and the quality of the solution that will be built. If we are all the same, all similar, we will probably rally easily one point of view. By having different point of view of the problem that we are trying to solve, we could improve the solution that is built to solve it.

Impossible Mission

The developers are not the users anymore, and we can see that when we look at the comments of people who attempt to use the first release of some software:

  • Impossible to install
  • Impossible to update or upgrade
  • Impossible to debug
  • Impossible to operate

The challenge is to welcome the voices of the real users, that are unable to contribute with code to the software. And to give the ability to the contributors to become proxy for real users of the product, so they could improve the conversations they have on the problem they are trying to solve and on the implementation strategy to solve those problems. That’s where the role of the contributors that are working for companies are especially important because their users, customers, partners are the real users of the software, and they need to be the proxy voices of those users.

And this could change the way we are envisioning the open source model. It’s not only solo engineer work…


In 1986, Takeuchi and Nonaka studied the teams that were building highly successful products that were disrupting existing well installed product on the market. Their study, published in the Harvard Business Review, is titled The New New Product Development Game.

In the new new product development game Takeuchi and Nonaka studied the reason that make teams to build products that were able to take all the market because those products were really better than the others.

What those teams that built disruptive products had in common?

According to the article (not a long one, you should read it), here are some of the important aspects:

  1. Built-in instability: Broad goal, Strategic importance, Challenging requirement, Funding and Freedom
  2. Self-organizing project teams: Autonomy, Self-Transcendance, Cross Fertilization
  3. Overlapping development phases: It’s not a relay team, it’s a rugby team (yes, they used the term SCRUM for the first time referring to a team, and that’s  what inspired others to create an agile methodology with this same word). Each team member feels responsible for – and is able to work on – any aspect of the project. Cross functional teams, Small teams (under 12 people to enable direct communication), End to end responsible to deliver
  4. “Multilearning”: Multilevel learning, Multifunctional learning
  5. Subtle control: Selecting the right people, Creating an open work environment, Encouraging team members to go to the field, Establishing an evaluation and reward system based on group performance, Managing the differences in rhythm, Tolerating and anticipating mistakes, Encouraging suppliers to become self-organizing
  6. Organizational transfer of learning


So if I go back to the challenge that is to welcome the voices of the real users, that are unable to contribute with code to the software.

And to give the ability to the contributors to become proxy for real users of the product, so they could improve the conversations they have on the problem they are trying to solve and on the implementation strategy to solve those problems.

One solo engineer, in charge of one technical component, will not be able to listen to the real user voices to fix problems that are more complex than those solved by one individual technical component. And the real user will not necessarily be able, or willing to assemble the components by themselves.

The classic way to organize the contributors by grouping them in technological area that make a technical sense, limits the ability for the technology to solve needs that cross the technology groups.


One diverse cross-functional team, responsible end to end of the delivery of the software, could welcome the real user voices. And could solve more complex problems, cross technology problems, than those solve by one technical component.

How diverse? How cross-functional? What end to end will really means in a specific context?

Let’s imagine that we answered those questions in one specific context.

This diverse team will work together to reduce the feedback loop so they can listen to their users. That is the try – learn – modify aspect of the model that Jim was referring to during the morning keynote.

There’s several aspects, The first one is being able to listen to the real user voices (and not to mock them, or to prove them wrong).

That means that your product managers, or your product owners are member of the team. And that’s probably in this area that there’s a lot of differences between “standard” agile practices and what open source projects are doing. This is probably the area where we could import and adapt a lot of practices that will help to understand what and why a user want something.

That means also that we will benefit from having team members that will be in direct contact with customers from time to time… on the field…

The second one is to improve the whole production work flow in order to be able to deliver a new release of the software, so the user could test the idea, and give feedback, and so on…

That’s challenging when you want at the same time, to deliver new features and to offer a long term support.

That’s challenging when a large part of the production work flow is shared upstream with other contributors, that could come from other companies.

We need at this point to recognize that improvement downstream will be meaningless if we are not solving the problems upstream.

And that could prevent us to deliver the value to our users as often as we could need to.

And maybe that’s challenging because we need new features to become available in an existing software continuously, and we don’t need new release with painful updates and upgrades.

This last aspect demonstrates why the end to end responsibility needs to include important aspect for user like install, update, upgrade, debug, operation, and that those aspects should not be delegated to another team.

This last aspect shows how the architecture of the product is impacting the potential value we could deliver.

So far, we covered 3 aspects, what features and why the user need those features, how we are building the product, how the feature are implemented.

On all those aspects we need to reach a shared understanding and agree that we will try-learn-modify on each of those aspects.

redhatagiledayOn those 3 aspects that could be formulated as value, people and process and technology.

On the understanding the value, practices like story mapping, impact mapping, backlog refinement, could be highly valuable.

On the people and process part: Retrospective is the first one that came to mind, value stream mapping, constraint theory are directly following as they will help to bring this systemic sense that is absolutely needed.

On the technology part, I will just reinforce the need for a really modular technology, and the need to formalize the architecture principles accordingly to the business objectives and to understand the tight connection between those two.

On all those aspects, there’s a lot of agile practices that could be (and are) used in open source projects (I don’t mean a specific framework, I mean specific practices to solve specific problems that fit the distributed organization of open source projects. That means also that a lost of experienced agile practitioners could bring a lot of value in the Open Source world (we need you and we are hiring 😉 ).

What I understood is not what you understood, and that’s not because one of us is wrong.

It’s not a solo work, and it’s important to invest in a shared understanding as a diverse team to be able to tackle more complex problems faster.

The three aspects need to be taken care of independently:

  • You need to invest time to understand the value, the benefit for users, as a diverse team.
  • You need to challenge the implementation of the ideas that will bring this value to users as a diverse team.
  • You need to reflect on your organization and processes as a diverse team.

The 3 aspects are influencing each other.

We tend to think that the value will directly be represented in the technology, and to forget that the 3 aspects will influence each others.

If we have a fixed waterfall release schedule, we will have a big planning session upfront, people will tend to force all their ideas in it in the hope that they will get out of the process at the end.

If we have a siloed organization with a lot of hands off, that will have an impact on the value you can deliver with the technology.

If we defined in your value that there’s a need for non disruptive upgrades, that will have a huge impact on our ability to use a better / newer technology to solve our problems.


To come back to the question I asked before: How diverse, how cross-functional and how end to end the team should be?

I would say that the answer is as much as we can, because it will have an impact on our understanding of the value we could bring to user, our structure will define the structure of the technology, and the way it could evolve in the future.

The open source way continues to evolve, cross-fertilization with agile practices benefits to both.


The header picture is from Jason Hibbets (CC BY-SA 4.0)


25 years ago, I have been told that I should read autobiography of famous people to understand how they found their way to achieve great things.

I did not understood the advice. My understanding was that looking at famous people was a little bit like what poor magazines are doing following the life of rich and celebs.

I was wrong.

When I read Benjamin Franklin autobiography in 2016, I understood the advice; a little bit late; I discover why it was so interesting to read people who are telling the stories of their life.

Autobiographers are trying to share what they learned during their journey in hope that it could help others.

There’s probably some ego involved in the process, and when you read autobiography, you could need to deal with that, with a nice smile on your face: yes, sometimes what we are doing is definitely ego driven.

To give you an idea of things I should have discovered earlier:

  • how he found a system to create good habits (based on a calendar where you mark your success and that helps you reflect on what needs more focus or improvement)
  • how he discovered the ideal size of a group for a meaningful conversation (the answer is maximum 12 people)
  • how he refused patents for one of the invention because it was for “the good of the people”
  • and many other things

The question is now, what is the next one I should read?

Contribute to the Success of OpenStack

During the OpenStack Summit in Austin, Mark McLoughlin and I delivered a talk titled: “Contribute to the Success of OpenStack”.

Our talk was meant to explain how we were inspired by agile values and principles to improve our internal organization, and how we thought it could impact our ability to contribute more effectively to the OpenStack project.

One of the idea that is often used to describe the way companies are contributing to open source project is that you need at some point to wear your company hat to represent what your company needs, and some times you need to wear your upstream hat to represent what the project needs. We speak some time of the need to balance between upstream and downstream.

Our point was to say that this idea represents the reality perfectly well in projects were the developers are the users of the projects. In this case they are solving problems they are facing on a regular basis.

The OpenStack project is more complex in this sense that the developers are rarely the main users of the project. They don’t have to operate a large scale cloud on a day to day basis.

So, to be able to understand the needs, and to propose effective solutions, the developers of the project need to hear from the real users. That’s were they need to wear at the same time their corporate and upstream hats, because the customers and partners of their company represents the needs of the real users, and wearing those hats they are bringing a lot of value to the project by proxying the real users.

We also explored the fact that when the reaction toward one of the idea that we were bringing on the table was really hostile, there was probably good reason for that, and that was great value for our company that the project was bringing to us. This obvioulsy can only be achieved when the maturity of the project is high enough, especially on the corporate diversity aspect.

We covered after that how we were organizing the teams that are contributing to OpenStack by giving them a clear focus to solve some real user’s needs, and end to end responibility to solve this. Those teams are primary responsible for contributing to some of the components, but the components are not driving the structure of the organization.

For each team, we want the team members to understand their mission, their goals, and to drive their contribution in the value flow.

Here is the recording of the session:


For the next Summit in Barcelona, I proposed 3 talks:

  • The first one with Maria Bracho: “Providing Tooling for Effective Collaboration”
  • The second one with Nick Barcet: “Does your voice count in OpenStack? Yes!” this one could be consider as a followup of the talk given this spring
  • The third one: “Raising the awareness on diversity”, one workshop during the last summit was an eye opener for me, and I would like to continue the effort to raise the awarness on that topic.

You can vote on your preferred presentation here:

If you want to vote for the one I submitted search  for my name: monville 🙂



Header photo by William White

Happy or not?

Tracking the mood of the team is something that agile practitioners are doing for quite a long time. For example, in 2006, Akinori Sakata, explained in this article the use of Niko-niko calendar.

The idea is to tighten the feedback loop, and to detect problems even before they become really conscious to an individual, or to the team.

By exploring how we feel at the end of the day, it helps us to take a step back, and sometime to express what is not going well from our point of view.

So, I used it for teams, co-localized or distributed, for quite some time. The tooling is really simple if you only want to deal with the mood of one team.

At some point, I wanted to expand this to track the mood of an entire company, so we could be able to get more feedback, and to adapt what we were doing.

I had a look at what was on the market, and at this time, provided a tool to allow a quick feedback using a smiley ( 🙂 😐 🙁 ) and to leave a short text message associated to that.

There’s now a lot of tools on the market that are exploring employee engagement, like Niko-Niko or Happify.

Is it a tooling problem?

Obviously the quality of the tool you will use, will have an impact on your ability to run analysis, or to scale the mood measurement, but my take after several experiments is that it’s not a tooling problem.

It’s how you will take into account the feedback and act accordingly.



You could also be interested in this article Manage Your Emotional Culture published in the Harvard Business Review at the beginning of the year.




Sequence vs Priority

There’s sometimes conversations within teams about the responsibility of prioritization of backlog items.

The problems is the end result of this conversation. Whoever could have this responsibility, that could be the Product Owner or that could be an agreement within the team, the results will look like:

  • 80% of the items in priority 1
  • 15% in priority 2
  • 5% in priority 3

That leads to end-less discussion to find what could be priority 1, 2 or 3, and that’s not really helping to decide by what we need to start the first iteration, and what could be the meaning of it, and what could be the meaning of the next marketing release.

Near the planned date of the marketing release, people starts to worry about the priority 1 items that could not be included in the release. Suddenly the meaning of priority 1 became “must land in the release”, and people are focused and what will not land, instead of what will land in the release.

That’s the reason why I am trying to avoid the “priority” word. Instead I am asking in which sequence the items should be delivered. I am interested in the sequence of the items that could be included in the next 2 iterations. What could be the meaning of the iterations, and what could be the meaning of the release for the product and its users. It’s not priority, it’s a sequence.

Another illustration of sequence versus priority is the way the airlines are boarding their plane. Some of the airline are boarding first the business class and give a “priority” access to frequent flyers. That’s not solving the problem of boarding a plane as fast as possible. During my last visit in Austin, I have seen that Southwest Airline, organize the boarding in sequence with indicators inside the boarding terminal. This is a better attempt to fix the system.

That means that we need a tool that is able to record that sequence. A wall with post-its can do that. Most of the task/project tracker are not able to do that.


Header picture from Ryan McGuire.

What science knows about happiness that could tranform OpenStack

A short article to publish the video recording and the slides of the talk I gave today at the OpenStack summit in Austin.



Header picture is from Ryan McGuire.

The after meeting feedback

I usually ask for feedback regularly during the meeting I facilitate. I use several techniques to do so depending if it’s a short feedback before a break or if we have more time at the end of the meeting.

One of those techniques is the ROTI, the Return On Time Invested.

I ask the participant to evaluate with their 5 fingers. If their time was well invested: 5 if their time was well invested, they have learned and contributed, 1 if it was not the place they should have been. I am asking them to answer the question all at the same time.
The name itself should led the participants to understand that I am asking them to value the investment of their time. I am not asking them to evaluate me, or to give me a grade. But it’s not necessarily working this way each time.

One thing I have tried after listening to Heiko Fischer is to tweak the question a little bit.

I am asking the participants to evaluate how the meeting was awesome on a scale
from 1 to 5?

I let the people being cynical about it…

And then ask a second question: On a scale from 1 to 5 how did you contribute to make this an awesome meeting?

The learning there is that there’s no magic, the meeting is a result of our commitment.

Obviously, it’s not needed in all environments, but sometimes it could be useful.



Header picture by Ryan McGuire.