contentintech

Software Engineering Cheatsheet

Quick reference for software engineering — SDLC models, Scrum roles, design patterns, the test pyramid, git workflows, and CI/CD stages.

SDLCAgileTestingCI/CD
NotesCheatsheet

SDLC Models

Model Style Best for
WaterfallSequential, onceFixed scope, regulated
IterativeRepeated cyclesEvolving requirements
Agile / ScrumShort sprintsMost product teams
KanbanContinuous flow + WIP limitsSupport, ops, steady flow

Stages: Requirements → Design → Implement → Test → Deploy → Maintain.

Scrum

RolesCeremoniesArtifacts
Product OwnerSprint planningProduct backlog
Scrum MasterDaily standupSprint backlog
Dev TeamReview + retrospectiveIncrement
Sprint = 1-2 weeks, ends with a shippable increment.
Definition of Done: reviewed + tests pass + docs + deployed to staging.

Requirements

Story:  As a [role], I want [capability], so that [benefit].
Criteria: Given [context], When [action], Then [outcome].
INVEST:  Independent, Negotiable, Valuable, Estimable, Small, Testable
Functional = what it does;  Non-functional = perf, security, uptime, UX

Design

SOLID

LetterPrinciple
SSingle Responsibility — one reason to change
OOpen/Closed — extend, don't modify
LLiskov — subtypes are substitutable
IInterface Segregation — small interfaces
DDependency Inversion — depend on abstractions

Patterns (GoF)

TypeExamples
CreationalFactory, Builder, Singleton
StructuralAdapter, Decorator, Facade
BehavioralObserver, Strategy, Command
DRY   — don't repeat yourself
KISS  — keep it simple
YAGNI — don't build what you don't need yet

Testing

Test Pyramid

LevelScopeCount
Unitone function/classmany, fast
Integrationmodules + DB/APIsome
E2Ewhole systemfew, slow
TDD:  Red (failing test) -> Green (make it pass) -> Refactor
Test structure (AAA): Arrange -> Act -> Assert
Test edges + errors, not just the happy path. Coverage is a floor, not a goal.

Git & CI/CD

Git Workflow

git checkout -b feature/x   # branch off main
git commit -m "..."          # small, focused commits
git push -u origin feature/x
# open PR -> review -> CI green -> merge
git rebase main              # replay onto latest main
Trunk-based: short branches, merge often, feature flags hide WIP.

Pipeline & Deploys

TermMeaning
CIauto build + test every push
CD (delivery)always releasable
CD (deployment)auto-ship every passing change
Blue-greenswap two identical envs
Canaryrelease to small %, watch, roll out
stages: build -> test -> lint/scan -> deploy(staging) -> promote(prod)

Estimation & Review

Story points: relative size (Fibonacci 1,2,3,5,8,13), not hours.
Planning poker: estimate independently, then discuss gaps.
Velocity = avg points/sprint -> forecast; never a performance metric.
Split anything > ~8 points.
AuthorReviewer
Small PRs, clear why, self-reviewCorrectness, edges, tests, security
Respond promptlyAsk, don't command; flag blocking vs nit

Technical debt: track it, pay it down before it compounds.

Section navigation