As for the article content, I am in general somewhat skeptical of these highly-cerebral approaches of "what can we learn from that?" -- it is very hard to remember those maxims when you are setting out on a new project, even if they are taped up on your desk! A simpler maxim which would save a lot of effort is "You only have to solve the immediate problem in front of you -- stop trying to anticipate the next one," and perhaps another is "Don't start that project until you spend a whole shower/bath thinking up some perspectives on different ways to solve this problem." As Alan Kay says, the right perspective is worth 80 points of IQ. Maybe one more is "design top-down: create a non-working prototype of what you want the end user to be able to do if they could magically will some functions to exist, then fill in those functions' type signatures and some stubs, then fill in those functions' bodies."
So for example I bolted one idea on top of an existing infrastructure this past December. The preceding infrastructure was really good for what it did -- categorizing books statistically by content -- and this would look at the categories of the book and then perform some action with it. This works great for the 90% of the use-cases we care about and we have humans filter the remaining 10%, making them 10x more efficient -- great! Except for the setup, which is painfully expensive, because now we have to set up these category rules etc. for anyone who wants our custom-action service, which turns out to put 2 layers of indirection between "here is this book" and "here is the action I want to take on it." Some client says "well I want to filter out the books containing this phrase", now we have to define some new categories, some appropriate rules to filter into those categories, and then set up new rules to act on the assignment of this category -- not fun, and the many-to-many table joining categories to actions is just annoying to deal with.
Instead I should have implemented (and am now implementing) a little microlanguage where you can just read what causes the action in one TEXT field in the database, and decouple these two systems completely. Then it becomes easy to ask someone, "hey, could you specify those rules? Here's a widget to test against with validators..." and they can see it for themselves. Now they can build a bunch of these in some text or Excel or whatever document they're using, and just send them to me, and all I have to do is change curly-quotes to straight-quotes.