From https://www.gnu.org/education/teaching-my-mit-classes-with-only-free-libre-software.html:
[...] The book is entitled “Software Design for Flexibility (how to avoid programming yourself into a corner)”; it will be published by MIT Press soon, with a Creative Commons Share Alike license (and all the code in support of the book is under the GNU GPL).
Too bad I already ordered it.