3 ms·
The thing is that programmers largely are interchangeable. Of course, you are a special snowflake etc; but at the end, the majority of programmers do repeatable
by roel_v 15y ago
The thing is that programmers largely are interchangeable. Of course, you are a special snowflake etc; but at the end, the majority of programmers do repeatable, simple work, e.g. writing line-of-business Java applications, maintenance work like adapting Cobol code to work with new tax rules, writing generic GUI's that work just well enough to justify the expense given that the app has only a few 10's or 100's of users, etc.
For all of these things, when managed properly (i.e., rotate programmers enough, take care of documentation, have strict coding standards etc), you can get a new programmer who has had a 2 year degree in programming and 6 months of training on the specific technology up to speed in such a project in a week. That's not quite as interchangeable as a guy turning screws in a car factory, but it's not that far off, either.
I realize that everybody likes to thing that they are so special and that without them the world (and certainly their company) would grind to a halt), but for the vast majority of programmers, it's simply not true. And for those where it is true, there is a large part where it's only true because management allowed one person to become so entrenched in one place that they've made themselves indispensable. And not because of the nature of the work.
- maxaf 15y ago> you can get a new programmer who has had a 2 year degree in programming and 6 months of training on the specific technology up to speed in such a project in a week. And this is how crap code comes to be.
- roel_v 15y agoSure, but it works well enough for many organizations. Very seldom is there a business case to be made for a beautifully architected, extensible, maintainable, useable (with useability testing etc) expense tracking application. Throw something together that works well enough to produce the output required and is integrated with other systems, write a 10-page manual that explains the input formats (because sane input checking and error reporting is for pussies - just display 'data input error' when the user enters a date as dd-mm-yy instead of dd-mm-yyyy), write a 'policy' that people only can get paid expenses if they use the application and voila, you're done. And when you need changes in 3 years time - hire a contractor on fixed fee, who cares that he will age 10 years in 10 days time; he'll move on to the next pile of crap soon anyway.
- roc 15y ago> "Sure, but it works well enough for many organizations." Which is to say: organizations derive such fantastic value from software, that even slow, buggy, late and over-budget projects, nor a parade of such projects, is enough to cause them to reconsider their approach. Which is the answer to the original question. Q: If software delivers so much value, why are programmers typically paid so little and treated so poorly? A: Because even bad software delivers value far faster than most organizations can incorporate it and there's no shortage of bad programmers.
- mnutt 15y agoFollowing that logic, most doctors and lawyers are also interchangeable for the most part. The majority of work in those fields is applying what you've been taught and trying not to screw it up. And of course there are exceptions, but from what I've seen it seems like there are more opportunities for programmers to bring personal creativity to their work than doctors and lawyers, just because the field is less established and there are more open questions.
- roel_v 15y agoSure, they are. That's the way hospitals are managed here nowadays - you make an appointment with a doctor with specialization xyz, and you don't know until you show up who's going to be there. They read through your medical history a few minutes before they call you in, and that's that. Centralized medical history tracking through automation is quickly making being a doctor a lot more routine than most doctors would like it to be.