On Jul 4, 2006, at 1:11 PM, Simon Nash wrote:

I think releasing every 4-6 weeks is probably a bit too often.
Most users won't want to upgrade so frequently, especially at
this stage of an incubator project when new releases may be a bit
unstable.
At this stage I think we need to have small, incremental releases to gain momentum, and more importantly, to get features out that demonstrate the value of Tuscany and attract developers to it. Most users are bleeding edge people right now so I don't think upgrading will be an issue. End-users who need to build real, production-ready applications shouldn't be using Tuscany at this point (they also shouldn't be using SCA at this stage as the specifications have not been stabilized). Also, I have found people that deal with open source software, particularly the developer community we are primarily concerned with (see my comments below), are used to and want frequent upgrades.

Another factor is the overhead involved in cutting a
release.  On balance I'd suggest releasing every 2 months would be
reasonable timing, with a release closedown cycle starting perhaps
2-3 weeks before the release goes out.

Part of the overhead was due to the fact that we tried to roll everything together (including SDO and DAS) and it was the our first time. If we modularize, while we will still have some overhead (e.g. voting), 4-6 week release cycles seem reasonable to me. I'm not saying *everything* should be released at the same time or at that pace. We should be modular enough to break out releases. Also, if a module does not change much, it does not need to be released that frequently. However, two month time frames with a 2-3 week feature freeze sounds a bit long but it's not that far off from 4-6 weeks (a feature freeze of three weeks is a bit lengthy though).

I think there's value in forward planning for release content.
Our scenarios should provide a basis for deciding what new function
is most needed in the next release, and maybe even thinking a bit
further ahead ("pencilled in" rather than a firm commitment or plan).
For major pieces of functionality, it is likely that forward planning
will be needed to get a realistic idea of what can be fitted into
each release.

While I have no problem with lightweight planning, coordination, etc. I don't think we can or should project manage our release cycle according to dates (which are different than "timeframes"). I'm not sure if you are arguing for that, but I throw it out for discussion anyway. We're dealing with volunteers, not resources under our control. I'd rather use the scenarios as a roadmap and when we arrive at a functional state we believe worthy for release, enter into a ramp down period. Of course we can have timeframes and goals for the release, but IMO it would be wrong to over-manage the project by instituting a release schedule pegged to specific dates.

Other items that are smaller or less critical to our
users (don't forget that these are the audience for our releases) can
be accomodated with a lot less in the way of pre-planning.

I think the way people deal with features that are really important is to make sure they are implemented. What is important to you may or may not be important to me. We can both get what we want by doing the work to implement them - and I may even help you with yours because you are a nice guy ;-) My point is while there may be some features everyone agrees on that are important, there will be others that are important to only a particular segment. We need to be able to accommodate and encourage this diversity.

One other point is I don't think end-users are our primary audience, although they are an important constituency. I'd say we are the most important audience, in other words, the Tuscany developer community.

  Simon

Jim Marino wrote:

On Jul 3, 2006, at 11:31 PM, ant elder wrote:
On 7/3/06, Jim Marino <[EMAIL PROTECTED]> wrote:


...and involve a lot less "upfront planning"?
In other words, people work on what interests them and the community
cuts a release when it decides a useful level of new functionality
has been reached.



Can you provide pointers to any other Apache projects that work like this? I've never seen any other project of significant size, open source or
otherwise, work like that.

There's three main problems I see with the 'do whatever you like' approach.

Please read my words carefully:
- I wrote, "a lot less 'upfront planning'" as opposed to "no upfront planning". I'm not an anarchist :-) - The rest of the passage was also important in this respect: "Practically, people should just detail the scenarios and features that they think are interesting on the wiki, through email, etc. and work on implementing them". By *documenting* what interests people in some way (we should be flexible here), letting people work on those features, and then deciding at quick intervals (4-6 weeks) when to cut a release sounds pretty reasonable to me. The "lightweight" planning part comes in with the documenting of interests and then the decision process to have a release. Of course, there is the waterfall approach commonly associated with commercial software development. I don't think this works well in many open source environments for a variety of reasons that I won't go into as they are off topic. In terms of open source projects, I think you will find this type of "lightweight" planning happening in a lot of projects. For example, AspectWerkz operated very successfully this way as does Spring (although they are taking a little longer for releases, probably due to the maturity of the project). I think you will find some Apache projects as well...
With no clear goals, direction, or coordination we wont end up with anything very useful that fits together and works in an elegant and seamless way.
I probably could have gone into more detail on my thinking around release cycles, but it should be patently clear that I was not advocating an agenda of no goals and no coordination. I assume you did notice that I have been spending a lot of time creating scenarios on the wiki? It is also the subject of the current thread. Hyperbole in my opinion doesn't really move the community forward. I believe scenarios are an excellent way to form a basis for coordination and bring the community together. My point was that by having people detail what interests them, others join in and a consensus emerges when certain scenarios gain momentum. I find this to be a nice balance between the interests of large group as well as smaller pockets of one or two individuals. Under this system, one or two people can make a difference since they are free to implement features they feel strongly about (assuming they are aligned with the project charter).
No
one will do the boring work - documentation, testing, uninteresting bugs in
JIRAs, etc.
That's why we have coding standards. I have been one of the staunchest advocates of unit testing, documentation, etc. as you are aware.
And it will be hard to grow the community.

Modularity, scenarios and having a positive environment which encourages people to work on what interests them are all great ways to grow a community.
Over the past months I've been trying to get new people to come participate in Tuscany and they all complain about no roadmap of what we trying to achieve, no wish list of wanted function, and no plan of whats coming up in
the next few milestones.
In the past we had "roadmaps" here:
http://wiki.apache.org/ws/Tuscany/TuscanyJava/Tasks
http://wiki.apache.org/ws/Tuscany/TuscanyJava/Roadmap
There is, however, a general issue related to the SCA specs and Tuscany of what the value adds are. I have been working with others in the spec group to help fix this from the braoder SCA perspective. In terms of Tuscany, I would suggest we as a community do likewise. To me, that starts with actions of individuals. Could you please begin by posting your "wish list" of wanted function somewhere? I think it would be great to do this as scenarios but emails to the list will do.
Yes we need to encourage new people to come
contribute whatever function they think is useful regardless of if or where we had that function in our plans, but surely the main development team need to have a bit more focus and coordination if we're to create something very
useful.

  ...ant
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--
Simon C Nash   IBM Distinguished Engineer
Hursley Park, Winchester, UK   [EMAIL PROTECTED]
Tel. +44-1962-815156   Fax +44-1962-818999


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to