Maintainable code is more an act of writing than of mathematics.
1. To reduce the number of changes that will need to be made to it.
2. To reduce the time it takes to make each change.
The (1) category encompasses the idea of making code that requires few changes. Such code is essentially "right" to begin with. I think about this mostly in terms of models -- i.e. does it accurately model the problem -- and quality -- i.e. does it have bugs or performance issues. Of course there are other concerns as well, but those are two big ones and they often involve thinking like a "computer scientist."
The (2) category -- reducing the effort of changes -- is achieved by using appropriate abstraction layers, encapsulation, low coupling, and other good-program design. There are many technical concerns in this category, but it seems there are some social ones as well.
I would say the programmer's experience is another huge factor. To sum it up in a phrase, perhaps "writing maintainable code is an act of prediction."
Since it's similar to math, it's as clear as it can be. Like functional programming - the cleanest code is one line of code which expresses the intent as an mathematical function.
He implies that this somehow falls into “socitech” ability, which it is not. Maintainable code is precise, well-factored code — almost pedantic — which requires an orthogonal (if not counterpointed) talent to the more “social” talents. I would go further to say that a mathematical understanding or at least inclination is required to write maintainable code. (In the sense that the same is required to write a readable academic paper.)
Another assumption he seems to make here is that somehow there are all these algorithmic hackers who sit and write algorithms all day. No, I doubt this has been some kind of norm ever. Most of what we (business software) programmers write is business logic and data processing with an occasional, infrequent need — but need nevertheless — to break out a unique algorithm.
You can scale up all you want and into the future but we are always going to need to understand the difference between a O(n^2) and O(n) algorithm.
I’m sick of these kinds of pieces that are pure philistinism. The future isn’t going to save you from your lack of technical skills, education and awareness. Stay curious and develop yourself — your social self as much as your craft and profession.