My Dad, CAD, and the Bad

Ben Prothe - - 5 mins read

CAD Perspective can be a funny thing… It’s so hard to remember your historical context when you’re “up to your ass in alligators” or “in the thick of it”.

Being a software engineer or any kind of tech-adjacent specialist has been a little intimidating lately with all of the AI hype. You’re probably tired of hearing about it, it’s so prevalent. Change like this stirs up anxiety and discontent. For one, there’s a change in the development workflow. We no longer manually write all of our code (or at least we probably shouldn’t); now it’s prompt => generate => review => tweak => test => repeat. There’s definitely something lost in the process that we fell in love with… feeling like a wizard flying through tabs and windows without lifting a finger off your keyboard… achieving “flow state” when you’re just so locked in and know what you’re trying to type well before you get there. It’s very different now and it feels like it only keeps getting further away from that classic programming flow.

Then there’s the more pronounced, existential fear. The fear that AI is going to displace developers in the longer term. Certain personalities on social media definitely seem intent on replacing or significantly reducing engineers as line items. I’ve got an anecdote for that last one. It’s not going to make this season of life any more comfortable, or make the alligators any less potent, but it can maybe give a hint of optimism for where we’ll end up.

Story Time

My dad is in town. He’s a retired mechanical engineer turned metallurgist. We were talking this morning about the advancements in technology since he was a student in the 80’s. I was curious when he picked up CAD. Computer-Aided Design, or CAD, is a type of application used by nuts-and-bolts engineers to diagram and design structures and parts for manufacturing. I only know about it because he frequently uses it to design projects like decks and sheds or other DIY projects for me and my siblings’ homes. His story was enlightening…

In college, the only computers available had to be fed paper cards with literal “scripts” for the computer to run… he thinks he remembers the languages he worked with were Cobol and Fortran 😂. He would insert the cards and then wait for the scripts to finish and check for errors or results… which took hours or til next day.

Outside of college, desktop computers started popping up but they were used strictly for word processing or pseudo-spreadsheet kinds of tasks. Engineering sketches were still done on physical paper by engineer draftsmen. In his second job his company had a proto-CAD application where a draftsman would use a stylus with an old school screen that looks straight out of scifi. That company manufactured fasteners for aircraft so you can imagine that those folks really had to know their stuff. It wasn’t until the 90’s with his third job that he was trained to use what we think of today as CAD software.

From his story I saw a few parallels to our current state of discomfort and anxiety:

First, that’s a lot of innovation over the course of 20 or so years. Talk about fundamental changes to how things are done! If the rapid changes of todays world feel uncomfortable, just remember that we’ve definitely been here before.

Second, the CAD software could do way more and do it quicker than a draftsman, but my dad pointed out that it could be deceptive. The end result would always “look good” but the visual polish could hide flaws. It became very important for anyone using the CAD to understand what the program was doing. Especially early on before best practices were solidified, it was actually quite easy to miss those things… which could be catastrophic and even lead to loss of human life.

Does that not sound so familiar to our situation today? We can use AI to generate huge swaths of code, in terms of raw lines added. Getting the result to actually work is the first level of difficulty. AI is pretty good at figuring out what connections might be missing to get something to work. But the architectural approach used? That needs to be solved before you even write the prompt. We need to understand what good software design looks like to be able to steer it clear of problematic, insecure, unmaintainable, unscalable patterns. We need to be able to recognize when the generators are repeating themselves and steer them towards abstraction. The need for skilled engineers has not gone away. But the day-to-day activities of those engineers have changed and will continue to change.

Third, I wondered what happened to those draftsmen who were so critical? Do you think they were shaken up by the emergence of technology that replaced the graphite, paper, and desklamp vibes they had chosen as a career? Probably. They probably also felt fear that they would all be replaced and that any engineer with potato fingers could draft diagrams. Sadly, I do think the magic of manual drafting was probably lost forever. As for replacement? I think those draftsmen became the very best CAD engineers because they were able to see past the superficial aspect of the new drafts and were painfully aware of different kinds of factors for which they needed to account.

Those points are where I’m choosing to aim my hopes for the future of software engineering and the “new normal”. I choose optimism! Will the nature of our work change? Absolutely. Will more, less specialized people be able to develop applications? Almost certainly. Will we be the best at it? Definitely. What about demand? Think of all the problems that will arise from having people from other backgrounds developing apps. Someone will need to swoop in and save the day, and they better know what they’re doing… so that someone does.

That’s it for today.

Peace!

Ben