Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More agile cleanup #1061

Merged
merged 13 commits into from
Aug 22, 2024
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
## Always deliver your work using minimal valuable slices

- Split your work item into small chunks that are contributed in incremental commits.

- Contribute your chunks frequently. Follow an iterative approach by regularly providing updates and changes to the team. This allows for instant feedback and early issue discovery and ensures you are developing in the right direction, both technically and functionally.

- Do NOT work independently on your task without providing any updates to your team.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document outlines the benefits of adding a custom field of type _Identity_

## Benefits of adding a custom field

Having the names of both individuals [pairing on a story](README.md) visible on the Azure DevOps cards can be helpful during sprint ceremonies and lead to greater accountability by the pairing assignee. For example, it is easier to keep track of the individuals assigned stories as part of a pair during sprint planning by using the "pairing names" field. During stand-up it can also help the Process Lead filter stories assigned to the individual (both as an owner or as a pairing assignee) and show these on the board. Furthermore, the pairing field can provide an additional data point for reports and burndown rates.
Having the names of both individuals pairing on a story visible on the Azure DevOps cards can be helpful during sprint ceremonies and lead to greater accountability by the pairing assignee. For example, it is easier to keep track of the individuals assigned stories as part of a pair during sprint planning by using the "pairing names" field. During stand-up it can also help the Process Lead filter stories assigned to the individual (both as an owner or as a pairing assignee) and show these on the board. Furthermore, the pairing field can provide an additional data point for reports and burndown rates.

## Prerequisites

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Effortless Pair Programming with GitHub Codespaces and VSCode
TessFerrandez marked this conversation as resolved.
Show resolved Hide resolved

Pair programming used to be a software development technique in which two programmers work together on a single computer, sharing one keyboard and mouse, to jointly design, code, test, and debug software. It is one of the patterns explored in the section [why collaboration?](./why-collaboration.md) of this playbook, however with teams that work mostly remotely, sharing a physical computer became a challenge, but opened the door to a more efficient approach of pair programming.
Pair programming used to be a software development technique in which two programmers work together on a single computer, sharing one keyboard and mouse, to jointly design, code, test, and debug software. It is one of the patterns explored in the section [why collaboration?](why-collaboration.md) of this playbook, however with teams that work mostly remotely, sharing a physical computer became a challenge, but opened the door to a more efficient approach of pair programming.

Through the effective utilization of a range of tools and techniques, we have successfully implemented both pair and swarm programming methodologies. As such, we are eager to share some of the valuable insights and knowledge gained from this experience.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ However those phases can be extremely fast or sometimes mismatched in teams due
In order to minimize the risk and set the expectations on the right way for all parties, an identification phase is important to understand each other.
Some potential steps in this phase may be as following (not limited):

- [Working agreement](../team-agreements/working-agreements.md)
- [Working agreement](../../team-agreements/working-agreements.md)

- Identification of styles/preferences in communication, sharing, learning, decision making of each team member

Expand All @@ -29,7 +29,7 @@ Some potential steps in this phase may be as following (not limited):

- Identification of communication channels, feedback loops and recurrent team call slots out of regular sprint meetings

- Introduction to [Technical Agility Team Manifesto](../team-agreements/team-manifesto.md) and planning the technical delivery by aiming to keep
- Introduction to [Technical Agility Team Manifesto](../../team-agreements/team-manifesto.md) and planning the technical delivery by aiming to keep
technical debt risk minimum.

## Following the Plan and Agile Debugging
Expand All @@ -50,7 +50,7 @@ Just as an example, agility debugging activities may include:
- Are Acceptance Criteria enough and right?
- Is everyone ready-to-go after taking the User Story/Task?

