Jeff, I should have made something clear at the outset. I have huge respect for you. (I use SO daily, several times an hour, literally.) This joke did not sit well w/ me, and I reacted. I appreciate your explanations, thank you.
that leaves us with the impossible choice of working with it to implement new features, or forgoing adding new features to rewrite it (and infuriating the business folks)
This where youâll find the answer. Sooner or later, youâll have to ask âWhy does business folks donât care about quality software?â
You should eventually conclude that the ideology of Capitalism that is thought to us as the natural system of living is the root cause of this. This however is way beyond the subject of software and is not easily quantified and tested unlike writing software. So naturally engineers like us will simply just accept Capitalism, especially since itâs paying our profession good money.
Even with code of conduct and jail time punishments. Capitalism will sooner or later find ways to destroy these one way or another. You can see this in doctors - sure they wash their hands now - but they ask you $9999999999 for a $50 treatment resulting in many deaths. Thereâs Trump destroying all probably all regulations while keeping the population busy with other issues.
Firstly - the spelling is Marc Andreessen (typo in post).
Secondly in reply to Alex, I think the problem is that saying âa programmerâ is WRONG, at least as wrong as saying âa scientistâ, or âa lawyerâ. In those professions you would immediately ask âwhat kind of scientist?â, âwhat area of law?â. So my question is, what type of programmer?
The development profession is growing, dividing, and individual branches becoming very detailed, yet there isnât a visibility or understanding of that fact, either within the industry or outside of it.
The same problem happened in science. Science was started by wealthy enthusiasts, which became more formalised over time. When it was formalised, it was set into specific branches of science. These branches have further branched such that now a quantum physicist uses the same scientific method as a marine biologist, but they have very little understanding of each otherâs fields at a detailed level.
Iâve been developing professionally for 20 years (and another 10 or so as a student/hobbyist). Iâve seen this same fragmentation occurring to computer science.
We have specific understanding of the area we specifically work on, and little understanding of other areas. Can you really expect an graphic designer, who can also do UI and UX development to understand the anatomy of an HTTP request, the png file format in binary, or even the mathematical calculations that drive jpeg compression?
Can you expect someone who develops mobile apps day-in day-out to understand Microsoftâs Transact-SQL optimisations, or the popper use of R to modify existing data transformations to take into account specific data requirements? I wouldnât. Heck, I wouldnât expect a career Microsoft specific DBA to have all the skills and knowledge to manage an Oracle database.
So I donât see that we need âbetterâ programmers, we need a better understanding of the information technology ecosystem.
You wouldnât hire a marine biologist to review the calculations of you quantum physicist, but you might rightly expect them both to be capable of using a mass spectrometer - even if they use it at a âquick and dirtyâ way that works.
Nobody should complain that a developer doesnât know SOLID design without first understanding the context of that developer. They should expect all developers are aware of a SDLC process (and I say âaâ because that is another area of continual branching).
I know a lot of developers of Enterprise Resource Planning systems that donât understand the ecosystem outside of their specific ERP. Why is that wrong, when they understand their ERP system thoroughly?
Seek first to understand where others are coming from before judging.
Being a programmer is a hard job, but we should be thankful to all people that every day create different software products and make our lives easier. With such fast computerization, of course, software is âeating the worldâ. As for me, when I am working on such projects and dedicate all my time to it, I feel that I really can change the world and a motto âto serve manâ also keeps me coming back to software every time.
Itâs not DestroyBaghdad() anymore. Itâs DestroySuleimani(). Or is it new DroneStrikeProtocol(Person target)
? Not 100% executable by machines. Not yet, and should sanity manage to hold, never.
Want a more metaphorical interpretation? How about DestroyReputation(Person target, CharacterAssisinationStrategy strat)
? That sort of thing is already happening with the troll farms, though the content-creation part is probably all humans for now. AI text generation is already pretty close to automating that part too.
Sleep well.