Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

On a related questions about "Finding and/or becoming an open source product owner" -- the first comment to the question itself was "the idea of a product owner goes against the idea of open source."

  • Is this true, and if so, why?
  • If not, what circumstances and/or context would it make sense for open source project to have a product owner role?

I've attempt to find an example of this role at Mozilla.org -- but I've had no luck so far.

(Just to be clear, I'm talking about a volunteer role, not a paid position at a non-profit.)

share|improve this question

6 Answers 6

up vote 8 down vote accepted

To me, it doesn't seem that the role of a product owner goes against the idea of open source.

The ideas of open source software is that of freedom to learn, improve, change, and distribute in the best possible manners that solve real-world problems. It's all about collaboration to create a product that's available to the general public and that's usable, with a great sense of transparency and visibility.

The question you linked to discusses a product owner in the sense of Scrum - an individual who represents the voice of the customer/user for the development team. This is a person who ensures that the product is valuable by creating (or, in some cases, transforming into a usable form) and prioritizing requirements and defect reports.

There are different structures for running open-source projects, just like there are different development methodology and team structures in companies developing commercial software. I don't know of any open source teams that have a "product owner" role, but I can see it being useful in some cases.

The role of a product owner would probably be most useful on a project where the development team is disjoint (fully or partially) from the users of the software. Looking at open source software packages, things like GNUmed, Koha, and Tux Paint stand out - the target audience are people with vastly different backgrounds than software developers (although some users of the packages might have software development experience), and often have special needs or requirements that must be understood. Someone or some people in a role similar to product owner would be useful to ensure that the product is useful to the target audience.

If anything would have a more detailed, authoritative discussion of this, I would suspect it would be the writings of Eric S. Raymond. It sounds like something that might be discussed in The Cathedral and The Bazaar, or a similar essay by Raymond. However, it's been a while since I read these works, so I can't quote anything in particular.

share|improve this answer
    
+1 @Thomas Owens: As usual, a great answer, thank you for the example of GNUmed, Koha, and Tux Paint -- and I'll see if there's anything in Eric S. Raymond's writings that's of use. Cheers! –  blunders Jan 27 '12 at 23:35
    
@blunders I'm not sure if there will be. But I would suspect if anyone wrote about anything similar, he probably would have. If I get some time and motivation, I'll look too. –  Thomas Owens Jan 27 '12 at 23:36

The concept for Benevolent Dictator for Life is similar. Certain Open Source projects have creators that aren't necessarily directly involved in every change but have either an explicit or implicit veto on anything that happens with that software or language. Examples include Larry Wall of Perl, Guido Van Roussom of Python and Linus Torvalds for Linux.

share|improve this answer
1  
I never even thought about BDfLs when I was writing my answer. I can see a lot of parallels between a Scrum product owner and a BDfL. +1 –  Thomas Owens Jan 27 '12 at 23:26
    
+1 @World Engineer: Yes, I thought of BDFLs too, though more of as a reason for a product owner role, than as comparison. My limited experience with BDFLs is they're more focused on the code and the coders, than those who uses it and why they do, which I completely understand to some degree given the dynamics of OSS; anecdotal experience, nothing more, and I've personally never talk to any of the BDFL you listed. –  blunders Jan 27 '12 at 23:31

It's not a traditional role in open source projects, as the Product Owner is typically an individual responsible for a project's success by:

  • leading the development effort by conveying his or her vision to the team,
  • outlining work in the scrum backlog,
  • and prioritizing it based on business value.

In open source communities these responsibilities are typically shared between senior members, or assigned to package managers and so on, depending on the methodology (or lack of) the project. But there is no reason at all an open source project couldn't adopt Scrum and appoint a Product Owner.

Typically, if the original author(s) of the project are still active, they may have a bit more say in operations and processes that fall within the Product Owner's responsibilities. A common term for them is Benevolent Dictator for Life, which albeit tongue in cheek and casual, is reserved for project founders with a fair share of active participation and leadership initiatives and responsibilities.

As for Mozilla, a related role would be Module Owner:

A "module owner" is the person to whom leadership of a module's work has been delegated. The responsibilities of module ownership might include, in the case of a code module: improving code quality, implementing revisions and innovations as appropriate, coordinating development with that of the rest of the codebase, developing and maintaining a shared understanding of where the module is headed, developing APIs where appropriate, documenting as much as possible, responding appropriately to code contributions, design suggestions and stated needs of the community, and creating an environment where competent newcomers are welcomed and included.

But the role is quite more similar to Scrum Master than Product Owner.

share|improve this answer
    
"Product Owner is .. an individual responsible for a project's success.." - I've always considered project managers, or in scrum terms, Scrum Master, would serve that role. To me "product owner" was the voice of the end user with primary interests of end-user (i.e. he prioritizes features he wants to see done first based on their perceived importance, but developers may have other stories they need to slip into iterations) –  DXM Jan 27 '12 at 23:37
1  
@DXM The way I see it, the traditional project manager role is split between the Product Owner and the Scrum Master, which serves mostly as a facilitator. But by "responsible for a project's success" I didn't mean (s)he is the only one, that's why I gave a brief outline of the actual responsibilities. And now that you mentioned it, Mozilla Module Owners are far more related to Scrum Master than Product Owner... –  Yannis Rizos Jan 27 '12 at 23:50

I was curious about this question myself recently. Although I haven't done much reading on the topic. It seems to me the concept of product owner is as important to open source as other types of projects because product owner is what sets the priority (i.e. decides what features are important and which ones can be delayed or dropped).

Even open source teams need to have a backlog that they manage and this backlog needs to be prioritized based on importance.

However, while the concept of "product owner" is important, it could probably be done by more than one person since in open source just about everyone is a volunteer so clearly time might need to be split across multiple people.

Then there are few options:

  1. If the open source project has one or few major customers/primary users. Product owner person or group of people should work on maintaining active, healthy relationship with these users so that they can come back to the rest of open source project team and communicate the needs of those end-users.

  2. If open-source project is used by a wide audience and it is difficult to get general sense of what features are important by talking to select few, another option would probably be to setup a public feature request/bug reporting website. Then monitor it and see what kind of features/bug fixes people are asking for the most. Again product owner person/group (whoever volunteers) would have to sift through those reports and adjust the backlog accordingly.

share|improve this answer

The term product owner is a little ambiguous. The obvious (but usually incorrect) interpretation would be "someone who has legal ownership of the product, code, and related resources". The less obvious but more correct (in software development circles) interpretation is "the person who has responsibility for making final decisions about the product."

The first meaning is clearly at odds with many open source products since individual contributors often keep the rights to the code that they contribute. In such cases, a single product might have hundreds or thousands of "owners" who each "own" a small part of the code that produces the final product. Some projects ask contributors to assign their rights to an organization (such as the FSF) so that the code can be better protected, but even then the organization that "owns" the rights to the code usually isn't the "product owner" in the software development decision maker sense.

The second meaning, which from your question is clearly the one that you intended, might sometimes seem to be at odds with the usual open source process, which is often viewed as being democratic. An often-stated advantage of open source software is that if a product doesn't have a feature you want, you can add that feature and then contribute the code to the project for the benefit of everyone else. Although it does work that way much of the time, one would be mistaken to think that there's not someone who has the responsibility to review submissions and decide which ones to accept and which to reject. Just because you get your way a lot of the time doesn't mean that there's not a dictator. That person is the product owner, and most projects have one.

share|improve this answer

Assuming that we're talking about the "Free / Libre Open Source Software" (FLOSS) movement, then the concept of software ownership is completely incompatible. One of the core ideas in FLOSS is that software, just like works of literature, art, and music, cannot be owned by anyone. Once you have written the software, it must be made available to anyone, with only minimal restrictions (if any).

Within the communities, opinions differ which restrictions can be put on software to make it maximally 'free', but none of them is compatible with a concept of ownership. Ownership implies that the owner has a right to prevent others from using the software; FLOSS requires that no such restriction exists.

The closest thing to a project owner, in Free Software, would be the project lead or project maintainer. Often, this person is also the original author, and he / she publishes the "official" version, deciding which changes are included and which aren't. However, even for the most rigidly organized projects, the project owner does not have 'absolute' power - anyone is free to fork the project, modify it in any way they want, and redistribute the result, and if the project maintainer takes grossly impopular decisions, the community tends to mass-migrate to a saner fork, which then becomes the new standard.

share|improve this answer
    
Might be wrong, but it appears you don't understand what the role of product owner is in scrum. If you don't know, I'd suggest finding out before posting an answer. –  blunders Jan 28 '12 at 15:38
    
Here's one understanding of what the role is from the current top-rated answer, "an individual who represents the voice of the customer/user for the development team." –  blunders Jan 28 '12 at 15:40

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.