-
The Chinese Room
Suppose that you’re in a room and you receive pieces of paper, slipped under the door, that contain sequences of Chinese characters. You don’t know a single word of Chinese, but you have a huge notebook that has an exhaustive list of mappings of input sequences of Chinese characters to the corresponding output sequences. Using…
-
Don’t believe the hype. AI isn’t going to take your software developer job.
You’ve no doubt read dozens of posts about AI taking or not taking your software developer job. But you haven’t read one written by me, so here we go. Now I know what you’re thinking. Gee Mike, you’re as old as dirt. What the hell do you care whether AI takes my job? You’re going…
-
The Long and Winding Road to Fruition
A little more than 30 years ago, I wrote a Master’s Thesis that describes a framework for building a semantic model that could represent a set of requirements so completely, concisely and precisely that code, even an entire application’s worth of code, could be automatically generated from that model. It’s title is “A complete semantic…
-
Down the Rabbit Hole of Suck, Part 2
In part 1 of this post, I introduced the notion of software inventors, which I believe captures fairly well what we software professionals do for a living. Being software inventors doesn’t mean that we’re inventors in the traditional sense. We work in a software industry that requires systems to be developed and delivered. Being software…
-
Down the Rabbit Hole of Suck, Part 1
As a software professional, I have striven throughout my career to do the best job building software that I can. I’m sure all of you in the software profession who are reading this have done the same. The general standard for doing a good job building software has been illustrated by the iron triangle, which…
-
The Curmudgeon’s Guide to Unit Testing
What, yet another blog entry on testing? Yeah, but there’s something special about this one. I wrote it, to pass on some things I’ve learned about testing over the years. Why test? Well, that’s an easy question. We test to make sure code functions correctly. More specifically, we’re doing validation, which is ensuring that the…