Hi Ted,
I'm definitely in favor of the picture you paint below, and agree with
the general proposals.
I'm not going to weigh in on most of the release process details (I
trust all y'all to work out how the branching is handled, for example).
I do have thoughts from two perspectives:
- strategic goals for OSAF
- tactical details on how we make product decisions from here
*Strategic*
The goal for Preview was to establish a baseline working application
that was complete enough to demonstrate the vision and be useful to real
users. We've hit that goal on the server side with 0.7 -- we have our
baseline now. (Yay Cosmo team!)
The next goal is to build a user base and a working community. From a
product perspective this means:
- support existing users
- fix bugs that prevent adoption
- add features that increase adoption (paying attention to investment
required)
It is important to keep the high level goal in mind as we make product
and bug decisions (i.e. argue over product and bug decisions).
Shorter cycles are critical to supporting the strategic goals.
- be able to fix bugs/emergencies that block usage (support existing users)
- be able to react to user feedback and and/or opportunities to get
users (don't spend months going down a sub-optimal path)
- build a sense of momentum on the project
I know I'm likely preaching to the choir here, but perhaps it is good to
remind ourselves why it is important when it does come at some cost in
the short run (all those tests that have to written, for one).
*Tactical*
Putting on the PM hat, my biggest concerns are:
- How do we work product goals/milestones/tenets into the new process?
- How do we triage from release to release efficiently, without spending
all of our time in IRC bug councils arguing bug by bug without having
the bigger context in mind?
Ted, you've mentioned separating out tenets from releases. Example
tenets that we've been talking about (some connected to a particular
release and some not, some committed to and some not):
- Safari support
- Apple iCal/Calendar Server support (Leopard)
- CalDAV scheduling support
This seems like a useful technique for keeping the big picture in mind
and focusing decision making. Be flexible about when a set of
functionality lands, while still being feature/goal driven in how we're
solving problems.
Mimi and I have also been talking about ways of framing short term bug
priorities (not exactly the same as tenets?):
- fix problems where display does not match data (integrity)
- fix barriers to casual collaborator workflow
- fix bugs that are actively confusing
When Mimi gets back, she is going to go through *all* of the existing
bugs/tasks logged in bugzilla for Cosmo and do a categorization. This
will help PPD have a perspective on the existing bugs, and help us come
up with some framing principles on how we might prioritize bugs.
(uh, strategy detour...)
One of my next projects for Cosmo (ahem, Chandler Server) is to frame a
roadmap (or a set of possible roadmaps). And when I say "my project" I
really mean "our project", as the whole team has a role in this, and I
will look to others to drive big pieces of it. There is some tension
between balancing being open to what happens in response to Preview and
having a direction. That said, I think we can navigate a path where we
have some bigger inspiring goals that guide us (Data Hub, small
organization can install/run own server, compelling standalone vision
for ui, etc.) *and* we are able to make tactical week to week
adjustments in response to what we learn from users. I know, preaching
to the choir again, I know some of you have been clamoring for a more
coherent roadmap for some time.
(back to tactical...)
So from the PM point of view:
- PPD is going to propose a way of framing how we might prioritize
0.7.future bugs, after Mimi has a chance to go through the bugs.
- PPD has some next actions in framing a discussion around
roadmap/tenets for short term/long term. My next action is still to
figure out next actions though (still mired in Preview details).
- Thoughts about short term and/or long term tenets are welcome, keeping
in mind that the ultimate goal is user adoption. Design list is likely
the best place -- not sure if the more technical goals should be
discussed on this list instead.
- The mechanics of *how* we have the conversation of what bugs land when
are important (to me, to ppd) -- I will likely have more specific
thoughts/concerns/ideas once we've done the bug sorting exercise and as
other details fall into place.
Cheers,
Katie
Ted Leung wrote:
Hi folks,
I thought I would try to tie together Jared's note on "quick releases"
and Brian's note on "Cosmo 0.8", and try to give a sketch at how we
things might change in the Cosmo world. My intent in doing this is not
to set down a definitive notion of what we will do, but to try and give
a flavor of what I think a desirable outcome looks like, and then get
people's reactions. In particular, are there things that are missing,
are the obstacles preventing us from getting to a scenario like this,
and so forth. If you have questions, concerns, or ideas *please*
speak up.
With that said, here goes:
1. We are currently testing Cosmo 0.7 RC4. Unless we find some
catastrophic bugs, this is going to become Cosmo 0.7.0. Between now
and the Cosmo 0.7 launch, most people should be working on beefing up
our test coverage for Cosmo. This is particularly important for the
web UI. Also, there will be a series of IRC QA sessions between now
and than. If you are a Cosmo developer you should be participating in
these sessions.
2. After we launch Cosmo 0.7, we plan to do (at least) 4 Cosmo 0.7.x bug
fix releases, once a week. When I originally proposed this, my
expectation was that the release happens every week and whatever stuff
is actually done within a particular release frame is what will go into
that release. If it isn't done, it doesn't go into the release. We
have not yet worked out all the details for how this process is going to
work, but here is a proposal:
- PPD comes up with an overall priority for all bugs currently targeted
for Cosmo 0.7.1 (How they do this is up to them). We preserve these
priorities, and then put all bugs marked 0.7.1 into a new milestone
0.7.Future.
- Prior to the start of each release "frame", we (TBD - but likely a
version of the bug council) figure out which bugs from 0.7.Future, as
well as critical bugs reported by end users. In order to do this
effectively, we will need to work with individual developers to make
sure that bugs can be fixed in the time allotted to a release. It's
possible that a bug that gets prioritized will take more than a week to
fix. If this happens, the developer will start working on the bug, but
the fix will have to wait for the next release for inclusion. An
example of a something like this is the Safari support that we punted.
It's unlikely that we can fix all the Safari bugs in a single week, but
we can start fixing them until they all get done. Whatever release the
last bug is in will be the release that supports Safari
- developers make the necessary fixes
- at a well known date (we don't know what this needs to be yet), QA
begins qualifying the release - bugs which are not fixed by this date
are dropped into the next release - partially committed fixes will need
to be backed out.
- while QA is validating, the "bug council" picks the next set of bugs
and the process repeats. Once validation is complete, we issue the
release and update the hub. There is going to be an element of
re-planning at each release, because we'll need to adjust to what
happened (or didn't) in the previous release frame.
This proposal is a large change from our existing practice, and I think
it's safe to say that we will have some hiccups and learning as we go in
order to make this happen.
3. We have a branch for Cosmo 0.8 that Brian is working in. Right now,
the only goal for Cosmo 0.8 is to be compatible with Leopard (this
mostly means iCal 3). We've been kind of loose about exactly what this
means. Mikeal observed that Leopard iCal does scheduling and we dont'
support scheduling and currently our plan is not to do scheduling,
although I think we might be revisiting that discussion. Let's assume
for the sake of simplicity that 0.8 does not include scheduling (if we
do scheduling it ends up in a later release due to size).
If you assume that Cosmo 0.7.0 launches next week, and then add four
weeks for the bug fix releases, then that puts us just about at the end
of September. Leopard is supposed to launch in October, but we don't
know exactly when. This probably means that we should plan to be done
with Cosmo 0.8 in time for an early October launch of Leopard. You'll
notice that this leaves very little time for anyone except Brian to work
on features for Cosmo 0.8, so at this point I think it is very unlikely
that we will do any other features for Cosmo 0.8. We haven't had a
real discussion of this with PPD yet, but the laws of physics seem
pretty clear to me here.
4. After Cosmo 0.8, I would like to see us get on a regular release
cycle that lasts somewhere between 2-4 weeks. The 4 1 week releases
for 0.7.x as a special event due to the need to stabilize Cosmo during
its debut to a large audience, but I also think that a 1 week pace is
probably a little too frenetic. It is very important that we be able to
turn releases of Cosmo quickly in order to address user feedback, and to
continuously improve the Chandler Hub service. There are several areas
which need to change in order to be able to do this:
- We need to plan in smaller, less interdependent units, and plan for
regular releases to happen. We will be revamping our planning process
to make sure that this happens -- this is a Chandler project wide goal,
not just a Cosmo goal. The days of 3-6-9 month release cycles needs to
be over.
- We need to improve our automated test coverage. The responsibility
for that lies both with developers and with QA.
I know that this is a long message and there are a lot of changes being
proposed. At the same time, we've been saying for months that we'd like
to shorten our release cycles after preview, and that time is just about
upon us. Please speak up with your questions, concerns, and ideas.
Thanks,
Ted
_______________________________________________
cosmo-dev mailing list
[EMAIL PROTECTED]
http://lists.osafoundation.org/mailman/listinfo/cosmo-dev
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design