Chad Fowler, CTO of Wunderlist
"I want to build systems that will survive." I also have this feeling that software cannot last for long without turning into unmanageble pile of code. Interesting to see different points of view, John Ousterhout in his presentation about software design provided us with his point of view that length of code base does not really matter and depth would be the main thing to look for.
Chad is a proponent of tiny components. They are not talking about exactly the same thing, but it’s interesting to notice all this "guidelines" that worked for me and probably are not going to work to everybody.
Some very contradictory points was made by Chad in this presentation, but I sort of agree based on my current experience with some points, specially about shared code and treating code as "permanent"-thing.
I like the idea to write systems and plan code to be disposable.
The system is the asset, code is a liability
Mutability of the system is enhanced by immutability of its components
Code that works and has never been modified is good code. (???)
If it hurts, do it more often
Throw away the system and start over.
You should plan to throw code away.
Radically heterogenous environment to not become stuck with preconditions
No shared code
Metrics vs Tests