Skip to content

Commit d6775a1

Browse files
shiranrShiran RubinTessFerrandez
authored
Update content (#1111)
* update content for agile development * add section * remove * remove * fix * Update docs/CI-CD/README.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/async-collaboration-checklist.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/CI-CD/README.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/README.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/async-collaboration-checklist.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/async-collaboration-checklist.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/branching-and-cicd.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/branching-and-cicd.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/branching-and-cicd.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/async-collaboration-checklist.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/async-collaboration-checklist.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/branching-and-cicd.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/branching-and-cicd.md Co-authored-by: Tess Ferrandez <[email protected]> * Update docs/agile-development/branching-and-cicd.md Co-authored-by: Tess Ferrandez <[email protected]> --------- Co-authored-by: Shiran Rubin <[email protected]> Co-authored-by: Tess Ferrandez <[email protected]>
1 parent d4899a0 commit d6775a1

File tree

11 files changed

+148
-20
lines changed

11 files changed

+148
-20
lines changed

docs/CI-CD/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,26 @@ CircleCI also allows workflows, parallelism and splitting your tests across any
5757
### AppVeyor
5858

5959
AppVeyor is another free CI service for open source projects which also supports Windows-based builds.
60+
61+
## AI-assisted CI/CD authoring
62+
63+
AI tools can accelerate writing CI/CD pipeline YAML, jobs, and scripting snippets, but they must be used with explicit guardrails.
64+
65+
Suggested workflow:
66+
- Use AI to draft CI/CD pipeline templates or job steps as a starting point (for example, generating a minimal GitHub Actions workflow).
67+
- Run the draft pipeline in a safe non-production environment or CI sandbox to validate syntax and basic behavior.
68+
- Require a human reviewer to validate generated steps for correctness, idempotence, and security implications (especially around secrets, permissions, and external actions).
69+
- Add tests or smoke checks to the pipeline so changes can be validated automatically when the pipeline runs.
70+
- Promote approved templates into a central location (for example, `.github/workflows/` or a shared pipeline template repository) so teams reuse vetted, audited pipelines.
71+
72+
Guardrails and checklist (before merging AI-generated pipeline changes):
73+
- [ ] Human review completed and documented in PR
74+
- [ ] No secrets or credentials are hard-coded
75+
- [ ] Required linting and syntax checks pass locally and in CI
76+
- [ ] Security and license scans run and report no critical issues
77+
- [ ] Pipeline steps are idempotent and have clear rollback strategies where applicable
78+
- [ ] Generated content is annotated in the PR description (e.g., "AI-assisted draft") so reviewers know to apply extra scrutiny
79+
80+
Notes:
81+
- AI-generated pipelines are excellent for reducing boilerplate and accelerating iteration, but they do not replace domain knowledge and security review.
82+
- Maintain a small set of vetted pipeline templates to reduce risk and improve reproducibility.

docs/agile-development/README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Agile Development
22

3-
In this documentation we refer to the team working on an engagement a **"Crew"**. This includes the dev team, dev lead, PM, data scientists, etc.
3+
In this documentation we refer to the cross-functional delivery team as a **"Crew"** (i.e., the team responsible for delivery on a project). This includes the dev team, dev lead, product manager (PM), data scientists, etc.
44

55
## Why Agile
66

@@ -13,16 +13,26 @@ In this documentation we refer to the team working on an engagement a **"Crew"**
1313

1414
We care about the goal for each activity, but not necessarily about how they are accomplished. The suggestions in parenthesis are common ways to accomplish the goals.
1515

16-
- We keep a shared backlog of work, that everyone in the team can always access (ex. Azure DevOps or GitHub)
16+
- We keep a shared backlog of work that everyone on the team can access (e.g., Azure DevOps, GitHub, Jira or other backlog tools)
1717
- We plan our work in iterations with clear goals (ex. sprints)
1818
- We have a clear idea of when work items are ready to implement (ex. definition of ready)
1919
- We have a clear idea of when work items are completed (ex. definition of done)
2020
- We communicate the progress in one place that everyone can access, and keep the progress up to date (ex. sprint board and daily standups)
2121
- We reflect on our work regularly to make improvements (ex. retrospectives)
22-
- The team has a clear idea of the roles and responsibilities in the project (ex. Dev lead, TPM, Process Lead etc.)
23-
- The team has a joint idea of how we work together (ex. team agreement)
22+
- The team has a clear idea of the roles and responsibilities in the project (e.g., dev lead, Technical Program Manager (TPM), Process Lead, etc.)
23+
- The team has a clear idea of how we work together (ex. team agreement)
2424
- We value and respect the opinions and work of all team members.
2525

26+
## AI tooling considerations
27+
28+
Teams are increasingly adapting traditional Scrum practices to take advantage of AI tools and workflows. The tools emphasize rapid iteration, short discovery/validation cycles, and AI-assisted asset generation. Consider these principles as you tailor your process:
29+
30+
- Favor frequent, lightweight planning and validation over rigid, fixed-length cadences when it helps accelerate feedback loops and reduce cycle time.
31+
- Use AI-assisted tooling (for example, GitHub Copilot or planning assistants) to accelerate planning, generate drafts for reviews, and improve productivity—while maintaining human oversight and review.
32+
- Embrace shorter spikes and early validation (especially for UX and data science work) to de-risk solutions earlier.
33+
34+
These are patterns, not prescriptions — adapt them to fit your engagement and stakeholder needs.
35+
2636
## References
2737

2838
- [What Is Scrum?](https://www.scrum.org/resources/what-is-scrum)

docs/agile-development/advanced-topics/collaboration/pair-programming-tools.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ Additionally, scheduling these working sessions in advance ensures intentional c
1818

1919
With its cloud-based infrastructure, GitHub Codespaces presents a highly efficient and simplified approach to real-time collaborative coding. As a result, new team members can easily access the GitHub project and begin coding within seconds, without requiring installation on their local machines. This seamless, integrated solution for pair programming offers a streamlined workflow, allowing you to direct your attention towards producing exemplary code, free from the distractions of cumbersome setup processes.
2020

21-
### VSCode Live Share
21+
### Visual Studio Live Share
2222

23-
[VSCode Live Share](https://code.visualstudio.com/learn/collaboration/live-share) is specifically designed for pair programming and enables you to work on the same codebase, in real-time, with your team members. The arduous process of configuring complex setups, grappling with confusing configurations, straining one's eyes to work on small screens, or physically switching keyboards is not a problem with LiveShare. This innovative solution enables seamless sharing of your development environment with your team members, facilitating smooth collaborative coding experiences.
23+
[Visual Studio Live Share](https://code.visualstudio.com/learn/collaboration/live-share) is specifically designed for pair programming and enables you to work on the same codebase, in real-time, with your team members. The arduous process of configuring complex setups, grappling with confusing configurations, straining one's eyes to work on small screens, or physically switching keyboards is not a problem with LiveShare. This solution enables seamless sharing of your development environment with your team members, facilitating smooth collaborative coding experiences.
2424

2525
Fully integrated into Visual Studio Code and Visual Studio, LiveShare offers the added benefit of terminal sharing, debug session collaboration, and host machine control. When paired with GitHub Codespaces, it presents a potent tool set for effective pair programming.
2626

docs/agile-development/advanced-topics/collaboration/teaming-up.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Some potential steps in this phase may be as following (not limited):
2424

2525
- Identification of "Software Craftspersonship" areas which means the tools and methods will be widely used during the engagement and taking the required actions on team upskilling side if necessary.
2626

27-
- GitHub, VSCode LiveShare, AzDevOps, necessary development tools & libraries ... more.
27+
- GitHub, Visual Studio Live Share, Azure DevOps, necessary development tools & libraries, and other collaboration tools.
2828
- If upskilling on certain topic(s) is needed, identifying the areas and arranging code spikes for increasing the team knowledge on the regarding topic(s).
2929

3030
- Identification of communication channels, feedback loops and recurrent team call slots out of regular sprint meetings
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Asynchronous collaboration & accessibility checklist
2+
3+
Purpose: Practical guidance for distributed teams to collaborate effectively and inclusively across time zones.
4+
5+
## Async standup template
6+
7+
- Summary (yesterday): short bullet(s)
8+
- Plan (today): short bullet(s)
9+
- Blockers / help needed: short bullet(s)
10+
11+
Post the above in a shared channel or issue and use threaded replies for follow-ups.
12+
13+
## Async demo guidance
14+
15+
- Record a short demo (5-8 minutes) focusing on the outcome and acceptance criteria.
16+
- Include a short transcript or key bullet points in the PR or release note.
17+
- Add captions or a brief written summary for accessibility.
18+
19+
## Accessibility checklist for artifacts
20+
21+
- Provide alt text for images and diagrams.
22+
- Ensure headings and lists are semantically correct in markdown.
23+
- Provide captions/transcripts for videos and demos.
24+
- Ensure code samples are in accessible font sizes when shared in docs.
25+
26+
## Meeting scheduling and fairness
27+
28+
- Rotate meeting times or facilitators to share burden across time zones.
29+
- Use asynchronous agendas: post an agenda in advance and capture decisions in writing.
30+
31+
## PR and review expectations
32+
33+
- Include a short PR description and steps to validate.
34+
- Mark urgent reviews clearly; otherwise assume a 24-48 hour review window for non-urgent PRs.

docs/agile-development/backlog-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
- Consider the backlog refinement as an ongoing activity, that expands outside of the typical "Refinement meeting".
1313
- 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).
14-
- 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.
14+
- 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. e.g., in some projects, stories are refined as a crew, but tasks are created by individual developers on an as-needed basis.
1515
- 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.
1616

1717
## Resources
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Branching & CI/CD Guidance
2+
3+
Purpose: Provide a concise, practical policy and examples teams can adopt for integration, branching and CI gating. This page is intentionally short — teams should adapt the policy to their project and toolchain.
4+
5+
## Recommended approach
6+
7+
- Prefer trunk-based development where possible for new projects. Use short-lived feature branches when necessary and merge frequently into the default integration branch (commonly `main` or `trunk`).
8+
- Use branch protection rules on the integration branch to enforce quality gates (required passing CI, required code reviews, status checks).
9+
- Keep releases simple: use tags/releases from the integration branch and keep release process documented separately.
10+
11+
## Example branch protection rules
12+
13+
- Require at least one approving reviewer for pull requests.
14+
- Require successful CI pipeline status checks before merge.
15+
- Require up-to-date branch before merge if your policy prefers.
16+
17+
## Sample minimal GitHub Actions CI gate (example)
18+
19+
```yaml
20+
name: ci
21+
on: [pull_request]
22+
jobs:
23+
build-and-test:
24+
runs-on: ubuntu-latest
25+
steps:
26+
- uses: actions/checkout@v3
27+
- name: Set up Node.js
28+
uses: actions/setup-node@v3
29+
with:
30+
node-version: '18'
31+
- name: Install
32+
run: npm ci
33+
- name: Run tests
34+
run: npm test
35+
```
36+
37+
## Merge policy checklist (suggested)
38+
39+
- [ ] Code compiles and automated tests pass in CI
40+
- [ ] At least one approving reviewer has reviewed the change
41+
- [ ] The change has an associated work item or issue
42+
- [ ] Documentation updated where applicable
43+
44+
## Tips
45+
46+
- Keep feature branches short-lived; frequent merges reduce integration risk.
47+
- Automate as much of the gate (linting, unit tests, basic security scans) as possible to keep manual review focused on design and architecture.
48+
- Adapt branch protection to match team size and delivery cadence.
49+
50+
## CI/CD guidance
51+
52+
This page complements the central [CI/CD guidance](../CI-CD/README.md). Key expectations teams should follow:
53+
54+
- The integration (main) branch should be continuously shippable and stable — at any point we should be able to deploy a build from `main` to production if needed.
55+
- Run a quality pipeline (linting, unit tests, basic integration tests) on each PR and on merges to the integration branch.
56+
- Provision cloud resources and environment configuration via infrastructure-as-code (for example Terraform, Bicep, Pulumi) and exercise them in non-production environments.
57+
- Deploy release candidates automatically to a non-production environment to validate integration and operational concerns.
58+
- Automate release and rollback procedures so releases are repeatable and auditable.

docs/agile-development/ceremonies.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
- The Planning defines how the work is going to be completed in the sprint.
99
- Stories fit in a sprint and are [designed](../design/design-reviews) and [ready](./team-agreements/definition-of-ready.md) before the planning.
1010

11-
> **Note:** Self assignment by team members can give a feeling of fairness in how work is split in the team. Sometime, this ends up not being the case as it can give an advantage to the loudest or more experienced voices in the team. Individuals also tend to stay in their comfort zone, which might not be the right approach for their own growth.*
11+
> **Note:** Self assignment by team members can give a feeling of fairness in how work is split in the team. Sometimes, this ends up not being the case as it can give an advantage to the loudest or more experienced voices in the team. Individuals also tend to stay in their comfort zone, which might not be the right approach for their own growth.*
12+
13+
> Working with AI tools note: Some teams adapt sprint planning cadence to support the faster patterns which AI tools bring — favoring short, lightweight planning events or a continuous planning cadence when this enables faster feedback and delivery. Use AI-assisted planning tools (e.g., Copilot or planning assistants) to draft plans or acceptance criteria, but always validate and adapt output collaboratively with the team.
1214
1315
### Sprint Goal
1416

@@ -29,7 +31,7 @@ Example 1: Preparing in advance
2931
- The dev lead uses their experience (past and on the current project) and the estimation made for these stories to gauge how many should be in the sprint.
3032
- The dev lead asks the entire team to look at the tentative sprint backlog in advance of the sprint planning.
3133
- The dev lead assigns stories to specific developers after confirming with them that it makes sense
32-
- During the sprint planning meeting, the team reviews the sprint goal and the stories. Everyone confirm they understand the plan and feel it's reasonable.
34+
- During the sprint planning meeting, the team reviews the sprint goal and the stories. Everyone confirms they understand the plan and feel it's reasonable.
3335

3436
Example 2: Building during the planning meeting
3537

@@ -69,7 +71,7 @@ Examples of approaches for task creation and assignment:
6971
- The estimation process is improved over time and discussed on a regular basis.
7072
- Estimation is inclusive of the different individuals in the team.
7173

72-
Rough estimation is usually done for a generic SE 2 dev.
74+
Rough estimation is usually done using a representative mid-level engineer (for example, a typical mid-level developer) or based on team historical velocity.
7375

7476
### Example 1: T-shirt Sizes
7577

@@ -87,7 +89,7 @@ Rough estimation is usually done for a generic SE 2 dev.
8789

8890
- The team does planning poker and estimates in story points
8991
- Story points are roughly used to estimate how much can be done in next sprint
90-
- The dev lead and the TPM uses the past sprints and observed velocity to adjust project end date forecasting
92+
- The dev lead and the Technical Program Manager (TPM) use past sprints and observed velocity to adjust project end date forecasting
9193

9294
### Other Considerations
9395

docs/agile-development/team-agreements/definition-of-done.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The development team should decide together what their Definition of Done is and
1515
- [ ] Code review is complete
1616
- [ ] UX review is complete (if applicable)
1717
- [ ] Documentation is updated
18-
- [ ] The feature is merged into the develop branch
18+
- [ ] The feature is merged into the project's default integration branch (for example, `main` or `trunk`), or otherwise merged according to the project's agreed branching strategy.
1919
- [ ] The feature is signed off by the product owner
2020

2121
## Sprint Goal
@@ -24,7 +24,7 @@ The development team should decide together what their Definition of Done is and
2424
- [ ] Product backlog is updated
2525
- [ ] Functional and Integration tests pass
2626
- [ ] Performance tests pass
27-
- [ ] End 2 End tests pass
27+
- [ ] End-to-end tests pass
2828
- [ ] All bugs are fixed
2929
- [ ] The sprint is signed off from developers, software architects, project manager, product owner etc.
3030

docs/agile-development/team-agreements/definition-of-ready.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ When the development team picks a user story from the top of the backlog, the us
66
77
## What it is
88

9-
*Definition of Ready* is the agreement made by the scrum team around how complete a user story should be in order to be selected as candidate for estimation in the sprint planning. These can be codified as a checklist in user stories using [GitHub Issue Templates](https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository) or [Azure DevOps Work Item Templates](https://learn.microsoft.com/en-us/azure/devops/boards/backlogs/work-item-template?view=azure-devops&tabs=browser).
9+
*Definition of Ready* is the agreement made by the scrum team around how complete a user story should be in order to be selected as candidate for estimation in the sprint planning. These can be codified as a checklist in user stories using [GitHub Issue Templates](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository) or [Azure DevOps Work Item Templates](https://learn.microsoft.com/en-us/azure/devops/boards/backlogs/work-item-template?view=azure-devops&tabs=browser).
1010

1111
It can be understood as a checklist that helps the Product Owner to ensure that the user story they wrote contains all the necessary details for the scrum team to understand the work to be done.
1212

0 commit comments

Comments
 (0)