Alexis Monville is building high impact sustainable open source organizations.
Alexis joined Red Hat in 2014 with eNovance acquisition. Alexis brings more than 20 years of operations and management experience. Alexis was Chief Agility Officer of eNovance, tasked to create an agile and collaborative culture in order to deliver continuous innovation and customer value – transforming how organizations use OpenStack cloud services. Prior to joining eNovance, Alexis founded Ayeba, an organization and management consulting and coaching firm that worked on agile organization transformation, also inspired by open source projects organization. Prior to Ayeba, Alexis held several esteemed government positions.
Alexis holds degree in Mechanical Engineering. He is an active speaker and thought leader in the fields of management, agile transformation and happiness, participating at industry events such as Openstack Summit, Open World Forum, Agile Lean Europe...

Personal Links

Verified Services

Tag: organization

The median answer to that question is 7 in the World Management Survey. The results on that particular item demonstrate how false perceptions come into play when we are evaluating our own company and our abilities.

As discussed in the article, Why do we undervalue competent management, false perceptions undermines our ability to evaluate how well (or bad) or company is run. The fact that 80% of drivers rate themselves above average – I am part of those – is an illustration of the kind of biases we are dealing with.

A glimpse into the most influential management practices on the results of an organization can already give you an idea of what could be discussed or improve in your own company.

Below are the 18 core management practices reproduced from the article:

Operations Management

Use of lean techniques

Reasons for adopting lean processes

Performance Monitoring

Process documentation

Use of key performance indicators

KPI reviews

Discussion of results

Consequences for missing targets

Target Setting

Choice of targetsConnection to strategy, extent to which targets cascade down to individual workers

A maturity model is, as said on Wikipedia, “a measurement of the ability of an organization for continuous improvement in a particular discipline”.

So, our goal in defining such a model is to help a part of the organization to identify improvement opportunities. For that organization, we defined a specific organizational structure to serve it needs to curate and build technology in the open and to deliver a tested and trusted product to serve the needs of customers.

The organization is composed of cross functional groups, with an emphasis on self-organization, and continuous improvement. The transition to that model shows different levels of understanding and adoption.

For example, retrospectives were strongly encouraged from the beginning. Some groups are sticking to 2 weeks scheduled retrospective enjoying the benefits, while other groups did not grasp how the practice could help them in improving their way of working.

Introducing a maturity model could help to focus on a limited set of characteristics, and could help the different teams to identify the one thing they want to focus on improving during their next cycle.

The maturity model is meant to be used by the team itself to self-assess where they are. It is not a measurement tool, and there’s no need to look shinier than you are. There’s nothing to be ashamed of. The results and the actions that you will take to work on one thing are specific to your group.

The main categories of the maturity model will need to be specific to our organization. And, for each group in our organization, the position they will find will be specific to them, and to what they are delivering in the organization.

If I take the example of cars, main characteristics could be:

speed

safety

reliability

efficiency

comfort

If one car is reaching a top speed of 20 miles per hour, we could want to improve it. But when it reaches 90 miles per hour, it is definitely not the area where the focus should be. It that case, I should probably have start with safety 🙂

So, introducing a maturity model, we are looking at conversations that will lead to improvements.

The language used in the maturity model should reflect outcome and not practices we would like to encourage. Looking a few paragraphs above, you will get why it’s important: if we are encouraging retrospective, we are pushing a practice and we could never get to the outcome we are looking at.

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.

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 OpenSource.com 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:

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

“Multilearning”: Multilevel learning, Multifunctional learning

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

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.

On 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.

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.

The author suggests an exercise for team members. Form pairs in which one will ask a real question and listen for 5 minutes: “Who you really are?”, “What do you want in life?”. Silent listening, maintaining eye contact for 5 minutes is a great exercise. And then we switch role for another 5 minutes.

I already tried similar exercises using appreciative inquiry to start workshop or training with people that don’t know each other well. I can attest this is efficient!

Trust between team members is a prerequisite to developing our ability to talk about our mistakes and to develop our capacity to learn from those mistakes. This foundation for effective teams is also covered in this article: The Five Dysfunctions of a Team.

Social capital

Margaret introduce the notion of social capital with:

“The dynamic between people is what brings organization to life.”

She explains the importance of the time spent together at work, during breaks or lunch. She gives an example of the decision to synchronize breaks in a call center that dramatically improved the performance.

Interruptions

If some time needs to be dedicated to interactions between people, quite time needs to be organized to allow concentration. I already covered this topic in a previous article: Let us Code. One of the example given is a scientific study that shows the danger of multitasking. People are shown a video recording – in a typical news channel format – of a CEO explaining the strategy of a company. People are told to focus their attention to the sequence as there will be some questions to answer after that. They have been asked to give their opinion about the strategy… And if they were able to remember some information, together with not relevant ones about weather, stock quotes, other news alerts, that were displayed on the multiple banners… They were totally unable to criticize the strategy. The conclusion of the study was that multitasking prevents us to think. Quite scary if we think about who are the people addicted to multitasking in organizations.

