Skip to content

Instantly share code, notes, and snippets.

@jbaxleyiii
Created January 22, 2017 17:12
Show Gist options
  • Save jbaxleyiii/db1d293209f302e67bb4fec67f342b97 to your computer and use it in GitHub Desktop.
Save jbaxleyiii/db1d293209f302e67bb4fec67f342b97 to your computer and use it in GitHub Desktop.

Agile for NewSpring

A process for shipping reliable and excellent software at NewSpring.

Goals

  • consistently excellent feature releases
  • no regressions for each release
  • stable timelines for stakeholders
  • tight feedback loop between all parts of the team
  • authority and responsibility where knowledge exists

Roles

  • team members
  • product owner
  • architect
  • scrum master
  • product director
  • stakeholders

Meetings / Events

  • Standup
  • Review
  • Retrospective
  • Planning

Schedule

  • Tuesday morning: Planning meeting
  • Tuesday afternoon - Thursday: Sprint work
  • Sunday - Operations support (regression/defect fixes, minor features)
  • Monday - Thursday: Sprint work
  • Sunday - Operations support (regression/defect fixes, minor features)
  • Monday morning: Ship sprint work into production
  • Monday afternoon: Review / Retrospective

Overview of Sprint

A sprint is a period of focused work over the course of two weeks. Team members, the product owner, and the scrum master participate in the sprint in different capacities. Each sprint has a daily standup, one review, one retrospective, and one planning. A sprint begins when the planning meeting has started and ends after the retrospective has ended.

Starting with the planning meeting, the product owner brings to the team members a list of problems to be solved in the course of two weeks. The team, product owner, and scrum master discuss possible solutions to each problem arriving at the best possible solution given known contraints. The team reccomends a value of weight of the work in the form of story points which must be agreed upon by the team. Each story / bug should be detailed with a "story", "acceptance criteria", and any other information needed by the team to acomplish the task. When possible, sub-tasks should be added during the planning meeting to denote the sections of work needed. On average, each team member should accomplish 32 points each sprint though the weight of these points may vary from person to person. After all parties agree on the amount of work to be undertaken in the sprint, the planning meeting is done and the sprint starts.

At the beginning of each day during the sprint, the scrum master leads the team in a standup meeting. The goal of this meeting is to review the work accomplished the previous day, the work being done today, and if there have been any issues or if there are any outstanding issues preventing the planned work from being accomplished. This should take less than 15 mins. The standup is a CRITICAL time to bring issues to the attention of the team, the scrum master, and the product owner. It is a daily oppourtunity for feedback about ongoing work.

The day prior to planning, the team will ship any production ready features. This will happen in the morning to allow for time for the feature to be live, reviewed by the team, and any documentation updated regarding the new features. Features shipped during the sprint should also follow the same followup process as final features.

After shipping is done, the team will move into a review meeting. This meeting is vital to spread implementation knowledge to the other team members, as well as a time for the architect to review final work. Each team member will walk through the work they did over the sprint and any implementation details of which the team should be made aware. Not all work needs to be covered, but anything that will impact future work or ability to debug future regressions. Given time, this meeting also serves to introduce new techniques and research to the team.

Following the review meeting, the team + scrum master step into a retrospective meeting. This is the place to discuss issues that came up during the previous sprint or ideas to improve the overall process. It is a meeting to improved the process of the team, not to discuss inter-personal conflicts, feature implementation, or anything that does not relate to the agile process at NewSpring. Each team member is expected to provide feedback about the previous week and possible changes to the agile process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment