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.
In defence of the jack-of-all-trades, if everybody is a cog in the machine, nobody sees the overview of how the cogs could connect.
For what it’s worth, here’s an overview of some cogs made by a j-o-a-t, for whom software developer is just a sub-role, within understanding complex climate system.
Isn’t that exactly the role of an architect? The point is exactly that not everyone is a cog, not everyone is exchangable and equivalent to everybody else.
When I’ve been presented with expectations outside my field, I’ve replied with something along the lines of, “Programming is a bit like sports–they all share some common features, but the skill sets are very different. What you’re asking me to do is like asking a hockey player to participate in a professional badminton tournament. I can try, but it won’t be pretty.”
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.
Or a gastroenterologist instead of a neurosurgeon 🤔
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.
In defence of the jack-of-all-trades, if everybody is a cog in the machine, nobody sees the overview of how the cogs could connect.
For what it’s worth, here’s an overview of some cogs made by a j-o-a-t, for whom software developer is just a sub-role, within understanding complex climate system.
Isn’t that exactly the role of an architect? The point is exactly that not everyone is a cog, not everyone is exchangable and equivalent to everybody else.
When I’ve been presented with expectations outside my field, I’ve replied with something along the lines of, “Programming is a bit like sports–they all share some common features, but the skill sets are very different. What you’re asking me to do is like asking a hockey player to participate in a professional badminton tournament. I can try, but it won’t be pretty.”