Re: draft lithium release plan

Colin Dixon

Comments inline.

On Wed, Oct 29, 2014 at 5:09 PM, Ed Warnicke (eaw) <eaw@...> wrote:
General Comments:
OMG this is so much improved over Helium/Hydrogen :)
Principles to Consider:
I would suggest that we consider the following principles in looking at the Simultaneous Release Plan:
1)  Requirements on Projects should be:
a) Known: by projects prior to opening of the Simultaneous Release (projects can’t commit to the unknown)
b) Doable: clear and tested instructions for how to accomplish them (requirements must be doable)
c) Confirmable: it should be clear how a project or a third party would know that a requirement is met
d)  I abbreviate this below as KDC.
e)  Based on a lot of confusion seen during Helium, I think part of K is being referenced in the ‘Requirements for Participation’ section not
just in the schedule or other sections (though I think listing there to is important).
2)  When considering new requirements I’d strongly council that we consider doing it in two phases:
a)  Reporting/Notification (RN): The first Simultaneous Release Plan in which we are looking at a new requirement,
we simply require reporting of whether it was done or not.  This allows us to find out whether the requirement
actually makes sense/works/is really doable.  It is a strong defense against us requiring something that sounds good
but turns out to be insane.
        b)  Requiring (Req):  If a Reporting/Notification requirement went well in the previous Simultaneous Release, we could the promote
it to a requirement in the subsequent ones.  We know it can be done (people did it and reported on it), we’ve sorted out
(hopefully) the kinks etc.

+1 to this as guiding principles and goals.

However, I think over-striving for KDC now, especially for later milestones, will have the frustrating property that we will be specifying things now that are likely to be missing the point by the time we get there and also delay our ability to start working on the things we *do* understand in the earlier milestones.
Detailed Comments:

1)  Definitions: 
a) I do not feel we have the necessary tooling to allow us to manage the Legacy/Tentative/Provisional distinction realistically.
I think developing that tooling and asking for folks to mark APIs by end of Lithium may be reasonable (if someone is willing to do the
tooling), but I do not think it is reasonable to ask folks to so by M1.  Perhaps this should be RN this time around.
b)  We also desperately need to be able to mark APIs ‘Internal’.  Not all API looking things are really meant of external consumption.  Accessibility is
      not the litmus test as one cannot reasonably control it.

It sounds like we should discuss this a bit more.

To be clear, the final release plan for projects is due at M2, which might help. We also have an exception process if we realize something got screwed up. I guess I'd err on the side of seeing if we can get this to work rather than pushing off figuring out what APIs we have and how they're changing again.
c)  We had talked about rolling RCs… did any of that make it into the Plan?

Does that actually need to be in the plan? It's something I think we should do, but it seemed like something that didn't require actions from projects in a concrete way, so it's not there now.
d)  "Deadlines for Release Candidates (RC0, RC1 and RC1) and the release are the same regardless of offset. Deadlines for M1 and M2 are offset by +1 week and +2 weeks as no code is involved. Full details can be found in the dates listed in the Schedule table.” could we strike “as no code in involved”?  Bug fixes change code :)

Fair enough. I was trying to provide explanations for why things were the way they were, but it's true that this one isn't technically correct even if the spirit is right. We probably do need some kind of meta-release-plan page which contains things like our guiding principles and the reasoning behind certain timings.
2) Requirements for Participation:
a)  Could someone explain “All Milestone deliverables will be verified by the Lithium Release Management staff and/or the TSC” - I am confused as to what this means, could we get some clarification here?
I would find it very odd for *all* release deliverables to be verified… but I could imagine someone verifying things like ‘Yep, project Foo is reporting to Sonar’.  Also not clear on what the mechanism of verification
here is.  My gut is there is something very good under this sentence… but I’m not at all clear about it.  I suspect this could be made very very good by simply making it clear that someone should carry out the
confirmation (C in KDC) and record it.  Anyone *should* be able to C (Confirm) a requirement… but someone *should* and should record it :)

Your gut feeling here is right. The intent was to put responsibility on the release management staff and/or TSC to actually do the C. That is "someone should and record it."
3) Schedule:
a ) I am uncomfortable with M0 (Lithium Open) proceeding actual finalization of the Simultaneous Release Plan, in part because of

That was just unchanged from the original plan because M0 literally had no meaning. In my mind M0 should really be the day after the previous release or just removed from the release plan altogether.
b)  I feel strongly that we need to provide projects the full 4 week Milestone Period to sort out meeting their M1 obligations.

