7 ms·
Ask HN: How are you feeling about software engineering in 2023?
A lot is changing in our field. Share how you're feeling.
- JohnFen 3y agoFor the last decade or so, I've been growing increasingly unhappy about the field in general. It's grown disturbingly mercenary. People are increasingly getting into the field for the pay rather than for a love of programming, the quality of the software being produced is decreasing, and the most visible parts of the industry have some serious ethical issues that nobody seems worried about enough to even start to talk about addressing them. Honestly, I think it's time for me to find another line of work.
- mbm 3y agoThanks for sharing. If you could share also, what was the field like for you when you first came in?
- JohnFen 3y agoI think the main difference is that the field has effectively turned into a kind of factory work. An analogy to the car industry holds very well, I think. Early in the automotive days, people built cars because they loved to build cars. As it became an industry, and then a mature industry, that was largely lost. Now, the people who "build cars" are factory workers, punching a clock and putting in their hours. The industry stopped being about excellence and started being about maximizing profit. That's where software is now. I'm not saying that's a bad thing. It's clear that's a natural progression of new industries. However, that's not the sort of work that I want to do, and not what fulfills me. I'm increasingly suspecting that there is no longer a role for the likes of me in the software industry.
- tracker1 3y agoIt depends... you could always start your own project or work on tooling. Whatever you do, needs to have some market to survive, but there are options. Even if less well paying, less secure and/or less stable. Or, harder to break in to.
- JohnFen 3y ago> you could always start your own project or work on tooling. I've been successfully doing that for most of my career, actually! But even as a small independent, you can't ignore the nature of the industry. Especially if you're selling to the industry. So it doesn't shield you from the market forces very much. I fantasize about there being a market for high-end, boutique tools, libraries, and such -- but I don't think it exists. I'm not sure that it can exist given the nature of the industry overall.
- tracker1 3y agoI was mainly meaning, working for a company that already provides some kind of tooling. :-)
- atmosx 3y ago> [...] the most visible parts of the industry have some serious ethical issues that nobody seems worried about enough to even start to talk about addressing them. Thanks for sharing. What kind of "ethical issues" are you referring to?
- JohnFen 3y agoThere are all sorts of ethical issues -- just take a look at the industry news over the past couple of decades for a taste. But the ones that bother me the most are the ones where we abuse our customers for the sake of profit. Issues like data collection and use, "move fast and break things", removing customer autonomy, etc. are all things I struggle to be OK with, but are all things that are heartily embraced by the industry these days. And don't even get me started on the acceptance of overt law-breaking. Companies like Uber (only an example, they're not the only ones that have done this) achieved success by breaking the law, and overall as an industry, we tend to accept this and even celebrate it -- as long as a successful, profitable business is the result.
- tracker1 3y agoI like to think of it as "move fast, don't be afraid to break things, and fix them fast". I've been in workplaces with months long release cycles with multiple versions at various stages of testing and it's incredibly slow, difficult and problematic. I've also worked at places where if code touches the main branch, it's in production in about 5 minutes. In the latter production was broken about half a dozen times in the first year. And it was always fixed in about 10 minutes. In the former, there are bugs that take months to correct. I'm not convinced the latter option isn't the better one. Much like you put up hand rails on stairs, you will put guardrails on your CI/CD pipelines and processes. Do you do this from the start, or along the way. It really depends on what state things are in. Most industries cannot tolerate the development of software as more of an engineering discipline. This is disappointing when the likes of the auto industry doesn't. But it's largely expected otherwise. Software development is a craft discipline, not an engineering one more often than not. Most systems are not life and death critical. It's more akin to making a dog house than a sky scraper most of the time.
- 908B64B197 3y ago> People are increasingly getting into the field for the pay rather than for a love of programming, > the quality of the software being produced is decreasing I feel these two are related. I mean, one could say the same looking at companies like Boeing post McDonald Douglas merger.
- schwartzworld 3y agoThere's nothing wrong with programming for the pay. Your motivations shouldn't have an effect like that on the quality of your work. Even if you love programming, do you really love the programming you do at work every day? There are lots of great reasons to pursue work in computers, and not wanting to clean toilets for a living is a perfectly valid one.
- JohnFen 3y agoI'm not saying that there's something wrong with being motivated by pay, although I do think that is one of the factors that has led to a decrease in software quality over the years. (If you're doing a job just for pay rather than because you enjoy the work, you're much less likely to go above and beyond to produce the finest work you can do.) It's just not what motivates me, and I'm commenting about why I don't feel like there's a role for me in the industry anymore.
- the_only_law 3y ago> If you're doing a job just for pay rather than because you enjoy the work, you're much less likely to go above and beyond to produce the finest work you can do. Just spitballing, but I wonder if that’s in part because theres not much monetary incentive to go above and beyond. Companies don’t seem to give out raises or promotions for good work as much as they do for more political reasons. And I’m sure we’ve all heard stories about the new guy getting hired on for much better pay than the loyal veterans. Personally, this is why I think job hopping and resume driven development are so popular. If I’m someone primarily motivated by money, and there’s no monetary incentive to go above and beyond, why would I waste my time trying?
- shrimp_emoji 3y agoMore money won't make me do much more. I already get enough, and my dislike of something and the added stress of slogging through it isn't worth it. I'm not a frycook desperate for more hours to make rent this month. Genuine interest in the technology? That'll boost my competence leaps and bounds (through the experience I have pre-cached from my time off of work alone) for no extra pay! In other words, at dev level, > someone primarily motivated by money is likely far too up Maslow's hierarchy for extra pay to make up for the problem of having pure "hired guns".
- stefanos82 3y ago> Honestly, I think it's time for me to find another line of work. Count me in when you find it! What I miss from technology is the group of people I used to collaborate with during my university years. We used to work on one thing and one thing only (UNIX Philosophy anyone?) and there was no way we would not master our craft back then or the subject we were given to work on. Nowadays everything feels like work on bleeding edge and don't care about the quality of code nor the security of your own libraries. I feel so awful with myself for choosing such a wrong direction.
- shrimp_emoji 3y agoIt sounds like you're in webdev. :p (I stay away from it for an ineffable mixture of feelings I get from it that are similar to yours even though my programming career is too new to have your memories or preconceptions.) How true is this for work with legacy codebases or embedded?
- stefanos82 3y agoFrom friends that work or have worked with both legacy codebases and embedded systems I can say this: those who worked or still work with embedded systems love it, because they are working on a single thing only. Those who work with the legacy codebase, it really depends of the type of legacy infrastructure. If it's a mad chaos, they prefer not to discuss it with me because they get anxious knowing they will work on that monstrosity the very next day and don't want to ruin their evening lol! Else if it's rather clean comparing its legacy status, they don't mind, but worry about their future; they don't want to stay outdated from a tech point of view, in case they need to look for a job.
- stefanos82 3y agoI feel trapped to be honest with you...on one side is young developers that their mind is a sponge comparing my old grumpy half-burned brain-cells (lol) and on the other is the AI that does incredible things that could easily replace us one way or another. I don't know anything else apart from technology and I feel doomed -_-
- the_only_law 3y agoYeah I really regret going into the field now, especially the way I did it. There’s just no where else to go that isn’t just less of the stuff I like about it and more of the stuff I hate about it. I had a plan to go back to school and switch fields, but the more time passes, the more I realize this isn’t going to happen. Everything keeps getting more and more expensive, both in terms of money, and more notably time.
- JohnFen 3y ago> There’s just no where else to go Yeah, that's a problem. This is literally the only marketable skill I have.
- mbm 3y agoWhat field were you thinking of switching to?
- the_only_law 3y agoI don’t like to talk about that too much on this site, but I’ve have been a number of ideas, mostly still in technical fields. I thought I had my head set on something, but it was, funny enough, all predicated on having a well paid software job to fund the jump. I planned on starting this year, using community college along with statewide transfer programs to get started as quickly and as affordably as possible, but the layoff and current economic/financial situations rocked me, and I’m not sure I have the capability brains, or money to pull it off anymore.
- JohnFen 3y ago
- jf22 3y agoI've been in the industry for 20 years. For 23 years, every time a discussion like this the same answers come up: - People aren't craftsmen like the used to be. (new gen is worse) - Young people learn faster. (youthful vigor has advantages) - The industry changes so fast. (tech is like that) - People are only in it for the money. (as always) The older I get the more I feel like nothing actually changes besides the colors of our IDE.
- JohnFen 3y agoI've been in the industry for nearly twice as long, and I agree that it was about 20 years ago that you started commonly hearing that sentiment. But it wasn't a common one earlier than that.
- natpalmer1776 3y agoCould it be because that 40 years ago there wasn’t an industry in the sense that we have now to have those sentiments about? Seems like the folks around in the 80’s were standing on the shoulders of the original researchers who pioneered the whole shebang, there was no “old blood” to really complain.
- JohnFen 3y agoThe industry was certainly immature, but it had absolutely existed for a while (you could argue since the '60s, although I've heard good arguments to place its start in the '50s). When I entered it, there were already graybeards, and I was the young whippersnapper.
- thensome 3y agoNewb feelings: stuff is changing really fast and hopefully it's good! Old people who don't even know anything about programming are running everything and refuse to retire and let us get on with actually doing stuff. Young dudes are way more respectful of other engineers' actual skill, and less likely to ask female coworkers on dates or do other weird things that drive them away. My mom has actually seen a few younger guys step up and defend her after like forty years of handling these dickbrains on her own. The social side of things, at least in most companies we've seen, has become moderately better for everyone who isn't at work to get a date.
- JohnFen 3y agoWait... > Old people who don't even know anything about programming are running everything and refuse to retire and let us get on with actually doing stuff. and > Young dudes are way more respectful of other engineers' actual skill Directly contradict each other. Those "old people" you're insulting probably know more than you think. I'll admit that I'm biased, being a graybeard myself, but I don't know of any engineers my age that are still working who don't have a modern skillset.
- notRobot 3y agoThe old dudes in the first quote appear to be managers and non-techies, when the latter quote explicitly mentions engineers.
- JohnFen 3y agoAh, my mistake. I'm a bit touchy about age-related comments because it's become so incredibly common for young devs to assume that older devs have old, out of date skills. So I flinched. That's another thing that makes me think I need to get out of this industry.
- tracker1 3y agoI get it, getting closer to 50 myself. I've seen plenty of older devs that try to coast it in at the end. I never had any intention of ever retiring, so I just keep learning. Still spend 10-15 hours a week reading on things. I don't always have the motivation to actually experiment on non-work projects as much though.
- whateveracct 3y agohate my career but sure love the money
- Spinnaker_ 3y agoWonderful. After doing it for 15 years I finally feel like I am becoming good at it. There are so many amazing tools, services, and resources out there to take advantage of.
- Eumenes 3y agohate the profession, but the money/benefits are good ... on most days, i'd rather be digging holes or raking leaves. a good day is no, or limited meetings, as little facetime as possible with sociopathic middle management and career ladder climbers, and an absence of non-work related conversation (i am so sick of managers leading team meetings with fluff about what everyone did over the weekend or ice breakers/strange trivia).
- tracker1 3y agoIt's complicated... again. I've been at this for close to 3 decades now. When I started, there was so much to learn and understand. Then as I learned and understood, I had a better footing and knew there was more still. From the mid 90's through now, it's continued to get complicated and there's still more to learn. All said, some things are easier. There will be restarts/reboots/refactors/refreshes and new tooling that makes the old tooling easier to live with. Docker made LXC better... Rust makes WASM easier (and so much more). I do think that too many places have jumped too many sharks along the way. You don't always need kubernetes and five 9's of up time. You also don't always want to break every minute action into a separate lambda/function. I feel so much for the gray beards from when I was in my 20's. Keep it as simple as you can. If you must add complexity, make sure you wrap it in such a way that makes everything else simpler. Don't create a large application for what you can do with a small script. Automate anything you have to touch more than a couple times. There will be times where you are slogging, and times where it is easy. You will work with brilliant people and certifiable idiots along the way. Such is life. If you are passionate about the work, and love to constantly learn. You'll be okay. If you aren't, then find that balance in life, and do what you need to in order to keep up.
- mikewarot 3y agoI've been a programmer since the 1980s. I feel that the peak of the field was somewhere between 1995 and 2000. We had Windows 95/98, the Internet, and all programs were local applications run on a desktop, that people had gotten very productive on. The existence of Visual Basic and VBA support in the Microsoft Office Suite made it possible, and even practical, for most domain experts to build usable applications that allowed everyone to get their jobs done. If there were performance problems, or it needed to be made more reliable, professional programmers would be brought in to rebuild things in a more properly designed manner.... it was at this point that we almost shifted to being actual Software Engineers, and professionalized. Since then VB was cast into the pyre as a sacrifice to the very unnecessary migration to .Net, and the bloat that ensued as desktop programming lost a decade of productivity, people decided to just shove everything onto the web. It was only as this was starting to happen that Steve Jobs further crippled programming by introducing the iPhone, and suddenly GUI applications were expected to work on tiny screens (in either orientation) without proper input hardware like 3 button mice and keyboards, connected across a slow and unreliable network connection. Needless to say, the last 2 decades have been a total loss as far as programmer productivity goes, with one shining exception.... GIT. Git has its flaws, mostly arising when people don't realize it's a set of snapshots that fake storing deltas, and not the other way around. GIT/GitHub, et al... are fantastic. The ability to just keep multiple machines up to sync without hassle in seconds is sooooo good. I used to keep stacks of floppy disks with ZIP files of source code, all manually managed. In the future, we need to recover to the point where you can drag/drop GUI elements and have them work anywhere, like we were with VB/Delphi/Hypercard. When we get there, we'll let users build basic applications, and we can finally professionalize and apply actual engineering practices to the art of programming. Until then, please stop calling it engineering. We don't put in anywhere near the effort that Margaret Hamilton (the first actual Software Engineer) and crew did, in safely getting men to the moon. We're programmers, not Engineers. As Uncle Bob said, we don't profess anything. We certainly don't use engineering practices as described by The Engineer Guy. --- Example: You can plug a lamp into an outlet, and in the US, it can draw up to 15 amperes, and under almost all circumstances, you can't damage the wiring in the house via a fault in the load. We have no equivalent in software. Chroot, sandboxes, etc... are far too unsafe. We have no standard way of letting the user choose resources to give to applications at run time. The worst part is, most people don't even see the deficiency. Imagine the current power grid with no fuses or circuit breakers.... the first wiring mistake would crash civilization. We can do better, we must do better.
- _ank_it 3y agoGiven all the advancements in the field of AI, I want to program more. Go more for low level programming. Talk to the hardware
- deleted 3y ago[deleted]
- shortrounddev2 3y agoI'm getting bored with web development. It feels like so much of my job is just accounting for the shortcomings of the frameworks we use, and we chose our frameworks so that our bootcamp grads can write javascript on the backend and don't have to learn java or C# or something which would make our backends a lot easier to work with. I do DirectX Graphics and native programming for fun on the side, but it doesn't seem like there's any good money in it. I look up DirectX jobs but a lot of them are AI using GPU pipelines, and AI is really uninteresting to me