| wikis | index


Software Engineering

Complexity

  • Coding is about creating code
  • Software Engineering is about managing complexity - creating structure

    • We want simple code, so that humans can understand it easily, without wasting mental resources.
  • Structure

    • Pyramid vs. labyrint
      • any new level constructs a new game (level). until game over at the top
    • Structure (vertical) vs one more (copy & paste; horizontal)
    • Computer is a one-more machine; waving
    • Human intellect can construct structure from what it has at disposal
    • Automation: one more -> structure
    • Divide and conquer; thinking; ordering
    • Problem solving; odyssey
    • Vertical vs. horizontal structure
      • serialize vs. parallelize

chunking, 7 +/- 2 light vs. matter structure sometimes need to change (when one new comes around). that's SWE process.

  • Divide and Conquer
  • Method of loci, mushrooms, recall
  • chess peon vs. knight (includes all)

Documentation

  • Not having to map the labyrint by oneself, but having a pyramid at disposal.

Refactoring

Testing

  • Tests are the scaffolding for your structure. They verify that structure once constructed doesn't fall.