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.
- 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?
- 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.
- 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.
- 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.