Axioms of Software Design

Is there a small set of rules that govern the evolution of every software?

This talk covers a set of axioms which are believed to explain most (all?) phenomenons that we, developers, are facing in our daily work. By transcending beyond the level of patterns/practices these axioms help developers to treat design as a set of informed decisions rather than just "black magic".

  • Super-linearity: Complexity of programming tasks is super-linear.
  • Discontinuity: Small changes yield non-proportional results.
  • Entropy: Your code will become chaotic over time.
  • The Uncertainty Principle: The more detailed the specification the more error-prone it is.
The talk illustrates the practical applications of the axioms by discussing concrete cases from several projects that were held at IBM.

Itay Maman - itay [dot] maman [at] gmail [dot] com

Video From Itai's Talk during ILTEchTalks week -
Itay Maman,
Nov 18, 2010, 9:38 AM