Synopsis

I wanted to get better at teaching software engineering. I quickly discovered that the trick of it was to turn my students' brains on. With the correct mental attitude in place, the details of anything they needed to do tended to sort themselves out.

Over many years I tried many things and kept whatever worked. The hyperlinked title leads to a complete set of my final material, which produces a step function in the usefulness of commercial IT staff, but is usually commercially unacceptable because it emphasises things like personal awareness and responsibility! Even more oddly, no-one will ever say why they will not discuss this stuff in commercial contexts - they just change the subject, or blame ISO9001 (which in itself is not to blame) every time.

I was of course aware that the direction my teaching practice was going in was the exact opposite of trends in the industry, which had come to believe in something called the Software Factory. In this, unskilled "code monkeys" are rewarded when they pretend to be mindless automatons themselves, executing programs found in shelfware - so called standards documents - which are taken as behavioural tramlines and micropoliced like scenes out of Monty Python's "Spanish Inquisition" sketch. Which causes a problem if the program they must write is not exactly the same as a program that has been written before. And that's all a good programmer should do! I was also aware that the way I was teaching students to approach problems worked, whereas Software Factories are a silly idea, sterile from the beginning.

I had a feeling I was onto something very important indeed here. It was the psychological equivalent of a stick with one end. If only I could find a way to look at it without getting cross-eyed, I could learn more than I could ever have hoped about the nature of "reality". So I stopped teaching and started investigating.