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