<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 28, 2014 at 10:40 PM, Thierry Carrez <span dir="ltr"><<a href="mailto:thierry@openstack.org" target="_blank">thierry@openstack.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">James Polley wrote:<br>
>>>         Point of clarification:  I've heard PTL=Project Technical Lead<br>
>>>         and PTL=Program Technical Lead. Which is it?  It is kind of<br>
>>>         important as OpenStack grows, because the first is responsible<br>
>>>         for *a* project, and the second is responsible for all projects<br>
>>>         within a program.<br>
>><br>
>>     Now Program, formerly Project.<br>
><br>
> I think this is worthy of more exploration. Our docs seem to be very<br>
> inconsistent about what a PTL is - and more broadly, what the difference<br>
> is between a Project and a Program.<br>
><br>
> Just a few examples:<br>
><br>
> <a href="https://wiki.openstack.org/wiki/PTLguide" target="_blank">https://wiki.openstack.org/wiki/PTLguide</a> says "Program Technical<br>
> Lead". <a href="https://wiki.openstack.org/wiki/PTL_Elections_March/April_2014" target="_blank">https://wiki.openstack.org/wiki/PTL_Elections_March/April_2014</a><br>
> simply says PTL - but does say that each PTL is elected by/for a<br>
> Program. However, Thierry pointed<br>
> to <a href="https://wiki.openstack.org/wiki/Governance/Foundation/Structure" target="_blank">https://wiki.openstack.org/wiki/Governance/Foundation/Structure</a> which<br>
> still refers to Project Technical Leads and says explicitly that they<br>
> lead individual projects, not programs. I actually have edit access to<br>
> that page, so I could at least update that with a simple<br>
> "s/Project/Program/", if I was sure that was the right thing to do.<br>
<br>
</div>Don't underestimate how stale wiki pages can become! Yes, fix it.<br></blockquote><div><br></div><div>I don't know if I've fixed it, but I've certainly replaced all users of the word Project with Program.<br>

<br>Whether or not it now matches reality, I'm not sure.<br><br>I alsp removed (what I assume is) a stale reference to the PPB and added a new heading for the TC.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class=""><br>
> <a href="http://www.openstack.org/" target="_blank">http://www.openstack.org/</a> has a link in the bottom nav that says<br>
> "Projects"; it points to <a href="http://www.openstack.org/projects/" target="_blank">http://www.openstack.org/projects/</a> which<br>
> redirects to <a href="http://www.openstack.org/software/" target="_blank">http://www.openstack.org/software/</a> which has a list of<br>
> things like "Compute" and "Storage" - which as far as I know are<br>
> Programs, not Projects. I don't know how to update that link in the nav<br>
> panel.<br>
<br>
</div>That's because the same word ("compute") is used for two different<br>
things: a program name ("Compute") and an "official OpenStack name" for<br>
a project ("OpenStack Compute a.k.a. Nova"). Basically official<br>
OpenStack names reduce confusion for newcomers ("What is Nova ?"), but<br>
they confuse old-timers at some point ("so the Compute program produces<br>
Nova a.k.a. OpenStack Compute ?").<br></blockquote><div><br>That's confusing to me. I had thought that part of the reason for the separation was to enable a level of indirection - if the Compute program team decide that a new project called (for example) SuperNova should be the main project, that just means that Openstack Compute is now a pointer to a different project, supported by the same program team.<br>

<br>It sounds like that isn't the intent though?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=""><br>
> I wasn't around when the original Programs/Projects discussion was<br>
> happening - which, I suspect, has a lot to do with why I'm confused<br>
> today - it seems as though people who were around at the time understand<br>
> the difference, but people who have joined since then are relying on<br>
> multiple conflicting verbal definitions. I believe, though,<br>
> that <a href="http://lists.openstack.org/pipermail/openstack-dev/2013-June/010821.html" target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2013-June/010821.html</a><br>
> was one of the earliest starting points of the discussion. That page<br>
> points at <a href="https://wiki.openstack.org/wiki/Projects" target="_blank">https://wiki.openstack.org/wiki/Projects</a>, which today contains<br>
> a list of Programs. That page does have a definition of what a Program<br>
> is, but doesn't explain what a Project is or how they relate to<br>
> Programs. This page seems to be locked down, so I can't edit it.<br>
<br>
</div><a href="https://wiki.openstack.org/wiki/Projects" target="_blank">https://wiki.openstack.org/wiki/Projects</a> was renamed to<br>
<a href="https://wiki.openstack.org/wiki/Programs" target="_blank">https://wiki.openstack.org/wiki/Programs</a> with the wiki helpfully leaving<br>
a redirect behind. So the content you are seeing here is the "Programs"<br>
wiki page, which is why it doesn't define "projects".<br>
<br>
We don't really use the word "project" that much anymore, we prefer to<br>
talk about code repositories. Programs are teams working on a set of<br>
code repositories. Some of those code repositories may appear in the<br>
integrated release.<br></blockquote><div><br>This explanation of the difference between projects and programs sounds like it would be useful to add to /Programs - but I can't edit that page. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class=""><br>
> That page does mention projects, once. The context makes it read, to me,<br>
> as though a program can follow one process to "become part of OpenStack"<br>
> and then another process to "become an Integrated project and part of<br>
> the OpenStack coordinated release" - when my understanding of reality is<br>
> that the second process applies to Projects, not Programs.<br>
><br>
> I've tried to find any other page that talks about what a Project is and<br>
> how they relate to Programs, but I haven't been able to find anything.<br>
> Perhaps there's some definition locked up in a mailing list thread or<br>
> some TC minutes, but I haven't been able to find it.<br>
><br>
> During the previous megathread, I got the feeling that at least some of<br>
> the differing viewpoints we saw were possibly down to some people<br>
> thinking of a PTL as responsible for just one project, while others<br>
> think of a PTL as being responsible for any projects that might fit<br>
> within a Program's scope. As we approach the next PTL elections, I think<br>
> it would be helpful for us to recap the discussions that led to the<br>
> Program/Project split and make sure our docs are consistent, so that<br>
> people who weren't following the discussion this time last year can<br>
> still be clear what they're voting for.<br>
<br>
</div>Programs are just acknowledging that code repositories should be<br>
organized in the way that makes the most sense technically. They should<br>
not be artificially organized to match our governance structure.<br>
<br>
Before programs existed, it was difficult for teams to organize their<br>
code the way they wanted, because there was only one code repository<br>
("The Project"), so everything had to be in it. Then we added an<br>
exception for the Python client projects, so the Nova team could work on<br>
the Nova project *and* the Python client for it. But then it made sense<br>
to organize the code differently, so rather than continuing to add<br>
exceptions (which you can see traces of at stale page [1]), the easiest<br>
way to organize that was to just say that a given team could rule a set<br>
of code repositories, and organize them as they preferred.<br>
<br>
So teams, organized around a clear mission statement, could decide which<br>
code repositories they wanted to organize their code in. We call those<br>
teams "programs".<br>
<br>
[1] <a href="https://wiki.openstack.org/wiki/ProjectTypes" target="_blank">https://wiki.openstack.org/wiki/ProjectTypes</a></blockquote><div><br></div><div>I *can* edit that page; I'd like to bring it up-to-date. It seems like a good basis for explaining the difference between Programs and Projects and the historical reasons for the split. I'll aim to take a stab at this next week.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Thierry Carrez (ttx)<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>