Skip to content

Project Management

Andrew Leader edited this page Jun 14, 2019 · 14 revisions

This section of the wiki provides an overview of our end-to-end project management lifecycle, from customer feedback all the way to shipping features!

There are several distinct stages of the entire process.

Feedback

image

Feedback from customers comes in continuously from multiple sources. We have meetings with customers, we receive emails from customers, customers post on GitHub or StackOverflow, etc...

We aggregate all of this feedback into productboard. Our productboard is a private tool not open to the public (since meeting notes and feedback from customers may have private data). We link this feedback up to requests within productboard so that we can always view how many requests a feature has.

image

image

Planning and shipping a release

While the feedback stage happens continuously (including during the planning stage), planning and shipping happens in more of a waterfall sequence.

PM or dev Tool used Task
PM πŸ’‘ Decide which requests should be in the upcoming release. Through various criteria, like number of customer requests, priorities from customers, rough guestimates of the work involved, and more, the PMs decide which features should tentatively be part of the next release.
PM πŸ“© Push the requests to GitHub. Using the GitHub integration of productboard, PMs push the list of requests to GitHub, which creates issues for each request.
PM/dev πŸ’ Start writing proposals for the requests. Either the PMs or devs can start writing proposals for the requests in GitHub. The proposal is meant to be a high level description of how we think we'll solve the problem. It's not a full spec just yet, but it should paint a broad picture.
PM πŸ‘Œ Pre-review proposals with customers. Reach back out to the customers that asked for the features and validate that our proposal meets their needs.
PM/dev πŸ‘“ Review finished proposals. Once a proposal is finished, it's ready to review. The reviewing team will include PM and dev and any key stakeholders in the feature. The review is meant to cover the feature at a high level, deciding whether this is indeed the right direction to continue.
Dev πŸ“ Start writing dev spec. The dev can now start writing a dev spec for the feature. The dev spec should be authored in the specs folder, combined with the PM schema spec.
PM/dev ✍ Start writing PM spec. The PM (or dev) can also simultaneously start writing the PM schema spec, which should be authored in the specs folder.
Dev ⌚ Provide estimates. The dev should be able to provide estimates for how long the feature will take.
PM πŸ”„ Revise the list of features. With the new information about estimates and growing clarity of dev capacity, we might cut or re-prioritize some features.
PM/dev πŸ‘€ Review final PM/dev specs. After the specs have been completed, they must be reviewed with a team consisting of PM, dev, and key stakeholders.
Dev πŸ’» Code the feature!
Dev/PM πŸš€ Release the release
PM 😍 Notify customers. Tell the customers that asked for these features that they shipped!

Push the request to GitHub

Using the GitHub integration of productboard, PMs push the request to GitHub, which creates an issue for the request.

image

image

Start writing proposal

Either the PMs or devs can start writing proposals for the requests in GitHub. The proposal is meant to be a high level description of how we think we'll solve the problem. It's not a full spec just yet, but it should paint a broad picture. Edit the issue, replace it with the proposal template, and fill out the template.

WriteProposal

Review finished proposals

Once a proposal is finished, it's ready to review. The reviewing team will include PM and dev and any key stakeholders in the feature. The review is meant to cover the feature at a high level, deciding whether this is indeed the right direction to continue.

Write schema spec

The PM (or dev) starts writing the schema spec, contained in the specs folder.

The properties table in these specs is auto-generated from the schema, so the first step is updating the schema.

1. Clone the repo and create a branch for your feature.

2. Update the schema with the new properties/elements

In schemas\src, add your new properties/elements to the schema

UpdateSchema

3. Generate the updated spec

If you followed the setup instructions, simply save the file and the spec will be updated! Add any necessary rendering details to the spec.

UpdatedSpec

Review spec

Submit a pull request for your updated spec/schema.

image

Spec approved!

Once approved, the spec changes will be merged into master. The CI site will show the current schema in the schema explorer!

Code the feature!

Devs start coding. How do they get a view of what properties to change?

Home

Project Management

Clone this wiki locally