Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 4.06 KB

RUNNING_A_PROJECT.md

File metadata and controls

28 lines (22 loc) · 4.06 KB

Running a Project

UNDER CONSTRUCTION

As a project manager you are expected to be available in the Slack channel for your project to answer questions and give support to developers who are contributing to your project or trying to get "onboarded" or "setup" with your project.

We require the following:

  • We adhere to an agile methodology that usually includes these components:
    • There is a project story/tracking board (see note below) that is maintained by the product owner (if there is one for the project) or the project manager/lead otherwise. This provides a focal point for sprint planning and status tracking.
    • Scrums (aka standups) take place on a regular schedule - every weekday, 3 times a week, etc. - whatever meets the needs of the particular project. These are time-boxed (15 minutes) and follow the usual routine (What have you done since last scrum?, What will you be working on?, Do you have any blockers?). It is normal for topics to be brought up during the scrum, which are placed in the "parking lot" to be discussed after the scrum concludes. Also, the scrums serve as a good launching point for pair programming activity.
    • Development takes place in sprints, the duration of which are particular to each project, but are typically one or two weeks in length.
    • At the end of the sprint, a sprint review meeting is held - this would include the client as well as the entire team. Finished stories are shown to the client and either accepted or not accepted due to, for instance, being incomplete (from POV of client), missing the intent of the client, etc. These latter stories typically and pulled into the next sprint.
    • Sprint planning occurs as a regular activity. It is preferable for the team to plan the next sprint on the first day of that sprint. At the meeting, the project members discuss stories and vote on the level of effort required for stories. The stories are assigned to the sprint by the team, based on prioritization and the amount of the work the team can complete during the sprint. Note: Due to the geographically-distributed nature of many AV development teams, it is not always possible for the team to get together for a sprint planning meeting. In that case, methods of async voting and story discussion have to be used, such as slack channels (providing persistent messages).
    • Note the use of the word usually at the start of this section. This means that we are flexible in how projects manage themselves, with the goal of having all of the agile practices above included in that management scheme. However, any particular project may face circumstances that do not allow for full adoption of these practices. In any case, the project management process of any new project should be reviewed with senior AV advisors (e.g., the founders Sam and Thomas) to confirm adherence to the spirit of agile methodology if not always the letter.
  • all code related to the project should be stored in open source repositories (e.g. on GitHub) and links to that code prominently displayed in project pages or similar
  • where possible all meetings should be run in Google Hangouts and streamed/recorded to YouTube so that all team members can participate or observe. Please use AV Events to manage this process.
  • the project must provide an open-to-all project tracking board (e.g. Waffle or Pivotal Tracker) that will house tickets with the work that is needed to be done, placed in appropriate columns (e.g. icebox, estimated, ready, in-progress, review and done)
  • ...

We recommend the following:

  • Provide clear README.md and CONTRIBUTING.md in your open source repo with instructions for installing and getting set up with the project and how to contribute
  • Provide a mechanism to vote on tickets whether that it face to face in scrums/meetings in google hangouts, or via voting in the slack channel
  • Work should be started on things after a vote (estimate of complexity has taken place)
  • There should be at least three people voting on a story, and where possible at least one of those should be a senior developer
  • ...