5 ms·
I'm tired of the continued devaluation of my profession. Software development (I hate the term "coding") is not a manufacturing job, as much as some company wa
by marsrover 7y ago
I'm tired of the continued devaluation of my profession.
Software development (I hate the term "coding") is not a manufacturing job, as much as some company wants it to be. And apprenticeships at body shops isn't going to create software developers, it's just going to create terrible software with obvious rot and decay as the years go own.
- crankylinuxuser 7y agoI'm a sysad in a software business. Sure, the professional developers are paid well. However the more Jira and agile ideas takes over, you become more replaceable. Why? You're just a card-filling machine dealing with feature requests or problem reports. And sure, the next developer may fill less cards, but they will improve with time. And if you don't work in a protected area (federal, etc), then you can buy card-filling devs for 1/5 to 1/8 of US... And have them QA'ed for less than 1 USA dev. Face it: I, a sysad, am a service worker. And devs are line workers. We're well paid, but so were factory workers at one time.
- ellius 7y agoI disagree with this completely. Development is not line work, and doing it like line work creates unmaintainable, expensive crap. "The Mythical Man-Month" explains this well. Conceptual coherence is of the utmost importance in effective software systems, and you don't get that by just knocking out stories one-by-one like they're desktop support tickets.
- lacampbell 7y agoPeople like us who spend their free time on a message board about programming know it's best not done as line work. But the general population doesn't, and probably many developers don't. There is constant, never-ending pressure to turn it into line work and we need to be aware of it. A lot of software running (barely) in the real world is written this way.
- phkahler 7y agoWhile I agree with you, it's also true that the majority of software in the world is held together with bubble gum and duck tape. That doesn't mean it should not have been written - it solved some problem for someone. We should not build complex systems that way, but plenty of systems are not very complex.
- 0xDEFC0DE 7y agoUpdating strings in database/code is line work. Update images on website is line work. Debugging basic issues is line work. I've gotten these tasks as discreet Jira issues, so someone thought it was important enough. It's fine if line work + hardcore CS positions exist simultaneously. This fighting over the boundaries of where the profession starts and ends is tiring and we should just accept there's a stratification of developer skill levels and start adjusting our attitudes and training accordingly. Development is all of these things because development is a huge job market. You can't abstract your way out of doing the line work and only have hardcore CS positions in the job market.
- geodel 7y ago> Development is not line work, and doing it like line work creates unmaintainable, expensive crap. Huh, it is already happening. I see everyday so many web services are created via auto generating scaffolding tools like Spring boot etc. One just fill in environment details, bits of JSON parsing and service is ready to be deployed. Good for you that where you work people are intelligent enough to read Fred Brooks. Most places, including the ones with fancy gleaming buildings, open office floors, lounges with couches and organic smoothie bars are just making CRUD services with some cloud backed data storage. More so terminology I see at work is more inspired by factory floor not some intellectual venture.
- ardit33 7y agoGreat, looks like you have discovered "That one trick that all engineers hate!" If all it took was some scafolding, some database columns and some html and sprinkle, you should be a millionare by now?
- Jorge1o1 7y agoYou can’t write software in a vacuum. To write good code, you need to understand the whole program (or at least a very substantial part of it), why certain decisions were made in the past, the potential ripple effects of a “simple” change, etc. This means that it’s impossible to just swap devs out like factory line workers, otherwise you’re just creating more bugs. For similar reasons, you can’t paint half a canvas and then hand it over to another painter and have him finish it...
- lacampbell 7y agoYour scenario perfectly describes practically all code I come across in the wild (I work outside of a tech center).
- empath75 7y agoThere will always be software development work that can’t be done that way because it requires specialized knowledge or cutting edge programming techniques.
- NotSammyHagar 7y agoYes, like making handmade clothing, only certain cases require advanced skills like that. I think over time less and less work will require that handmade software. More can be done by putting other packages together. I've been luck to work on infrastructure work that has ended up having new ideas and advancements over existing systems that we could justify a new version. But I do feel like this opportunity to do new stuff could shrink. How many compilers, databases, os kernel writers do we need? The vast majority of people can make great use of an existing compiler, or database. Justifying making a new one should be hard.
- Chyzwar 7y ago> Sure, the professional developers are paid well. However the more Jira and agile ideas takes over, you become more replaceable. Why? You're just a card-filling machine dealing with feature requests or problem reports. Agile do not make developer replaceable. If anything it empower developers to become on equal footing with everyone else. > And sure, the next developer may fill less cards, but they will improve with time. I saw projects outsourced to huge teams in India failing to deliver. Reality of software development is that unless you have right mix of experience, skill and people you might never deliver. Programming require both engineering and creative skills. Some class of problems cannot be brute forced by large number of young bodies.
- eropple 7y agoAgile shouldn't make developers more replaceable, but in my experience that's the effect of Scrum when wielded by many kinds of management. Stuff like "story points" rigged such that a problem that would take a week must be reduced to smaller--preferably parallelizable--micro-stories that have implicit context but no explicit dependencies so that the decision of farming it out to many juniors can be upheld. I'm not saying that this actually works better, to be clear. But I would bet it works cheaper for the time horizons that the folks making those decisions care about.
- Chyzwar 7y agoSplitting the store into smaller tasks is better. It forces you to plan and communicate your progress. It allows for adjustments in both requirements and estimation. In many business cases, this approach is better. The senior developer should outperform multiple juniors anyway, in most cases, it is seniors that carry progress. Toxic companies will twist a good process and make it horrible. It is not Agile or Scrum to blame.
- eropple 7y agoSplitting things is not inherently bad. Doing so in an attempt to commodify its application is not inherently bad. Doing so in an attempt to commodify its application is definitely bad for developers' careers.
- catmanjan 7y agoThats a funny way to look at it - if anything a sysadmin is more of a line worker (I do both dev and sysadmin so I'm not particularly invested in either), with enough software you could be replaced by BA's coming up with architecture requirements and a system like docker... Just a perspective thing I wonder
- crankylinuxuser 7y agoPeculairly enough, ive had our management ask how to show what we do, and how we allocate out time. And as many times we have ticket after ticket from Jira, nothing adequately shows how we work. That's why I equated Sysads as service workers. Some assistance may be 5m, and others may have looked like a 10m issue but turns into 3h timesink. We're serving others, or serving machines for serving others. Whereas I see Agile, or the Kanban system, to be set up to send work to either internal or external devs. The only reason why real factories don't use international work is because sending lines and parts is onerous on a short cycle... Whereas software Kanban seems fit for each other. Sure there's dev work that requires specialty knowledge, but most dev work is a CRUD web app with a DB backend. And those jobs are especially prone to outsourced via a thousand cuts.
- invalidOrTaken 7y agoWho writes the cards? It's easy to write them, but writing the right ones is much harder. Automate or outsource that and you become a trillionaire. Yes, seriously.
- eropple 7y agoI don't understand why your post is so defensive. For years, "tech jobs" were marketed as a way to the upper middle class for a broad swath of people (in America and elsewhere). This was not the doing of "two-bit journalists" (and Steve Lohr has a track record of pretty good work!); it was a concerted effort by tech companies. It's turning out to not really be the case and the successful stories are comparatively few and far between, while the rest of America falls further and further behind for reasons largely not of their own making. Should that not be talked about?
- devoply 7y agoWhat should be talked about is what's actually the point of jobs. It's not as a means to get work done so corporations can generate profit. Jobs are a tool to organize society. Profit is a side-effect of that but an irrelevant part the primary function of jobs. This concept of jobs as a tool to organize society rather than a way to solve problems using human "capital" or humans as machines or tools for problem solving which can then be replaced by other machines which can solve the same problems cheaper needs additional studying. As using humans to solve problems for corporations is becoming more and more irrelevant.
- eropple 7y ago> What should be talked about is what's actually the point of jobs. I fully agree, FWIW. Perhaps it's where my interests have typically lain, but as a developer whose primary job has been to automate other tech people--sysadmins mostly, but developers as well--this has been on my mind for about a decade now. I don't know what the solution is.
- Noumenon72 7y agoYou mean a tool to organize society like castes were? Or a tool to organize society so that it produces enough medical care and has a large enough army? The first one really doesn't fit with how dynamic jobs are, as they can be created at any income level or sector regardless of the impacts to social class.
- paultopia 7y ago
- bilbo0s 7y ago>apprenticeships at body shops isn't going to create software developers, it's just going to create terrible software with obvious rot and decay as the years go own... Well, if we're intellectually honest as software developers, we also "...create terrible software with obvious rot and decay as the years go on [sp]..." Sometimes, we are our own worst enemies.
- colordrops 7y agoJust like manufacturing jobs, some software work could be completed by uneducated felons, and some work could only be done by PhD specialists. In fact I work at such a place that has an extremely wide gamut of both software engineers and production staff.
- blahblahthrow 7y agoIt's cool how nobody with a PhD ever committed a crime and only worthless, stupid people do crimes.
- colordrops 7y agoI would say the statistics would probably support your comment (besides the binary "nobody" and "only"), despite its obvious sarcasm. But that wasn't really my point. I had no intent to criticize certain classes. My point was that software people should get over the exceptionalism.
- llamaz 7y agothis but unironically. If I was Javert from Les Miserables the novel would last 10 pages because Javert didn't hate felons as much as I do
- Alex3917 7y ago> Software development (I hate the term "coding") is not a manufacturing job The typical tech job is more like someone getting paid 30k a year to delete porn from Facebook or draw boxes around pictures of stop signs.
- adventured 7y ago> The typical tech job is more like someone getting paid 30k a year to delete porn from Facebook or draw boxes around pictures of stop signs. No it's not. There are approximately ~1.3 million people in the US doing software development at extremely high income levels for the top 3/4. Median pay $107,000. 840,000 computer support specialists ('tech support') earning a median of $54,000. 600,000 computer systems analysts earning a median of $90,000. 300,000 computer programmers, earning a median of $84,000. 170,000 Web developers with a median pay of $70,000 per year. 165,000 computer network architects earning a median of $110,000. 120,000 database admins earning a median of $90,000. 100,000 information security analysts earning a median of $100,000. 28,000 Computer and Information Researchers, earning a median of $120,000.
- scarface74 7y agoCitation?
- masonhensley 7y agohttps://www.bls.gov/ooh/computer-and-information-technology/mobile/software-developers.htm https://www.bls.gov/ooh/computer-and-information-technology/...
- NotSammyHagar 7y agoThanks for that. It's amazing to look at those median job salaries and try to understand how salaries vary so much, along with cost of living. I'm in one of the coastal tech hubs and we pay bachelor's degree people over 130k. An amazing amount, but way over that median.
- njepa 7y agoThe devaluation of the profession happened a few decades ago, otherwise most of us wouldn't have been able to join the industry. Especially in the last decade most people in the industry have been cheering on the abstraction of what you do from what you make. At some point someone is going to call the bluff. I think people who join the industry now can do very well. And they probably see it more as a profession than most of the industry with all their social conventions. Then we can go back to the profession being valued for what it actually delivers.
- mlevental 7y agohow can someone else "devalue" your profession? market forces decide the value of your profession. if you feel like your value is being diluted then I hate to break it to you but the truth is that you're not valuable anymore. you are welcome to upskill (in order to be able to deliver more value) or change careers. like I love people praising the maw of capital (startups rule the world yay!) and simultaneously inveighing against. you have an issue? unionize (but you'll be excommunicated from the church of capital for trying to).
- nitrogen 7y agoA profession can be improperly devalued by disregarding or demeaning the values provided by that profession. For example, one could devalue the dentistry profession by convincing a bunch of people that cavities are a myth and sugar is good for you, or the medical profession by convincing people that getting infected with the measles is a good thing.
- true_tuna 7y agoHate to break it to you, but well trained software engineers create terrible software too. Everywhere I’ve worked had some really boneheaded things going on. A reasonable person showing up with a keen eye to making things better can contribute a lot. We had one software engineer at YouTube just hunted down and deleted unused code. This reduced the maintenance complexity and generally made the codebase more maintainable. Was she a rockstar? Probably not, but every day she made the codebase better. For the most part, showing up, being reasonable and having a handle on the basics goes a long way. I’ll take that over a hotshot working on the wrong problem any day. There’s nothing like the smart man monkey trap to make otherwise intelligent people cause more harm than good.
- scarface74 7y agoI think you overestimate how hard it is to create yet another software as a service CRUD app or a bespoke internal app using your chosen framework. As far as creating software that last for years, I also think you overestimate the longevity of most software that is being used today.
- thelasthuman 7y agoI will never understand people's innate desire to pull the ladder up behind them after they've achieved a comfortable life. Then again I've never strived for comfort, just the rarest thing of all... equality.
- richdev 7y agoI agree with your hatred of the term "coding". It rings like "typing" or having typist skills. It demeans the many years of time it takes to learn real software engineering skills, which includes proper software requirements analysis, design, testing, packaging, and deployment. I work with a bunch of data analysts teaching them programming for data analytics and machine learning. If I use the term "software development" the managers think it is out of scope for their job ("that's something IT does, not our group"). But when I use the term "coding" the managers don't seem to mind. They need to grow up and appreciate what it takes to develop analytics software. I like what you said "apprenticeships at body shops isn't going to create software developers, it's just going to create terrible software with obvious rot and decay as the years go own." These junior apprentices produce stuff that barely works, and it is rotting crap whose "technical debt" never disappears, and eventually requires a senior software engineer to rewrite it after it fails.