That's because AI allows poor programmers to appear as good programmers, which is actually a good thing as otherwise they'd be writing crap you'd have to code-review, but their understanding of what is good code is poor, so you're back to having to vet it all anyway. At least you can us AI for that. Except you can't, without vetting it.
I literally just today watched my entire team descend into "Release Hell" where an obscure bug in business logic already delivered to thousands of customers broke right as we were about to ship a release. Obscure bug, huge impact on the customer, as they actually ended up charging people more than they should have. The team-members, and yes, not leads, used AI to write that bug and then tried to prompt their way out of the bug. It turned into a giant game of whack-a-mole as other business logic had errors introduced that thankfully got caught by tests. Then it was discovered that they never understood the code, they could only maintain it with prompts.
Let that sink in. They don't understand what they're doing, they just massage the spec into prompts and when it appears to work and pass tests they call it good.
We looked at the prompts. They were insane. They actually just kept adding more specification to the end, but if you read through it all it had contradictory logic, which I would have hoped the AI would have pointed out, but nope. It was actually just easier for me and another senior to rewrite the logic as pseudo-code, cut the size down by literally 3/4, and eventually got it all working as expected.
So that's the future, girls and boys. People putting together code they don't understand with AI, and can only maintain with AI, and then not being able to fix with AI because they cannot prompt accurately enough because English sucks at being precise.
I have literally been doing we development since their was a web, and the companies I developed for are openly hostile to the idea of putting their valuable, or perceived valuable, information online in a format that could be easily scraped. Information doesn't want to be free, it wants to be paid for. Unless the information shared pulls visitors to the site it doesn't need to be public.
I'd be willing to bet that the problem is the work isn't getting done. I've seen this many times now. No one is going to care how much you time you spend walking your dog if you're getting your work done - you only draw attention to yourself when you're lacking, and then your manager starts looking for reasons, sees you work 20% less than expected, and then what would you say? You'd call them on the carpet, too. I'd give them a part time job since that's what they seem to be capable of.
I've religiously filled out time-sheets, in various forms) for 30 years, and I don't think they have been looked at more than a few times by my managers since my work gets done, and more. But I know for damn sure the laggards get scrutinized.
I see this too, and not just post-COVID. 10+ years ago we used to have "Let's Learn This Now!" where the developers would agree on particular subject and then learn and discuss it on our own time, and occasionally it would lead to improvements in our development. We went through Ruby (on Rails), Angular (nope, not even) to React (meh), queuing (ZeroMQ mostly), Asp.NET MVC, Redis, Docker, Octo, NoSQL dbs - the list goes on (even custom mechanical keyboard building). It was a lot of fun, and it was nice to have all the perspectives and interesting ideas shared.
Now there is only a few of us that still attempt this, as the rest are not interested in anything beyond their job description. Honestly in the last 10 years the phrase "That's not my job" has entered the company's phraseology when previously it was perceived as an opportunity for growth or even just cross training. Hell, that's 90% of how I advanced up the ranks - taking on new responsibilities.
A dev manager we had a while back, who has been managing developers for 20 years, told me that a lot of the problem is passion vs money. Many recent developers are in the industry because they heard that software development is good money, so they got a CS degree. But they're not as interested in the continuing education that is a necessity for the career, and only those with a passion for it thrive. He sees them dev'ing a few years, realizing it's not for them, and then trying management, and then dropping out of industry because they're not interested in the effort to excel.
But if you have a passion for software development, love tech, and the whole 9 yards, work is just doing what you like, and you enjoy it (well, when your company isn't screwing it up - that's a different problem).
Tomte, thanks, not particularly for the original reference to the article about smell, but for directing us to the person in question and all the great stuff she has written. I got lost for an hour an 45 minutes.
Kind of makes me wonder - why let up? Can it be mitigated at all? Wouldn't they have done so by now. Be interesting if they just kept piling it on until they've got the whole internet on it's knees.
Until you've had to kill people yourself, seen the results, and lived with yourself afterwards, I don't think you have anything to say about what someone else has been in that situation and decided not to kill that day.
>> I don't get why this was deemed an accident. <<
Reading the story, there is this little voice saying in the back of my head, "They don't want to treat it as a crime because they know who has it and they're in cahoots."
I have mixed feelings about this, but I cannot disagree with it.
a. I haven't written a program in C in over 10 years. I wrote software 5 days a week for those 10 years.
b. I wouldn't want to write a program in C now.
c. The first "high level" programming language I learned was C, from a book (not K&R C), while travelling in Asia, without a computer. It taught me well, but I immediately went on to other languages.
e. I can't shake the idea that there is some value to knowing that low level stuff, even though I don't use it much myself.
Maybe linux kernel hackers will keep it alive. I know game programmers use it a lot as well. But for the majority of us, it's kind of an arcane skill now.
Uhhh, apparently Spencer Gundert is too young to remember all the other times there have been election fraud (Bush-Florida) and the brew-ha-ha over the crappy voting machines we've had for way too long. Drop in the bucket, buddy.
I'm going to be a contrarian here and say that if unit tests, in most cases, made economic sense they'd be a given in almost all software development.
But they're not. Do we assume business owners are dumb? Do we assume managers are dumb? That's a popular position for technical people. "Oh, you just don't understand how valuable those unit tests are!"
But the cost of maintaining unit test vs. the cost of fixing bugs later might favor just fixing the bugs later. Maybe it doesn't sometimes - but one is an upfront cost you know about, and one is a nebulous cost that you might or might not have to pay later.
Given that, I know what most people paying the bills are going to choose.
With a web browser, a DOM, and Javascript, where do you see this all heading that's full of truth and beauty?
Where does the churn end if it's not pointless?
Cause you've got a web browser that was designed to view pages of linked information that has now been pressed into service as a ad-hoc run-time for building applications, a DOM that is so poorly implemented that most everyone tries to abstract it away at some point, and a language that is universally regarded as one of the worst ever.
Is that what you build on for the future? Cause then I do see it being pointless tech churn because your fundamental building blocks are too seriously flawed.
If the future is programs that people can download and run on their computer on demand you'll need a good run-time, language agnostic, compiles to binary, sandboxed, with a well defined UI system not based on document display. There's no web-browser, DOM, or Javascript in sight.
If you had such a thing this thread of conversations wouldn't even be happening. I sincerely hope that someone smarter than me comes up with that (yes, Java was a close but no cigar) and we gravitate away from the morass we have now.
I literally just today watched my entire team descend into "Release Hell" where an obscure bug in business logic already delivered to thousands of customers broke right as we were about to ship a release. Obscure bug, huge impact on the customer, as they actually ended up charging people more than they should have. The team-members, and yes, not leads, used AI to write that bug and then tried to prompt their way out of the bug. It turned into a giant game of whack-a-mole as other business logic had errors introduced that thankfully got caught by tests. Then it was discovered that they never understood the code, they could only maintain it with prompts.
Let that sink in. They don't understand what they're doing, they just massage the spec into prompts and when it appears to work and pass tests they call it good.
We looked at the prompts. They were insane. They actually just kept adding more specification to the end, but if you read through it all it had contradictory logic, which I would have hoped the AI would have pointed out, but nope. It was actually just easier for me and another senior to rewrite the logic as pseudo-code, cut the size down by literally 3/4, and eventually got it all working as expected.
So that's the future, girls and boys. People putting together code they don't understand with AI, and can only maintain with AI, and then not being able to fix with AI because they cannot prompt accurately enough because English sucks at being precise.