SWE team process

Non exhaustive list of process that a Software Engineering team can implement. Note that process should also be removed sometimes, not only be added.

Planning

  • Brainstorming sessions
  • Involving engineering in planning with other disciplines, such as design or business stakeholders
  • Project kickoffs
  • Design documents/requests for comments (RFCs)
  • Architecture decision records (ADRs)

Building

  • Prototyping
  • Code reviews
  • Automated testing
  • Continuous integration
  • Documenting decisions

Releasing

  • Continuous deployment
  • Release plans
  • Feature flags and experimentation
  • Signing off with stakeholders, such as product, compliance, security
  • Gathering feedback from customers
  • Canaries and automated rollbacks

Maintaining

  • Oncall process
  • Support engineering
  • Incident reviews
  • Improving infrastructure and platforms
  • Periods of non-product development, such as fixing tech debt, improving infrastructure

Engineering productivity

  • Team retrospectives
  • Handling tech debt
  • Investing in efficient tooling like CI/CD, helpful scripts, etc.
  • Reducing frequency of meetings
  • No-meeting days

Team health

  • Team events and offsites
  • Spontaneous team events like getting ice cream. For remote teams, organizing events where everyone gets together, or virtual, fun events
  • Celebrating team and individual achievements