"In 1968, there was no such thing as a programmer."
This is how Dave West started a talk at DDDEurope 2020.
I found it very thought-provoking, and I now wonder if we should go back before 1968.
The talk's core message is that until 1968, the programmer profession did not exist. Instead, according to the speaker, bankers knew how to program in Cobol, and physicists knew how to write Fortran. Coding software was just a tool in the hands of domain experts. Since then, this picture has drastically changed, and the talk concludes that programmers need to shift focus back to become domain experts again. I concur.
Crossing the chasm
According to West, the programmer profession started to emerge in 1968. Since then, all that is to be learned by software engineers in universities is about the technical aspects of software engineering and nothing about the domain side of things.
Dave West's first programmer job was in a bank. He had to take courses in banking. Think of it, how many of us take courses in the domains for which they write software? Not a lot, I guess. Did I learn how language courses are sold and taught? No. Did I understand what's involved in simulating the stiffness of a car door? No. Did I learn what the tasks of a hotel restaurant manager are? No.
West's talk continues with how OOP, Agile / XP, and DDD were all attempts to cross the chasm between domain expertise and software engineering. He concludes that software engineers need to focus much more on the business domain itself and techniques of how to understand the domain in the first place. He calls that the future of software development.
I wholeheartedly agree that this can't be a bad thing because what's the value of running fast in the wrong direction?
Train domain experts on how to write code?
However, is the speaker's conclusion even radical enough? What if we go back before 1968 when "there was no such thing as a programmer"? What if our educational system stops producing masses of software engineers and starts teaching domain experts on how to write code to solve their problems?