Surgeons are briefed on the problem, the diagnosis, the patient's medical history, given all the information they need to know about the project. They are then locked in a small room with all the tools and assistants they need, and given complete and total authority and autonomy over the process and results. Because of that, surgeons are some of the most respected people in their environments.
Programmers are dripfed information on a "need-to-know" basis by managers who have no clue about the process involved (and therefore with no clue about what information is needed). They are then placed in an open area, interrupted regularly, have to justify the cost of any tools, are never given assistants, and have exactly zero authority or autonomy over the process or results. Because of that, programmers are some of the least respected people in their environment.
But we do have a few things in common: if the patient dies it's the surgeon's fault, and if the project fails then it's the programmer's fault.
This stark comparison is exactly why we're blue-collar workers not professionals.
I see your point. I'd argue that programmers who are treated that way have bad managers, though, rather than it being a function of programming as a profession. I've never dealt with a company that hasn't given me some autonomy, though, so I can't really comment on that perspective.
A company can give programmers autonomy, or it can give them bits of information and treat them poorly. It could also do this for its sales team, its lawyers, or its marketing department. This strikes me more as a problem with the company rather than a problem with the nature of programming.
Yeah, there are business out there who treat programmers "properly", but they're unfortunately the exception rather than the rule, and that's not going to change any time soon.
I push back when the business hands me implementation in requirements (e.g. "Make me a button that rings a bell 10 seconds after I click it" versus "I need to know when a query finishes; it usually takes 10 seconds." which leads to "holy CRAP, that query takes 10 seconds?! Lets solve that!").
The first few times I did it, it caused a bit of an uproar, but very quickly they came to realize that they got better quality software when the person making it understood why he was making it.
Likewise, if you're in an environment where you're an eyes-down bricklayer (and unhappy about it)... Maybe it's time to put your big-boy pants on.
I agree, and I've done the same, but I do find it ridiculous that we have to be the ones to fight the battle.
This is all known stuff, there's endless research and case studies showing that providing creative programmers with autonomy and authority over their environment creates massively better software results.
But the illusion of control is hard for some people to let go, I guess.
>Programmers are dripfed information on a "need-to-know" basis by managers who have no clue about the process involved (and therefore with no clue about what information is needed). They are then placed in an open area, interrupted regularly, have to justify the cost of any tools, are never given assistants, and have exactly zero authority or autonomy over the process or results. Because of that, programmers are some of the least respected people in their environment.
That doesn't describe my job very well. (OK, I don't have an assistant, but I don't think I need one.)
Or are you deliberately making a contrast between "coders" and "software engineers"?
>They are then locked in a small room with all the tools and assistants they need, and given complete and total authority and autonomy over the process and results.
A surgeon of that level would be more analogous to a very senior programmer with management responsibilities. Said surgeon only got to that point after years of working very long hours with little autonomy.
And surgeons only get that autonomy for a fraction of their day, every doctor I've ever met complains about hospital and insurance company bureaucracies.
If you want to compare a bunch of 20-40 year old programmers sitting in an office plan at facebook to doctors, you'd do better comparing them to ER residents who definitely don't have the kind of autonomy you're talking about.
There are also plenty of "professional" programmers working as consultants.
But from my understanding of the health industry, the consultants are absolutely the top of the food chain despite their whinges about management. This is not true of even highly-paid consultant programmers (and highly-paid tech consultants are almost never allowed to waste their time actually programming).
>and highly-paid tech consultants are almost never allowed to waste their time actually programming
There are plenty of niche programming consultants that are highly paid to actually program--firmware reverse engineering, and cryptographic security specialists are 2 of them.
There was a whole thread a few years ago where tptacek argued that $400 an hour is reasonable for certain specialty programmers, which is more than all but the highest paid surgeons make.
He gave 4 example categories: "expert developers with domain expertise in finance" also "cryptographic security specialists", "hardware reverse engineers", and "high-end SEO"
true, good point, but I still think (from my vast stock of unresearched and ill-informed opinions) that the combination of authority and respect is massively more common in surgeons than it is in programmers.
And if it isn't actually, then it certainly is in the public consciousness.
Surgeons are briefed on the problem, the diagnosis, the patient's medical history, given all the information they need to know about the project. They are then locked in a small room with all the tools and assistants they need, and given complete and total authority and autonomy over the process and results. Because of that, surgeons are some of the most respected people in their environments.
Programmers are dripfed information on a "need-to-know" basis by managers who have no clue about the process involved (and therefore with no clue about what information is needed). They are then placed in an open area, interrupted regularly, have to justify the cost of any tools, are never given assistants, and have exactly zero authority or autonomy over the process or results. Because of that, programmers are some of the least respected people in their environment.
But we do have a few things in common: if the patient dies it's the surgeon's fault, and if the project fails then it's the programmer's fault.
This stark comparison is exactly why we're blue-collar workers not professionals.