Skip to content

Commit d2d06ad

Browse files
authored
Merge pull request #33 from Niodus/update
Update
2 parents 79d4730 + 4cc0a14 commit d2d06ad

23 files changed

Lines changed: 690 additions & 124 deletions

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) [2022] [Scott McCarthy]
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Design Patterns
2+
3+
The design patterns section recommends patterns of software and architecture design.
4+
This section provides a curated list of commonly used patterns from trusted sources.
5+
Rather than duplicate or replace the cited sources, this section aims to compliment them with suggestions, guidance, and learnings based on firsthand experiences.
6+
7+
## Subsections
8+
9+
* [Data Heavy Design Guidance](data-heavy-design-guidance/README.md)
10+
* [Object Oriented Design Reference](object-oriented-design-reference/README.md)
11+
* [Distributed System Design Reference](distributed-system-design-reference/README.md)
12+
* [REST API Design Guidance](rest-api-design-guidance/README.md)

docs/best-practices/continuous-planning/agile-development/sprint-planning.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
# Sprint Planning
1+
---
2+
title: Sprint Planning
3+
summary: A guide to sprint planning
4+
author: Scott McCarthy
25

6+
---
37
## Overview
48

59
During the [sprint planning](https://www.agilealliance.org/glossary/sprint-planning), the team discusses and agrees on the scope for the upcoming sprint.
@@ -30,9 +34,9 @@ Specific roles:
3034

3135
[**Product owner**](https://www.agilealliance.org/glossary/product-owner/):
3236

33-
- Prior to the sprint planning: performs some [backlog refinement](/continuous-planning/agile-development/backlog-management/backlog-refinement.md) to ensure that each story that they want to propose for the new sprint (*)
37+
- Prior to the sprint planning: performs some [backlog refinement](backlog-management.md#backlog-refinement) to ensure that each story that they want to propose for the new sprint (*)
3438
- Is in the correct position in the backlog, by right priority order.
35-
- Is attending the [definition of ready](/continuous-planning/agile-development/team-agreements/definition-of-ready.md)- Do NOT pre-assign stories to the future sprint. This is the purpose of the sprint planning.
39+
- Is attending the [definition of ready](team-agreements/definition-of-ready.md)- Do NOT pre-assign stories to the future sprint. This is the purpose of the sprint planning.
3640
- During the meeting:
3741
- Clarify team's questions and improve the story accordingly, if necessary.
3842
- Describe to the team the stories that they propose for the sprint.
@@ -41,11 +45,11 @@ Specific roles:
4145

4246
- Listen to the product owner story description.
4347
- Ask questions to make sure everyone understands each story properly.
44-
- [Estimate](/continuous-planning/agile-development/sprint-planning/estimation.md) the effort for each backlog item, as a team.
48+
- [Estimate](sprint-planning/estimation.md) the effort for each backlog item, as a team.
4549
- Split each story into tasks.
4650
- (Optional) self assign first task to team members.
4751

48-
*(\*) some teams find useful to define a **[Definition of ready](/continuous-planning/agile-development/team-agreements/definition-of-ready.md)** that describes the list of things that needs to be done in each story before the **product owner** can propose it for a **sprint**. The list proposed here is the classic minimal definition of ready.*
52+
*(\*) some teams find useful to define a **[Definition of ready](team-agreements/definition-of-ready.md)** that describes the list of things that needs to be done in each story before the **product owner** can propose it for a **sprint**. The list proposed here is the classic minimal definition of ready.*
4953

5054
## Impact
5155

@@ -68,7 +72,7 @@ Prior to the meeting:
6872

6973
- Set sprint goal.
7074
- Make sure the backlog is prioritized.
71-
- Make sure each story that is a candidate for next sprint is [ready](/continuous-planning/agile-development/team-agreements/definition-of-ready.md).
75+
- Make sure each story that is a candidate for next sprint is [ready](team-agreements/definition-of-ready.md).
7276

7377
During the meeting:
7478

@@ -81,4 +85,4 @@ During the meeting:
8185
Other considerations:
8286

8387
- Take into account off days (vacations, national holidays, unavailability).
84-
- When the backlog reaches a size that makes it difficult to manage by one team, you might want to split into different work streams. This might require thinking about [scrum of scrums](/continuous-planning/agile-development/scrum-of-scrums.md) and all related ceremonies.
88+
- When the backlog reaches a size that makes it difficult to manage by one team, you might want to split into different work streams. This might require thinking about [scrum of scrums](scrum-of-scrums.md) and all related ceremonies.

docs/best-practices/continuous-planning/agile-development/sprint-planning/Sprint-Structure.md

Lines changed: 0 additions & 75 deletions
This file was deleted.

docs/best-practices/continuous-planning/agile-development/sprint-planning/Estimation.md renamed to docs/best-practices/continuous-planning/agile-development/sprint-planning/estimation.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
# Goals for Estimation
1+
---
2+
title: Estimation
3+
summary: A guide to estimating stories and tasks
4+
author: Scott McCarthy
5+
date: 18/08/2022
6+
7+
---
28

39
When a team adopts agile, as the team works together, the process of estimating
410
new work becomes more effective. Over time, they get a sense for how their team
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
title: Structure of a Sprint
3+
summary: A guide to how a sprint should be structured
4+
author: Scott McCarthy
5+
date: 18/08/2022
6+
7+
---
8+
9+
The purpose of this document is to:
10+
11+
- Organize content in the playbook for quick reference and discoverability
12+
- Provide content in a logical structure which reflects the engineering process
13+
- Extensible hierarchy to allow teams to share deep subject-matter expertise
14+
15+
## The first week of a Project
16+
17+
### Before starting the project
18+
19+
- Discuss and start writing the [Team Agreements](../team-agreements.md). Update these documents with any process decisions made throughout the project
20+
- [Working Agreement](../team-agreements/working-agreements.md)
21+
- [Definition of Ready](../team-agreements/definition-of-ready.md)
22+
- [Definition of Done](../team-agreements/definition-of-done.md)
23+
- [Estimation](estimation.md)
24+
- XXX [Set up the repository/repositories](source-control/README.md#creating-a-new-repository)
25+
- Decide on repository structure/s
26+
- XXX Add the following files [README.md](resources/templates/README.md), [LICENSE.md](resources/templates/LICENSE), [CONTRIBUTING.md](resources/templates/CONTRIBUTING.md), .gitignore, etc
27+
- Build a [Product Backlog](../backlog-management.md)
28+
- Set up a project in your chosen project management tool (ex. Azure DevOps or JIRA)
29+
- [INVEST](<https://en.wikipedia.org/wiki/INVEST_(mnemonic)>) in good User Stories and Acceptance Criteria
30+
- XXX [Non-Functional Requirements Guidance](design/design-patterns/non-functional-requirements-capture-guide.md)
31+
32+
### Day 1 Activities
33+
34+
- [Plan the first sprint](../sprint-planning.md)
35+
- Agree on a sprint goal, and how to measure the sprint progress
36+
- Determine team capacity
37+
- Assign user stories to the sprint and split user stories into tasks
38+
- Set up Work in Progress (WIP) limits
39+
- XXX [Decide on test frameworks and discuss test strategies](automated-testing/README.md)
40+
- Discuss the purpose and goals of tests and how to measure test coverage
41+
- Agree on how to separate unit tests from integration, load and smoke tests
42+
- Design the first test cases
43+
- XXX [Decide on branch naming](source-control/naming-branches.md)
44+
- XXX [Discuss security needs and verify that secrets are kept out of source control](continuous-delivery/secrets-management/recipes/azure-devops/secrets-per-branch.md)
45+
46+
### Day 2 Activities
47+
48+
- XXX [Set up Source Control](source-control/README.md)
49+
- XXX Agree on [best practices for commits](source-control/README.md#commit-best-practices)
50+
- XXX [Set up basic Continuous Integration with linters and automated tests](continuous-integration/README.md)
51+
- Set up meetings for [Daily Stand-ups](../stand-ups.md) and decide on a Process Lead
52+
- Discuss purpose, goals, participants and facilitation guidance
53+
- Discuss timing, and how to run an efficient stand-up
54+
- If the project has sub-teams, set up a [Scrum of Scrums](../scrum-of-scrums.md)
55+
56+
### Day 3
57+
58+
- [ ] [Agree on code style](code-reviews/README.md) and on [how to assign Pull Requests](code-reviews/pull-requests.md)
59+
- [ ] [Set up Build Validation for Pull Requests (2 reviewers, linters, automated tests)](code-reviews/README.md) and agree on [Definition of Done](agile-development/team-agreements/definition-of-done.md)
60+
- [ ] [Agree on a Code Merging strategy](source-control/merge-strategies.md) and update the [CONTRIBUTING.md](resources/templates/CONTRIBUTING.md)
61+
- [ ] [Agree on logging and observability frameworks and strategies](observability/README.md)
62+
63+
### Day 4
64+
65+
- [ ] [Set up Continuous Deployment](continuous-delivery/README.md)
66+
- Determine what environments are appropriate for this solution
67+
- For each environment discuss purpose, when deployment should trigger, pre-deployment approvers, sing-off for promotion.
68+
- [ ] [Decide on a versioning strategy](source-control/component-versioning.md)
69+
- [ ] Agree on how to [Design a feature and conduct a Design Review](design/design-reviews/README.md)
70+
71+
### Day 5
72+
73+
- [ ] Conduct a Sprint Demo
74+
- [ ] [Conduct a Retrospective](agile-development/retrospectives.md)
75+
- Determine required participants, how to capture input (tools) and outcome
76+
- Set a timeline, and discuss facilitation, meeting structure etc.
77+
- [ ] [Refine the Backlog](agile-development/backlog-management/backlog-refinement.md)
78+
- Determine required participants
79+
- Update the [Definition of Ready](agile-development/team-agreements/definition-of-ready.md)
80+
- Update estimates, and the [Estimation](agile-development/sprint-planning/estimation.md) document
81+
- [ ] [Submit Engineering Feedback for issues encountered](engineering-feedback/README.md)

docs/best-practices/continuous-planning/agile-development/stand-ups.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ The stand-up is a time-boxed ceremony that is held each day of the sprint. In th
77
1. What did you work on yesterday that contributes to meet the sprint goal?
88
2. What are you working on today that will contribute to meet the sprint goal?
99
3. Do you have any impediments/blockers or need any help? (defer discussion / resolution to "the parking lot", described below)
10-
4. An [optional social question](/continuous-planning/agile-development/stand-ups/social-question.md), e.g. "would you rather see the past or the future?"
10+
4. An optional [social question](stand-ups/social-question.md), e.g. "would you rather see the past or the future?"
1111

1212
During the stand-up, additional discussions may arise. Make sure that someone adds them to the parking lot for after meeting discussion.
1313

@@ -90,7 +90,7 @@ Ensure discussion leaders call out necessary parties for their discussion points
9090

9191
### Social question
9292

93-
Teams are frequently geographically distributed and include members who have not worked on projects together previously. Social interactions facilitate the development of trust between team members and lower the barriers to collaboration. A social question-of-the-day that has a one-sentence answer contributes to trust development over the course of many stand-ups, with a minimal additional time commitment. The answer to the social question should be brief and follow the project questions answer. The facilitator may choose the social question or take a suggestion from the room. Description of what makes a good question, and a list of starter questions are available within the [social question](/continuous-planning/agile-development/stand-ups/social-question.md) page.
93+
Teams are frequently geographically distributed and include members who have not worked on projects together previously. Social interactions facilitate the development of trust between team members and lower the barriers to collaboration. A social question-of-the-day that has a one-sentence answer contributes to trust development over the course of many stand-ups, with a minimal additional time commitment. The answer to the social question should be brief and follow the project questions answer. The facilitator may choose the social question or take a suggestion from the room. Description of what makes a good question, and a list of starter questions are available within the [social question](stand-ups/social-question.md) page.
9494

9595
### Start On Time
9696

docs/best-practices/continuous-planning/agile-development/stand-ups/Social-Question.md renamed to docs/best-practices/continuous-planning/agile-development/stand-ups/social-question.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
# Social Question of the Day
1+
---
2+
title: Social Question
3+
summary: Some optional questions that will help to build team trust.
4+
author: Scott McCarthy
5+
date: 18/08/2022
6+
7+
---
28

39
The social question of the day is an optional short question to follow the [three project questions](README.md) in the daily stand-up. It develops team cohesion and interpersonal trust over the course of an engagement by facilitating the sharing of personal preferences, lifestyle, or other context.
410

docs/best-practices/continuous-planning/agile-development/team-agreements/definition-of-ready.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
# Definition of Ready
1+
---
2+
title: Definition of Ready
3+
summary: a definition of what Ready means in agile
4+
author: Scott McCarthy
5+
6+
---
27

38
When the development team picks a user story from the top of the backlog, the user story needs to have enough detail to estimate the work needed to complete the story within the sprint. If it has enough detail to estimate, it is Ready to be developed.
49

@@ -37,6 +42,6 @@ The ready checklist should contain items that apply broadly. Don't include items
3742

3843
In the case that the highest priority work is not yet ready, it still may be possible to make forward progress. Here are some strategies that may help:
3944

40-
* [Backlog Refinement](../backlog-management/backlog-refinement.md) sessions are a good time to validate that high priority user stories are verified to have a clear description, acceptance criteria and demonstrable business value. It is also a good time to breakdown large stories will likely not be completable in a single sprint.
45+
* [Backlog Refinement](../backlog-refinement.md) sessions are a good time to validate that high priority user stories are verified to have a clear description, acceptance criteria and demonstrable business value. It is also a good time to breakdown large stories will likely not be completable in a single sprint.
4146
* Prioritization sessions are a good time to prioritize user stories that unblock other blocked high priority work.
4247
* Blocked user stories can often be broken down in a way that unblocks a portion of the original stories scope. This is a good way to make forward progress even when some work is blocked.

0 commit comments

Comments
 (0)