On Roadmaps and Teams, Part Three

In my last post I argued that over the medium term:

  • Parrot needs to attract production users.
  • Production users need production-ready features.
  • Production-ready features are the only goals which qualify for placement on our roadmap.
  • Roadmap goals must have teams dedicated to their achievement.

Let's think through how these principles will affect our roadmap planning.

  1. We first have to ask:
    • What features would the Parrot VM have to have to get people enthusiastic about using it?
    • How will a particular feature increase Parrot's usability?
    • What new users will a particular feature attract to Parrot?
  2. Assuming that we cannot deliver all the features users need all at once, in what order should features be introduced?
    • Introduced, in this context, means: thoroughly developed and ready to be actively promoted in the larger open-source software world.
    • While determining what features Parrot ought to have and in which order features should be introduced is "ultimately" the responsibility of the Project as a whole, concretely, it is the Product Manager's job to set that agenda.
  3. Of the features users want, which ones do we have the resources to deliver on -- and which don't we have the resources to deliver on?
    • "Resources," in this context means: Groups of two or more Parrot project members who make a public commitment to work on the feature and have it ready for a particular supported release. Features lacking those resources can't go on the roadmap.
    • There may be a feature which users want and which we recognize is important for Parrot's long-term success. But if there is only a single developer who can create that feature, that feature must be excluded from the roadmap. It can still be worked on; it just can't be put on our roadmap. Nothing can go on the roadmap if it has a bus factor of one.
  4. Alright, we've decided that a particular item qualifies for placement on the roadmap. Who is going to be on that team? Who is going to lead that team?
    • When someone comes onto parrot-dev or #parrot and asks, "Does Parrot have X?" -- where X is a feature we do not yet have but are committed to -- we need to be able to say, "That is being worked on by the X team. Y is that team's leader, so Y is the person you need to speak with."

Next: Implications for our next Parrot Developers Summit, to be held the last weekend of this month.