Agility, Refinement, and Integration

background

Previously, NASA used agile-ish, reintroduced in 1990s

  • Contractors - agile to win contracts
  • Industry - still enjoys predictability and long-term commitments

agile characteristics

characteristics

  • continuous feedback - tests, customer guidance
  • adaptation - adjust short and long-term approaches

process is good, but if impedes, becomes problem

  • DoD release “detecting Agile BS”

DoD points

good indicators for developers

  • automated - testing, security, deployment
  • full ci/cd and IaC
  • direct user feedback
  • issue triage
  • clear release cycle plan

red flags

  • user not direct product
  • finish requirement >> get feedback
  • no devsecops

agility at dev level

feedback and adaptation guides “code construction”

  • design not too detailed (not feature) and supports change
  • focus on known behaviours first and refine details later

integration strategies from code complete and prag programmer

  • top down - main ideas then details
  • bottom up - fine grained then connect
  • sandwich - hybrid
  • risk-based - implement uncertain first

dealing with incomplete modules

all of approaches may integrate components

partial, fake, and prototype impl - common approach to progress

stub or fake impl aid in partition and team development

  • first design core API
  • independent work on different files