Rest

The author also quotes other studies on work day duration (more than 11 hours a day lead to depression) or necessity for the brain to rest at least for 7 or 8 hours a day (less lead to reducing the ability to think).

Leadership

Margaret explains the Pygmalion effect: expect great things, and they will more probably happen. This reminds us the importance to define ambitious goals, and to believe in the ability of people to reach those goals.

She encourages also to get rid of silos, and to empower people, to accept that leadership needs to be fluid, linked to skills and not to titles and ranks… Title and ranks could lead a part of the people (unfortunately the majority) to think that they are not good enough… And the Pygmalion effect will play in a bad way.

She recommends to people to choose to make some space for their contribution, even if it’s not their job or their role, just because it’s their life.

The author also gives the example of check lists, that reduced by a third mortality in hospitals as a way to take the power from a few to empower the many. This has been covered in another article: Black Box.

When we accept that there are talented people everywhere, people will think not only about the work to be done, but why we need to do it, and how to do it.

When you have done what is needed, Ask yourself what one more thing you could do to make those people happy?

A book to read (or to listen) and you could start with a TED conference given by the author:

I started this article a long time ago. And that’s a comment from a person I work with that triggered the sense of urgency to contribute to solving this problem. He said:

Stop interrupting us! Let us code!

I became sensitive to interruptions when I discovered the Pomodoro method, subject that I covered in this article.

I experimented that, when I was able to focus on one thing, I was extremely efficient. Though, I tried to influence people in teams I worked with to preserve periods of time without interruption.

People easily identify others as interruption sources. It is usually something easy to cover with a team to find agreements to stop the interruption flows and halt the downside of them.

It’s harder to admit that we are our source of disruption. We start something, get caught by notification, our mind wanders and takes us somewhere else… We need a strong commitment to resist to the multiple temptations to quit what we are doing for something else.

The problems became major with a distributed team.

With colocated teams, I experimented two strategies:

The first one is to adopt a sign on the desk meaning that the person wishes not to be interrupted (a funny puppet for example)

The second is to synchronize the team on the same schedule: 50 minutes of work without interruption, 10 minutes break, 15 minutes for interruptions, and so on, with a bigger break for lunch.

Synchronization is the most efficient strategy, but it’s also the most demanding one for team members.

With a distributed team, the connection flows through electronic communication means. You can observe some tacit agreement that you need to answer fast to solicitations by email, and more rapid to solicitations on chat rooms (IRC, jabber, slack or others).

If you agree with that, you can spend your whole day jumping from one subject to another without actually accomplish something.

Our overall satisfaction will suffer from those constant context switch. Furthermore, each time we will try to go back to a task, it’s very likely that we will need a lot of time to regain the level of understanding of the problem we had when we left this work.

In his book Succeeding With Agile, Mike Cohn quotes the study from Kim Clark and Steven Wheelwright on the impact of multitasking on productivity that as shown in the graphic above.

In an organization where managers distribute the work and where the managers convey the pressure of instant response, the time wasted by permanent asks will paralyze the whole organization. This explains why some small teams of 10 can achieve more than teams of 300 letting bigger organizations questioning themselves.

The phenomenon will be less important in an organization where the system distributes the work. An organization in which each team member knows what he/she needs to take after a completed task.

My recommendation would be to invest some time with the team to refine:

The use of communication tools: what needs to be covered by email, by instant messaging, in a chat room, or what needs to be covered with share documents that will help to build a common position. In each case, we need to define what are the agreed reaction delay

the way to protect the individual from interruptions: by accepting unavailability period, by synchronizing the whole team on the same schedule (harder if you are in several time zones), by dedicating people for a period to handle interruptions that we cannot avoid

“If you can get all the people of an organization rowing in the same direction you can dominate any industry on any market against any competition at any time.”

When the author use this quote from a friend in front of executives, they are all nodding, not only to express their approbation, but to express their inability to make it happen.

Success comes to those who are able to overcome the human bias that undermine the teamwork.

The five dysfunctions of a team is a book by Patrick Lencioni (not a new one, but it’s often useful to re-read some “classics”). This book use a novel at the beginning to make easier to understand the ideas that are further reexplain at the end.

The five dysfunctions can’t be treated in isolation, the first one is the foundation of the next and so on.

Lack of commitment: feigning buy-in for group decisions creates ambiguity throughout the organization

Avoidance of accountability: ducking the responsibility to call peers on counterproductive behavior which sets low standards

Inattention to results: focusing on personal success, status and ego before team success

The author suggest tools to resolve each of the five dysfunctions. It’s probably there that the age of the book is visible as some of the tools had been overpass by others more recent and more effective.

Nevertheless, the model proposed by the book is useful to help a team understand what they will need to achieve to become an efficient team.

A book to recommend to many 🙂

You will also appreciate Rafael‘s review on goodreads (and all the others that will motivate you to read (or re-read) some books.