I feel like the expectation that a developer can do it all is quite harmful. There are not many other disciplines where this is expected, and for good reason.
Maybe it’s better to just admit you don’t know how to properly architect a solution rather than pretend you do and create an unmaintainable mess. Maybe you shouldn’t pretend you know how to do front-end development instead of creating some monstrosity that no user actually uses due to bad UX. Maybe you shouldn’t pretend you understand security instead of introducing half a dozen sql injection vectors.
Maybe it’s time to admit that the days of the solo developer are over. It may have worked when there was no internet, no security concerns, no concurrency requirements, etc. But we expect, and deserve, better nowadays.
I’m pretty sure non-programmers share much of the blame. Here’s what I imagine goes through the minds of most people, especially management types.
“Oh, a nerd. Great we need another nerd in here because things are not moving fast enough.”
I’ve had job offers for everything from equipment maintenance and repair (because there was a PLC hooked up) to network administrator. It’s all computers, right?
When trying to use some of the truly atrocious stuff that gets rolled out with a web interface, I get the distinct impression that random “nerds” are dropped into random slots. There is no consideration that maybe saying “nerd” is like saying “doctor”. If that’s all you look for, you might get an economist instead of a surgeon.
Agreed, almost every profession has advanced to the point where they require specialization. Everything has become so complex that being a jack of all trades means you fail at them all. Even trade skills have specialization: carpenters specialize in framing or cabinetry or furniture, mechanics specialize in specific machines or sub-systems like engines or transmissions, etc.
But it seems most of the people responsible for filling these positions haven’t realized this yet or don’t know enough about the jobs they are hiring for.
I think the article is probably right. A software developer should be able to make software to do whatever needs doing. Maybe not good at any given thing, but able to do it. Eventually. Nobody wants a software developer who isn’t themselves Turing-complete.
Will they always do it the Right Way if they spent 10 years learning compiler design and you want them to program an ESP32? Of course not. But if you hired a compiler engineer who cannot teach themself to solve a user’s ESP32-shaped problem, then you have hired a compiler engineer who can be completely incapacitated by a sufficiently leaky abstraction.
Sooner or later when doing any one thing in software development, you are going to run into a problem that requires you to dig into something else that you don’t actually know how to do. The abstraction leaks and suddenly how file handles work or the fact that an ESP32 needs to go to sleep sometimes is now impinging on your compiler design problem and the users are not able to do the things because of it. If you have an expert on whatever the thing is, sure, you call them in and they help you out. But if not, you learn enough to make yourself useful and you hit the problem with research and analytical thinking until it stops bothering the users.
If you don’t have an expert, you should demand one. If I don’t have an electrician, I won’t ask my plumber to go read a book and come back to do the wiring. I would wait and get an electrician.
What is this trash? It reads like an AI hallucination.
I understand your concerns about the article’s quality. I found that it presents some interesting perspectives on software development, although some points might not be clearly articulated. It’s always valuable to critically assess any content we come across, especially in the rapidly evolving field of software development. Do you have specific aspects of the article you disagree with or find lacking in clarity? I’d be interested in hearing more about your perspective.
The only perspective was a wishlist of responsibilities for a software developer.
It seems delusional to pretend one developer “should” do the job of a whole team.
That last comment is what ChatGPT told me to say.
lol, you got me