You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/CI-CD/README.md
+23Lines changed: 23 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,3 +57,26 @@ CircleCI also allows workflows, parallelism and splitting your tests across any
57
57
### AppVeyor
58
58
59
59
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.
Copy file name to clipboardExpand all lines: docs/agile-development/README.md
+14-4Lines changed: 14 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Agile Development
2
2
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.
4
4
5
5
## Why Agile
6
6
@@ -13,16 +13,26 @@ In this documentation we refer to the team working on an engagement a **"Crew"**
13
13
14
14
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.
15
15
16
-
- We keep a shared backlog of work, that everyone in the team can always access (ex. Azure DevOpsor 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)
17
17
- We plan our work in iterations with clear goals (ex. sprints)
18
18
- We have a clear idea of when work items are ready to implement (ex. definition of ready)
19
19
- We have a clear idea of when work items are completed (ex. definition of done)
20
20
- We communicate the progress in one place that everyone can access, and keep the progress up to date (ex. sprint board and daily standups)
21
21
- 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)
24
24
- We value and respect the opinions and work of all team members.
25
25
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
+
26
36
## References
27
37
28
38
-[What Is Scrum?](https://www.scrum.org/resources/what-is-scrum)
Copy file name to clipboardExpand all lines: docs/agile-development/advanced-topics/collaboration/pair-programming-tools.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,9 +18,9 @@ Additionally, scheduling these working sessions in advance ensures intentional c
18
18
19
19
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.
20
20
21
-
### VSCode Live Share
21
+
### Visual Studio Live Share
22
22
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.
24
24
25
25
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.
Copy file name to clipboardExpand all lines: docs/agile-development/advanced-topics/collaboration/teaming-up.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ Some potential steps in this phase may be as following (not limited):
24
24
25
25
- 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.
26
26
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.
28
28
- 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).
29
29
30
30
- Identification of communication channels, feedback loops and recurrent team call slots out of regular sprint meetings
Copy file name to clipboardExpand all lines: docs/agile-development/backlog-management.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@
11
11
12
12
- Consider the backlog refinement as an ongoing activity, that expands outside of the typical "Refinement meeting".
13
13
- 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 asneeded 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.
15
15
- 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.
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
- 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.
Copy file name to clipboardExpand all lines: docs/agile-development/ceremonies.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,9 @@
8
8
- The Planning defines how the work is going to be completed in the sprint.
9
9
- Stories fit in a sprint and are [designed](../design/design-reviews) and [ready](./team-agreements/definition-of-ready.md) before the planning.
10
10
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.
12
14
13
15
### Sprint Goal
14
16
@@ -29,7 +31,7 @@ Example 1: Preparing in advance
29
31
- 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.
30
32
- The dev lead asks the entire team to look at the tentative sprint backlog in advance of the sprint planning.
31
33
- 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.
33
35
34
36
Example 2: Building during the planning meeting
35
37
@@ -69,7 +71,7 @@ Examples of approaches for task creation and assignment:
69
71
- The estimation process is improved over time and discussed on a regular basis.
70
72
- Estimation is inclusive of the different individuals in the team.
71
73
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.
73
75
74
76
### Example 1: T-shirt Sizes
75
77
@@ -87,7 +89,7 @@ Rough estimation is usually done for a generic SE 2 dev.
87
89
88
90
- The team does planning poker and estimates in story points
89
91
- 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
Copy file name to clipboardExpand all lines: docs/agile-development/team-agreements/definition-of-done.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ The development team should decide together what their Definition of Done is and
15
15
-[ ] Code review is complete
16
16
-[ ] UX review is complete (if applicable)
17
17
-[ ] 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.
19
19
-[ ] The feature is signed off by the product owner
20
20
21
21
## Sprint Goal
@@ -24,7 +24,7 @@ The development team should decide together what their Definition of Done is and
24
24
-[ ] Product backlog is updated
25
25
-[ ] Functional and Integration tests pass
26
26
-[ ] Performance tests pass
27
-
-[ ] End 2 End tests pass
27
+
-[ ] End-to-end tests pass
28
28
-[ ] All bugs are fixed
29
29
-[ ] The sprint is signed off from developers, software architects, project manager, product owner etc.
Copy file name to clipboardExpand all lines: docs/agile-development/team-agreements/definition-of-ready.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ When the development team picks a user story from the top of the backlog, the us
6
6
7
7
## What it is
8
8
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).
10
10
11
11
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.
0 commit comments