- Running [Efficient Retrospectives](../../basics/ceremonies.md#retrospectives)
- Running [Efficient Retrospectives](../../ceremonies.md#retrospectives)
TessFerrandez marked this conversation as resolved.
Show resolved Hide resolved

- Is the Sprint Goal clear in every iteration ?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,20 @@ Delivery Plans ensure your teams are aligning with your organizational goals.

One approach you can take to accomplish is with stickies and a spreadsheet.

Step 1: Stack rank the features for everything in your backlog
1. Stack rank the features for everything in your backlog

- Functional Features
- [Non-functional Features] (docs/non-functional-requirements)
- User Research and Design
- Testing
- Documentation
- Knowledge Transfer/Support Processes
- Functional Features
- [Non-functional Features](../../../non-functional-requirements/)
- User Research and Design
- Testing
- Documentation
- Knowledge Transfer/Support Processes

Step 2: T-Shirt Features in terms of working weeks per person. In some scenarios, you have no idea how complex the work. In this situation, you can ask for time to conduct a spike (timebox the effort so you can get back on time).
1. T-Shirt Features in terms of working weeks per person. In some scenarios, you have no idea how complex the work. In this situation, you can ask for time to conduct a spike (timebox the effort so you can get back on time).

Step 3: Calculate the capacity for the team based on the number of weeks person with his/her start and end date and minus holidays, vacation, conferences, training, and onboarding days. Also, minus time if the person is also working on defects and support.
1. Calculate the capacity for the team based on the number of weeks person with his/her start and end date and minus holidays, vacation, conferences, training, and onboarding days. Also, minus time if the person is also working on defects and support.

Step 4: Based on your capacity, you know have the options
Based on your capacity, you know have the options

- Ask for more resources. Caution: onboarding new resources take time.
- Reduce the scope to the most MVP. Caution: as you trim more of the scope, it might not be valuable anymore to the customer. Consider a cupcake which is everything you need. You don't want to skim off the frosting.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Scrum of Scrums

Scrum of scrums is a technique used to scale Scrum to a larger group working towards the same project goal. In Scrum, we consider a team being too big when going over 10-12 individuals. This should be decided on a case by case basis. If the project is set up in multiple work streams that contain a fixed group of people and a common [stand-up](../../basics/ceremonies.md#stand-up) meeting is slowing down productivity: scrum of scrums should be considered. The team would identify the different subgroups that would act as a separate scrum teams with their own backlog, board and stand-up.
Scrum of scrums is a technique used to scale Scrum to a larger group working towards the same project goal. In Scrum, we consider a team being too big when going over 10-12 individuals. This should be decided on a case by case basis. If the project is set up in multiple work streams that contain a fixed group of people and a common [stand-up](../../ceremonies.md#stand-up) meeting is slowing down productivity: scrum of scrums should be considered. The team would identify the different subgroups that would act as a separate scrum teams with their own backlog, board and stand-up.

## Goals

Expand All @@ -15,7 +15,7 @@ The scrum of scrums ceremony happens every day and can be seen as a regular stan

The outcome of the meeting will result in a list of impediments related to coordination of the whole project. Solutions could be: agreeing on interfaces between teams, discussing architecture changes, evolving responsibility boundaries, etc.

This list of impediments is usually managed in a separate [backlog](../../basics/backlog-management.md) but does not have to.
This list of impediments is usually managed in a separate [backlog](../../backlog-management.md) but does not have to.

## Participation

Expand All @@ -29,7 +29,7 @@ When choosing to implement Scrum of Scrums, you need to keep in mind that some t

## Measures

The easiest way to measure the impact is by tracking the time to resolve issues in the scrum of scrums backlog. You can also track issues reported during the [retrospective](../../basics/ceremonies.md#retrospectives) related to global coordination (is it well done? can it be improved?).
The easiest way to measure the impact is by tracking the time to resolve issues in the scrum of scrums backlog. You can also track issues reported during the [retrospective](../../ceremonies.md#retrospectives) related to global coordination (is it well done? can it be improved?).

## Facilitation Guidance

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,19 @@

## Backlog

**Goals**

- User stories have a clear acceptance criteria and definition of done.
- Design activities are planned as part of the backlog (a design for a story that needs it should be done before it is added in a Sprint).

**Suggestions**

- Consider the backlog refinement as an ongoing activity, that expands outside of the typical "Refinement meeting".
- The team should decide on and have a clear understanding of a [definition of ready](team-agreements/definition-of-ready.md) and a [definition of done](team-agreements/definition-of-done.md).
- The team should have a clear understanding of what constitutes good acceptance criteria for a story/task, and decide on how stories/tasks are handled. Eg. in some projects, stories are refined as a crew, but tasks are created by individual developers on an as needed bases.
- Technical debt is mostly due to shortcuts made in the implementation as well as the future maintenance cost as the natural result of continuous improvement. Shortcuts should generally be avoided. In some rare instances where they happen, prioritizing and planning improvement activities to reduce this debt at a later time is the recommended approach.

## Other

This section has links directing you to best practices for managing Product and Sprint backlogs. After reading through the best practices you should have a basic understanding for managing both product and sprint backlogs, how to create acceptance criteria for user stories, creating a definition of done and definition of ready for user stories and the basics around estimating user stories.
## Links

- [Product Backlog](https://scrumguides.org/scrum-guide.html#product-backlog)
- [Sprint Backlog](https://scrumguides.org/scrum-guide.html#sprint-backlog)
Expand Down
Loading
Loading