What project managers do we need? (Two suggestions...)

I was asked in email to elaborate on the need for project managers, so I'll write up my thoughts here...

We need people to "own" various cross-cut topics. That is, to monitor the project, advocate for needs, and remind people of those needs during meetings (those are mostly online), in the mailing lists, etc.

In my own sphere of interest there are a few cross-cutting topics that leap to mind:

* documentation -- API and development documentation, someone to push for regular updates and production of the documentation, someone to review the documentation that exists, collate requests, and flag the various tidbits that show up in discussions and add them to a queue somewhere to get added to the official documentation

* emulation -- someone to ride herd on the "quick start" developer's environments, ensuring that they are always available, work with the current versions of the packages, and allow for running all the various hardware

* accessibility -- someone to advocate for the various accessibility projects, keep people abreast of developments, coordinate testing for accessibility, feed back problems into the developer communities, arrange for documentation and check that we're actually on track (there may be someone tasked with this, but the accessibility list has been very quiet despite that)

* volunteer direction -- someone (this person likely needs to be at 1CC) to direct new offers of assistance to the people who own the related area of endeavour, the person would need to have, effectively, a rolodex of the people in the project and what they are working on. I think Mel was beginning to do some of this, but he's probably going back to school soon.

* IDE development -- needs someone to coordinate and communicate

* scientific platform -- needs someone to make sure that the documentation is there for the various instruments (e.g. blueprints, plans, usage notes, that kind of thing), coordinate effort among the various hardware projects (and the software people), look for "missing elements" in the science-chest and get them started, and generally make sure that the science-chest is ready-to-go

For most of those, all that's really required is good organisational skills, interest and focus, time and lots and lots of emails and discussions as you try to herd the developers. Communicating status and availability of resources to the community is a key requirement for all of these people.


  1. Kumar McMillan

    Kumar McMillan on 09/20/2007 1:13 p.m. #

    In the company I'm at, the <a href="http://en.wikipedia.org/wiki/Scrum_(development)">Scrum Methodology</a> has been vital. The theories therein pretty much agree with what you've outlined, but make an extra separation about "ownership." It's the Product Owner who should actually own the product being developed, and thus who is responsible for the non-technical documentation as well as acceptance testing (maybe what you are calling "emulation"?). It's worth reading through some of this for ideas.

  2. Mike Fletcher

    Mike Fletcher on 09/20/2007 3:13 p.m. #

    By emulation I meant the system-emulation stuff, that is, the downloadable VMWare/VirtualBox images that let developers start working on day one.<br />
    <br />
    Sprints are well known in Python land (I got involved in the project via one). The lack of physical proximity (most projects are distributed across multiple geographic locations) makes the traditional scrum approach difficult at the moment. More general agile development stuff is often useful, and a project manager could certainly also be coming the ticket trackers and wiki to keep the project's focus. Daily meetings are great, but will likely need to be virtual for many of our projects.<br />
    <br />
    What I'm speaking of here, though, is cross-cutting individuals for the overall project. That is, someone who can work with 20 or 30 different groups in some instances. Think of them as a "customer" in the traditional agile sense, the person who pushes/demands the project to the point where the result can satisfy the need... In most of the bigger development teams I *think* those are called the project managers.

  3. Mel

    Mel on 09/21/2007 12:07 p.m. #

    Actually, I'm not going back to school - just graduated. I'm going to the Philippines to start up some OLPC grassroots stuff there. It'll be another week or two before I get consistent online time enough to do much volunteer coordination, but what you described is exactly what I'm trying to do (aside from the "12 timezones off from 1cc" bit). It's nice to see that someone else thinks we need it.

  4. Mike Fletcher

    Mike Fletcher on 09/21/2007 1:24 p.m. #

    Note for readers: <br />
    <br />
    The smallest project there is probably "emulation", as we've *almost* got it working, and once it's working we should be able to largely just go into "make sure it's still working" mode, maybe with some documentation and the like to make the setup better understood. The largest is probably one of accessibility or documentation, probably a bit too large if you're time-strapped.<br />
    <br />
    To start into one of these tasks, you need to familiarise yourself with the project, and likely make some noise asking questions on the appropriate lists as to how the project is currently working, who is doing the work, where it currently stands, etceteras. You will likely want to collect that information on the appropriate pages on the wiki and ask people to correct it as you go.<br />
    <br />
    In short, project management is likely going to be a "loud" job, with lots of back and forth. If you're interested, dive in, read up on the sub-project in the wiki and the mailing-list archives, announce your intentions on the mailing lists and move forward.

Comments are closed.


Pingbacks are closed.