I've worked in places that refused to allow us (IT) to write programs to automate processes that would have saved enough money yearly to buy a house. They were "severely concerned" because "if you leave or get hit by a bus, who will maintain it?"
I work at a place now where I can automate away with permission and prototype to show use case. I've been at this job a year and have already automated a goodly portion of the grunt work. Some of my colleagues look askance at me, and one has said, "you're automating us out of jobs, eventually, you do know this, right?" These guys/girls fear AI. I don't. I don't use it because God gave me a brain and I'm expected to exercise it. AI also feels like cheating to me. Sure, I may have to read the docs more, hit up someone on Stack Exchange, debug my code a little more, but you know what? I enjoy the challenge. I'm basically getting paid to have fun, despite the daily grind.
You're absolutely right about this on many levels. I also heard that quite a few times from my CEO, even though we often went with single smaller providers for things because he also wanted to cut corners.
In this case though, I'd say it was more about nepotism. The CEO wanted the deal with his old pals in exchange for access to the IBM sales pipeline so that we could sell their customers on storage deals on our hardware deployment. The only way to get access to the deals was to buy IBM hardware that was extremely over priced and far more "capable" than what we actually needed.
The fact that their sales teams outright lied about things they didn't even fully understand, was sickening for me. Thankfully other people on my team stepped up and helped prevent anything from moving forward.
I agree with you, automation is key.
I'm... Not seeing the logical connection here. If you could automate more of the work faster using AI than not using AI, why wouldn't you?
I don't want the answers, per se, I want guidance. AI would solve the issue for me. I don't want some bot thinking for me. I'll retire when I cannot suss out how to write code that solves problems or makes life easier.
And yes, I'm one of those holdouts who has never had the desire to even test out generative AI. I'm not worried about it supplanting me. I worried that I will lose my own edge and curiosity.
That is a good answer. Certain kinds of tools can become a crutch that limit you and stifle your own development. Maybe that's tolerable when it's not a core skill (e.g. never learning your way around your city because you only know how to react to GPS prompts), but when you're talking about a core job skill, it's a recipe for disaster (e.g. letting your skills atrophy or not developing them in the first place).
What is that French quote about: the more things change, the more they stay the same?
Or that George Santayana quote.
Which one?
I initially kind of assumed that most people would know about it, because it is a somewhat famous one, or at least, I've read it in many places. But your question made me realise that may not be the case. So, here it is, from the top of the above Wikipedia article about him, just below the header:
[ Santayana is popularly known for aphorisms, such as "Those who cannot remember the past are condemned to repeat it" ] .
IIRC, K&R said something similar in the first edition of their C book (referring to others' imagined reactions about the C strcmp function:
"What, you mean I have to call a function to compare two strings?"
They went on to add that they had tried to make C function call overhead quite low, to handle this issue.
For me, AI assistance has simply sped up the code I already know how to write (like structured test setups etc.) so I can focus more on the problems related to the business, which AI has no clue how to solve.
I use ChatGPT as a study partner in learning new direct-skills, as a soft-skills partner in navigating business dynamics, and a strategy partner in product work. It's very good at helping me learn to think better.
GPT 4 is basically useless for outputting the type of code (or writing) I need on a regular basis. It just doesn't have the right context to even be a viable tool beyond boilerplate/bootstrapping.
I mean... they kinda have a point don't they?
I was the sole maintainer on an app used by a Fortune 500 company, and if I were to get hit by a bus, it would've been very difficult (possibly impossible) to support it.
There was very little documentation, because nobody but me was maintaining it.
People are reverse engineering binary blobs, I’d say your software can be deciphered. It would be an hassle, but doable.
As an eng manager at an enterprise (not SV style tech) I differentiate between coders and developers.
Developers help our business by actively taking part in shaping software, automated workflows and integrations that makes us improve as a whole.
At lot of time is spent documenting and figuring out how that piece of software someone wrote 7 years ago, before us, works and what integrates.
This is why I firmly believe you need to tie documentation to running code in some way - at the very least a basic service graph that contains all services, dependencies and some metadata.
Tie this database to automatic firewall and proxy configuration and you’re on a good track.
We’ve on the other hand taken the strategic decision that tech and IT will help us win (is it the 90’s all over again?!) and we staff as such. A team is at least two, and no individual can own a service.
In one that I had direct experience in, they flew in one of the software's developers to do onsite troubleshooting. Also, being the hegemon of the tech world, IBM often would take the end-to-end role and not just stop at their boundary of a tech problem. I was involved in one in the late 1990's where we were running Netscape's iPlanet web server on an IBM JVM (on IBM's AIX) and it had a nasty memory leak in production where volumes were higher. We called Netscape and got what felt like a guy with a pager on the beach (it was outside business hours when we called); not helpful at all. We called IBM and things started to rock & roll. Eventually we had someone from their UK lab tracing the JVM until he found a JNI (Java Native Interface) call from external C-code (which would have been iPlanet's code) that had the wrong value for the flag that indicated who (JVM or C-code) should release the memory. He could have stopped there saying "not IBM's fault" but he just kept going reverse compiling the C-code to find the bad call. We were able to get back to Netscape saying in module yadayada.c, somewhere around line 47, there's a JNI call with flag=0, change it to flag=1. The patch from Netscape fixed the problem.
These infrequent critsits are something the C-suite remember for a very long time. They know that no way in hell their own staff could resolve these situations, especially in the days before the web, Stackoverflow, shared-knowledge, etc. If not for IBM squashing the bug, their bacon would be fried giving unsatisfactory explanations to their CEO.
3 years a tens of millions later the whole project is shut down with no value delivered except a single data store and a couple API endpoints. That exec went back to his IBM sales job.
Last I heard they were still paying for and maintaining all of it because that endpoint was used in a key product offering.
A former manager at another fairly old-line company, it will presumably be the only company he will have ever worked for--albeit through a couple acquisitions and some stuff during dot-bomb.