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
- Pyramid vs. labyrint
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.