Agile discussion (TeamA)
Sylvain Fargier (BE-CEM)
06/11/22
Agile/Scrum overview
-
Agile Scrum
- Based on "agile-manifesto"
- Fixed length sprints, using a backlog of user-oriented stories : "As a user I want to ..."
Agile: Scrum

Agile/Scrum example cycle
Agile : Scrum ceremonies

Agile/Scrum ceremonies and timeline
- Practices from XP (extreme-programming)
- And from DevOps
- From Kanban using a board
Agile : Good Practices

General DevOps cycle
Planning poker deck
Our workflow
- Backlog
- Jira board integrating several projects
- Using per-project releases
- KanBan board (see Jira board)
- Daily-Scrum
- On Mattermost In addition to on-site stand-up dailies (on Monday)
- Weekly code-reviews / demo
- Friday afternoons, on site
Project management


KanBan board (Jira)&
Daily-scrums (Mattermost)
- Homegeneous
- On GitLab
- CI and tools rules
- Containerized build environment
- Directory layout, naming, styling ...
- Consistent techs and frameworks
- Documented
- templates & boilerplates (cpp/web)
- guidelines & readmes
- playgrounds & live-documentation
- Formal documentation streams and tooling
Projects & Repositories

Repository organisation and worflow
- Peer-review oriented workflow
- Using CERN/GitLab merge-requests
- Relying on CI tests and analysis results
-
Per component maintainers
- To empower and give sense of responsibility to developers
-
Homogeneous workflow rules
- Large number or repositories and users
- Enforced using automated tools
Team work


Merge-requests & CI (GitLab)
- Weekly code-review
- Show your work to others
- Open discussions and exchanges
-
Weekly builds
- Rebuild and validate everything
- Dependencies, platforms, environment evolves,
- "Better fix sooner than later"
- Pair coding and reviews
- Since software is all about learning
Quality & reviews


Playground code examples
Deployment & Production
- Automated deployments
- For web-applications using CERN/OpenShift
- For middleware using packages (deb, RPMs) and Puppet
- Roles separation
- Developers are not admins but can trigger software deployment
- Traceability and reproducibility
- Version tag based (v1.x.x)
- Deployed from versioned build environments
Deployments & Production

Continuous Deployment workflow
- Project specific development environment
- Container based using MRO/x-builder utilities
- Identical to build environment used for production
- No setup time required and identical results for all developers, project switch requires no setup/preparation time
-
Protected production environment
-
alpha/beta/production deployments for web-applications
- container based, end-user validation and pre-production testing
-
Puppet based deployments for middleware
- enforces deployed configuration and packages
-
alpha/beta/production deployments for web-applications
Env. & Deployments

Agile Discussion
By Sylvain fargier
Agile Discussion
- 273