Well, a whole lot of people have replied to this email already, and I
will try to address most points in just one email. Apologies for not
answering previously, but I have been on vacation with my wife for the
last five days or so, and haven't had a chance to check my email during
that time.
In response to Hogne's original email, people have written lots of
'goals' they would like to see accomplished. While there's nothing wrong
with this, I think it's something of a red herring to list goals. That's
not the problem here: anyone can list of a heap of things that would be
nice for the project to have. The problem isn't *what* to develop, but
*how* to do it. What structure should the project take? Who makes the
important decisions about where things are going?
Since the release of 1.0 (and before that), I have had both little time
and little motivation to work on Wesnoth. I have taken somewhat of a
'leadership' role in a few areas, but not nearly as much as is necessary
to keep the still-growing project humming along nicely, and I certainly
haven't written any code for it for a long time.
Unfortunately I haven't done a very good job of grooming a 'successor'
as lead developer, and although we have many developers who are
competent in their area, as far as I can see there isn't really anyone
who can take over my role in the project.
If I was the only developer -- or if other developers felt as I do -- I
would say that I would probably wind up the project. The original goals
of the project have been met and exceeded, and we have produced a
quality, stable, fun game. There is nothing to be ashamed of, and no
sense of failure in winding up the project now.
However, I think there are many people who want the project to continue.
People who still want to contribute their enthusiasm, energy, and talent
to improving it further and further. So, the project should continue,
but how? What kind of structure would work?
I want to try to transition the project to depend on me less and less. I
might contribute more in the future, but I might not. I don't know, but
I want the project to continue either way -- as long as there are people
who want to contribute.
Firstly, the project will absolutely still be based heavily on the KISS
principle. Development has been hard enough in the past when the project
was small, without throwing away the KISS principle now the project is
large.
We will also continue to use evolutionary development heavily. We will
not re-write large portions of code. Rather, we will add a small amount
at a time. Add one small feature at a time.
We will continue to constantly refactor the codebase as we develop to
keep things working nicely, and to keep the code at an acceptable
standard. We will not embark on a massive rewrite of large portions of
code under the guise of 'improving code quality'.
We will stick to the same basic game rules. We might add (or better,
remove!) an ability or two that are in the style of Wesnoth, but we will
not add big gameplay changes that totally change the face of the game.
Now that I've finished preaching against common fallacies that I think
I've spouted against for the last two years, I will get on to the
important part of suggesting the new project structure. :)
Over the course of the project, I've attempted to install people who are
'in charge' of different areas of the project. I've tried to put someone
over art, someone over translations, and so forth. I think we need to
extend this structure further, to take less burden off the project lead.
I think more responsibility needs to be delegated, and people in various
areas need to 'step up' more and take more responsibility and exercise
more authority in their areas.
I think every area needs to have someone firmly over it who can make
decisions. I think the person over an area needs to be relatively
technical (enough to use SVN), and importantly, needs to want to be in
charge of managing the area. This person is not necessarily the best
person in the area. A very talented artist, for instance, might not
necessarily be head over art, since they might only want to draw art,
and not have the annoyance of having to arbitrate disputes over whose
art gets in the game. Of course, the head of art might consult the
opinion of the talented artist on important issues.
These 'domain leaders' must also feel comfortable in sub-delegating
responsibility where necessary. The lead over art might delegate someone
to be in charge of trying to collate animations, for instance. Or they
might simply want to appoint a 'second in command' for when they are busy.
We also need a process for 'domain leaders' to be able to be removed and
replaced if they become inactive. Preferably they would simply say they
don't have enough time/motivation to be a domain leader anymore, and
they would try to appoint a successor.
An absolute requirement for being a domain leader is that they must be
willing to be active both on this mailing list and on the #wesnoth-dev
IRC channel. Preferably they would leave their computer idling on
#wesnoth-dev and would read the backlog at least once a day, and ensure
they contact anyone who wants to discuss something about their area.
Importantly, we also need a domain leader who leads coding. Someone
other than me. This person would probably be the most important domain
leader of all, since they would have to co-ordinate across domains. They
would have to discuss with the artists what support is needed for a
certain new animation, and with translators what support is needed to
properly support translations, and so forth.
Finally, I would like to have a 'second in command' below me who can
confidently settle most disputes, and who can bring important and
difficult issues to me. This person would also take full leadership of
the project when I'm not available. This person needs not be a coder --
and in fact perhaps shouldn't be. They would work at a 'higher level'
than the head coder, interested in project direction rather than how to
implement a specific feature.
Rather than leave things so very hypothetical, I would like to name some
candidates for various positions:
- isaac should be 'second in command'. He has worked on the project for
a long time now, and has a very balanced opinion on most things. Jetryl
could also do this, though he doesn't seem to be available on IRC nearly
as much as isaac, which is a problem. Ivanovic is also a possibility.
- Darth Fool could possibly be 'lead coder'. Ayin and Yogi would be the
other main contenders, but Ayin doesn't seem to have enough time, and
Yogi hasn't been with the project very long.
- Jetryl would continue to head the art department, and would give
stylistic approval of most new 'game world concepts'.
- Other positions would remain in place, as long as the people in the
various positions can commit to the increased level of responsibility
they have.
The main alternative to this I can see is to have a 'Wesnoth Council'
which consists of a small number of developers who vote on issues, and
perhaps has a rotating presidency. I would only use such a structure as
a last resort though.
So, what do people think? Is this workable? Any other ideas?
David
Hogne Håskjold wrote:
Hi all
Been thinking a bit about this lately. Since Dave "retired" I have
gotten the feeling that Wesnoth development lacks direction. Everyone
(including myself) seems to be wrapped up with doing their own thing
without much overall planning/discussion/vision.
If we are to be able to release a new stable version some time in the
future I think we need to decide where we are heading, what are the
overall goals.
Are KISS still the mantra? or do we want to add more complicated
features. What will this do to game stability/code complexity... Do we
need more rigorous methods or are commit and break ok..
Many are also looking into some major rewrites of part of the code,
this will need to be planned quite well imo, or it might turn into a
mess.
Personally I have the following goals:
- Keep improving the gfx while retaining Wesnoths excellent gameplay
- Work on GUI suggestions, since I feel the GUI has the potential to
be vastly better than it is now
- General polish. I want Wesnoth to look professional
I would like to hear what other peoples goals are.