It looks like a nice book. Maybe I need to read it again for more insights and knowledge. Here I share with you what I found to be most delicious morsels in it.
Techniques for Enabling Constant Change
- Break up dependencies.
- Make decision reversible.
- Maintain "live" documentation.
Break up dependencies
Recall what Joel Spolsky admired about Microsoft Excel Team's guts? They hated dependencies so much that they even did their own compiler.
If you have time and resource, you should consider doing your own O/S, database, etc.
Make decision reversible.
Is this another XP(Extreme Programming) mantra?
Decisions small enough, separate/isolated/orthogonal enough, to reverse at small costs?
Maintain "live" documentation.
Is this what Bruce Tate in Better Faster Lighter Java calls "Transparency"?
A sort of self-documenting, self-explanatory, self-descriptive code?
Startup's Point of View
With minimal resources, software startups have little choice but to reuse third-party codes. Almost all of startup projects are exercises in integration.
Thus integration skills are strategic for startups.