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 <[email protected]>:
>> 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

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to