I guess I disagree. M1 is almost a noop to prepare for M2.
c)  ‘New Project Infra’:  This date seems very very very late in the game to me.  Especially with Holiday’s looming.  Could we define this as an SLA from project approval date?
      “SLA for provisioning of new project infra will be no later than 3 business days after project approval.  Verification of correct functioning of new project infra working for all committers shall happen no later
than 1 week after project creation.”  This way we can actually know we have infra and its working for the committers.  Also, I’d like us to work out how to make this KDC, and clearly tempered by reality with input from
the infra team.  I would say minimally though that every project must have working infra prior to M1.

So, discussing the SLA is probably a good topic, but would really need to be done with interaction from the infra team as you say.
d) M2:  I am deeply uncomfortable with “Documentation Project to Publish Documentation requirements for participating projects”.  If we want integration and documentation requirements for the Simultaneous Release Plan,
we need to get them up front as part of the plan, and have in hand the *how* of their accomplishment so that projects can know what they are signing up for an how to do it and how to know they’ve done it.
Basically, this fails KDC.

So, I'm less uncomfortable than you are and I think it's just that I have faith that the community will find and/or negotiate reasonable (and not onerous) approaches to docs and integration/test, but that those are likely to be somewhat fluid during this release as we struggled with them during Helium.

We can try to move this to M1, which would give projects 4 weeks to incorporate them into their final release plans, but I'm not sure that we'll have the information and answers we'd like to by then. That is, I'm expecting that the documentation and integration/test groups will be extending tooling and adapting process during the release and they should be able to do that.
e) M3:  Could we get some clarity on "TENTATIVE APIs are declared go/no-go” ( I have no idea who declares this, what it means, how it is communicated, or what its import is)
(again, I suspect this is pure goodness, just underspecified ;) )  This kinda fails KDC.

The intent here was just for projects to either commit to providing the TENTATIVE APIs or declare that they weren't going to be able to provide them in this release and others should not count on them at this point. Agree that we should be more precise on what they output is and how to verify it.
f) M3: What is a documentation plan?  Do we have a template for it?  Unless I am mistaken, this fails KDC.
g) M3:  Could “Karaf features defined” be expanded to “Karaf features defined and included in integration”?  Or possible “Karaf features defined, OSGI tested (aka, they wire), and included in integration” ? (again, seeking a KDC here that matches our desired outcome :)
h) M3:  Could we make the requirements around Integration and System test plans KDC?
See the above comment. I agree on all these points and think that we need supporting templates, checklists, tutorials, and/or guidelines, but I'm less convinced we need these to be fully KDC before we start moving toward M1 (which I see as mostly a noop) and onto M2.
i) M5:  Could we set a date and time for RC[0-2] cutting up front?  Is there a reason not to?

If we define RCs to be containing all the projects participating in the release, then this is not a date-based milestone, but based on where the projects are as we approach the targeted date. Perhaps we could declare a target date time. We have a date there, we could just add a time? Midnight UTC between the listed date and the next day?
j) M5: Could we add something about reporting to the blocking bugs spreadsheet here?  That was mega useful :)

+1 to this. I also think that we should have a described bugzilla profile for blocking bugs.
  4) Participating Projects
Could we get the table of the fields we’d like listed in this section up front?  I suspect George could do something awesome here :)

+1 George, can you do this?
  5) Communication Channels: 
a) Could we get this section in sync with the Leadership and Communication Section in Requirements for Participation?

Good ideas. I'll try to fold this in. (Or you could.)
b) Could we consider starting up daily IRC meeting around the RC timeframe?  Not sure if we want to or not, but we have productively done so in the past.  Would like to call it out up front.

I agree this is a good idea. Do you have sample language?

On Oct 22, 2014, at 7:14 PM, Colin Dixon <colin@...> wrote:

The draft release plan that Phil and I have been working on is ready for comments. You can find it here:

Some highlights:
* We use offsets with a delay of 2 between offsets for code deliverables
* Documentation, Integration, and Test are called out more explicitly and earlier
* Most of the lessons learned section is addressed with notes as to how [0]

Huge thanks to Phil for his help in this.

I've put a significant block of time aside on the agenda for the TSC call to go through it as well, but it's probably worth reading through before then as well.



TSC mailing list

Join to automatically receive all group messages.