dialectic view of software engineering

  • starts out ad hoc/informal (thesis)
  • everyone gets burned
  • react by moving to extreme formalism, waterfall model (antithesis)
  • result is slow and cumbersome, inflexible
  • move to agile processes where flexibility is formalized (synthesis)

ideas