Software Delivery Performance - dennisholee/notes GitHub Wiki

https://www.devops-research.com/quickcheck.html

New work Unplanned work Rework

  • Requirements
  • Software

Westrum Organization Culture

Pathological Bureaucratic Generative
Power oriented Rule oriented Performance oriented
Low cooperation Modest cooperation High cooperation
Messengers "shot" Messengers neglected Messengers trained
Responsibilities shirked Narrow responsibilities Risks are shared
Bridging discouraged Bridging tolerated Bridging encouraged
Failure leads to scapegoating Failure leads to justice Failure leads to inquiry
Novelty crushed Novelty leads to problems Novelty implemented

https://cloud.google.com/architecture/devops/devops-culture-westrum-organizational-culture

Architecture

  • Make large-scale changes to the design of their systems without the permission of somebody outside the team or depending on other teams.
  • Make large-scale changes to the design of their system without depending on other teams to make changes in their systems or creting significant work for other teams.
  • Teams are able to complete work without needing fine-grained communication and coordination with people outside the team.
  • Teams deploy and release their product or service on demand, independently of the services it depends on or of other services that depend on it.
  • Teams do most of their testing on demand, without requiring an integrated test environment.
  • Teams can deploy during normal business hours with negligible downtime.

Versioning

Git Flow

One main development branch develop branch strict access create feature branches from main branch

  • create pull requests
  • developers comment on changes
  • accept pull release
  • merge to main branch

main branch reach maturity for release

  • Create separate release branch to prepare final version
  • test and bug fix
  • Merge to master branch and tag with release version.

Suitable

  • Open source project
  • Mostly junior developers
  • Established product or large development team

Not Suitable

  • Just starting out
  • Iterate quickly
  • Mostly senior developers

Trunk-based Development Workflow

  • Single branch master development model
  • Developer has open access
  • Sometimes create short-lived feature branches
  • Mitigates merge conflicts
  • Requires full source code review
  • Needs enforceable coding style

Suitable:

  • Just starting out
  • Iterate quickly
  • Mostly senior developers

Not Suitable

  • Open source project
  • Mostly junior developers
  • Established product or large development team