Hi Martin,
Sorry for having taken so long to answer. We have a lot of holidays in France in May. I
flagged your message as important then took some holidays, forgot about it, then other
holidays and now I'm back!
Disclaimer: I have 2 hats:
* one as an xwiki committer like any other
* another one as the CTO of XWiki SAS (
http://xwiki.com)
See below.
On Apr 20, 2012, at 8:43 PM, Martin Schönberger wrote:
  2012/4/14 Vincent Massol <vincent(a)massol.net>et>:
  Well I'm fine with both too but I really
think you'll get more extensive result from asking on this thread:
 * you'll get the sum of our knowledge. There isn't a single person who knows it
all here. We all have some knowledge of some part of XWiki and we don't always agree!
(which is very fine)
 * this interaction will be archived and searchable in the future so people won't just
see the result but the whole interaction and the various answers from different people
 So I'm all for doing it here :) 
 Well, consider me convinced. :) Let's try this the open source way
 then! Everyone is very welcome to join in on the conversation.
 As Vincent suggested I am going to split up my questions into three or
 four posts, roughly separated by topic. This first post contains
 rather general questions about the process and the stages of
 development, while the follow-up posts concentrate more on the
 project's management, people, structure and infrastructure.
 You can assume that I am aware of the development process as far as it
 is detailed on 
dev.xwiki.org and 
xwiki.com, and for my research I
 would like deepen this knowledge, especially on how the process is
 applied in practice, and how it is seen from within.
 So, without further ado, my first questions:
 As far as the process is concerned directly, which are the parts of
 development that profit most from the fact that XWiki is open source? 
Obviously it's hard to contribute to the core of an open source project than it is to
contribute to extensions/plugins. This is the case with XWiki. Actually what we've
started doing a few years ago and this is still underway is to split the monolithic XWiki
code into small modules, each implemented a specific feature (tag, querying, wysiwyg
editor, rendering, etc). We have hundreds of such small modules which makes it easier to
contribute than before. In addition we've started to make all those modules
extensions, i.e. features that can be added/removed from an XWiki runtime. And we now have
an Extension Manager in the XWiki runtime to manage all extensions. This means that when
someone contributes an extension on 
extensions.xwiki.org it's directly visible from
within everyone's installed XWiki runtime, in exactly the same way as extensions
created by the XWiki Dev Team.
Thus I believe we'll continue to see more and more contribution in the area of
extensions.
We have several layers of code contribution:
http://dev.xwiki.org/xwiki/bin/view/Community/Contributing#HContributeCode
Note: I've updated 
http://dev.xwiki.org/xwiki/bin/view/Community/Contributing this
morning
Now more generally the XWiki open source project benefits from:
* extensions
* testing by the community and bug reporting
* discussions on the mailing lists to give ideas, to direct our work
  It seems like XWiki has a rather large core team
closely working
 together, and the Hall of Fame lists rather few external contributors.
 Does this reflect the actual distribution in the project? 
The list is valid for the committers. We're about 15 active committers (ie. XWiki Dev
Team).
We've always had a hard time identifying contributions since there are lots of ways to
contribute. Thus we asked contributors to add their names to the Hall of Fame page but
lots of people are shy or simply don't think about putting their names there.
We've now moved to GitHub and it's much easier to recognize code contributions
since we now use pull requests. I'm preparing a new section for the hall of fame
that'll list all code contributors (and not only committers).
  What are the
 costs and benefits of using open source development methods in this
 situation? Would communication patterns, knowledge management and
 development cycles be approached differently if XWiki was developed
 purely in-house? 
Definitely.
One important difference is that there's no power hierarchy in XWiki development. All
the committers are equal. We have built our rules on the Apache model which is a
Meritocracy. See 
http://dev.xwiki.org/xwiki/bin/view/Community/Committership and
especially our vote strategy. It's enough that a single person doesn't agree for
something to not happen.
  Another thing I'm interested in is how the scope
of the project and
 the direction of development are decided on. To what degree do
 different stakeholders influence the course of XWiki, what is caused
 by personal itches of the developers, requests of paying customers, or
 complaints and suggestions of casual users? Is there a special time in
 the release cycle when new content is agreed upon? How far and in what
 detail can the content of future releases be planned ahead by the
 developers? Are detailed plans desirable, or is it more advantageous
 to react to circumstances when they arise? 
The strategy:
* In the open source project, there are only individuals, no company. At the start of each
release committers and contributors can state what they'd like to work on for this
release. We publish this on our roadmap page:
http://www.xwiki.org/xwiki/bin/view/Main/Roadmap (specialment
http://enterprise.xwiki.org/xwiki/bin/view/Main/Roadmap pour XE).
* At XWiki SAS, we do internal roadmap meetings and then find/assign developers who're
going to be the owners of issues/features on the xwiki open source project. During these
internal meetings we have representants of all XWiki SAS domains (marketing, customer
project, sales, tech, research, infrastructure, etc) present and decide in a collegial
manner.
  The third question concerns specialized tasks
surrounding the
 development. XWiki follows diverse strategies for testing. One of them
 is manual, formal testing executed by a dedicated QA team. 
Actually we don't have any notion of QA team in the xwiki open source project. At the
open source level each developer is responsible for the quality of his code and is
supposed to write automated tests and do manual testing of his code.
However we have one contributor named Sorin Burjan who's helping the developers do
this by systematically testing new releases himself. He's helping us a lot. But
he's acting as a contributor.
Now Sorin is also an employee of XWiki SAS and within XWiki SAS his role is QA engineer
and his internal role is to make sure that releases are of good quality.
  Does this
 part of the approach make the many-eyeballs-method of discovering bugs
 less important, or is a combination of these two strategies necessary
 for overall high quality of the code? 
Combination. I'd say the vast majority of issues are still reported by the many
eyeballs. But Sorin finds a good lot too! :) Both are needed.
  Could automated testing stand on
 its with sufficient coverage? 
IMO it could but we haven't reached a good enough level yet. We need to become better
at this and start measuring better our test coverage. We have just started automating
tests on various environments (DBs, browsers) and that'll take some time. In the
meantime Sorin has taken charge of manually testing XWiki on those various environments.
At some point we'll also need to add automated performance tests which is done
manually too at this point.
  On a similar note, how do the different
 methods pursued in customer support (like detailed documentation,
 peers helping each other, and specialized paid support) interact and
 draw upon each other? 
XWiki SAS internal support will raise issues in our issue tracker like anyone else and
these will get fixed eventually.
In general the most people who report an issue and faster the XWiki Dev Team spends time
on fixing it quickly.
  I phrased the questions deliberately at length to
roughly stake out
 the areas I would be more interested in. Every comment, opinion or
 experience that relates to the given topics is highly welcome. I will
 eagerly keep track of the mailing list for answers and follow up with
 the next round of my questions in a few days. 
Thanks, hope it helps
-Vincent