News for hackers. Stuff that matters.
Re:I no longer build software by matthewmacleod on Monday September 21, 2020 @09:23AM (#24543040)
It goes without saying that your feelings are personal ones, totally valid, and nobody can really question them.

I'm 20 years behind you, and I don't know what effect that will have on my views. But I don't really recognise the picture you're painting. Compared to the first steps I took as a developer about 15 years ago, almost everything about software development seems better to me. I find developing software to be easier, more consistent, and less frustrating than it used to be. Good development practices—things like testing, CI, coding standards and so on—seem more prevalent than they used to be. It's easier to get code out to production than it ever was. Everything in the ecosystem—like tooling, libraries, and services—feel far more open, consistent, and accessible than they used to.

I am almost certain that on the whole I spend a far greater proportion of my time now actually writing code that does interesting things, as opposed to code that hacks together some junk to try and make it work with other junk.

I think I'd draw the conclusion that everybody's opinion on how the industry works is going to be heavily influenced by their individual experiences. Maybe I just enjoy software right now because I've now got the technical competence and confidence to avoid some of the frustrations that I experienced earlier in my career, and in another 20 years I'll be right there with you lamenting the state of the industry. Who knows?

Re:I no longer build software by jlangenauer on Monday September 21, 2020 @09:34AM (#24543195)
I think you are right to say that the methods are vastly improved, but the ends to which those methods are applied have become ever more uninteresting (for a lot of people), and often morally suspect. We have built exquisite tools, but we use them to extract profit, to manipulate behaviour and often for no discernable purpose at all.

Programming has become joyless.

There are ever-shrinking spaces where a developer gets to build something novel - something that's state of the art, that's creative, that taxes their intellect and brings the pleasure of achievement forth. It seems that for every developer working on rocket guidance systems or self-driving cars there are a hundred toiling away on yet another CRUD app, or wrestling with a hydra of microservices. It pays well, but fun it is not.

Re:I no longer build software by tluyben2 on Monday September 21, 2020 @11:42AM (#24544692)
Not to mention that those CRUD apps have been done, exactly the same, 10000s of times before and 10000s of people are doing the same work you are doing now at this moment.

Everyone thinks they are productive but value is being burned all day, every day in most companies all over the world. The level of reuse is depressing and people, especially here, firmly believe we need to use the latest frontend and backend crap to rebuild what was working perfectly fine before.

More and more everything appears resume driven and to extract more hours billed or even higher LoC or commits per day. It is a nightmare and I refuse to play more and more. The over architecting for shit one off projects burning 10000$s a month ‘in the cloud’ so it probably, maybe it won’t crash with the 5 users per day it has using it.

Yes the tooling is better but the drive to use every latest tool and tech really makes no sense for almost any project.

Fitting anecdote; a company from LA was contracted to build a crud app for a big corp; they used react, typescript, node, express, aws, aws lambda, redis, dynamo and rds. For a crud app. They got $50k for it. For a crud app. Costs were through the roof running it as you need actual good people to run it. It failed a lot of times for such a setup as it was all the latest of the latest architecting wise. Brittle as hell even with all the tests and resume driven busywork. I rewrote it 1 php + bootstrap and jquery file in 1 day with a perl script to migrate the data and running on a 1.99$/mo server. Cheap, easy and no worries; handles a lot of traffic for the cost of a cup of coffee, does not need devops and they paid $2k for it to me. This is not the only story; microservices + serverless + the cloud really are excellent for making money, but as you say, no fun and in my experience, no benefit. Just added complexity.

Re:I no longer build software by altdatathrow on Monday September 21, 2020 @12:20PM (#24545207)
Unfortunately there are a lot of people around these parts who have arrived at the conclusion that the only way to build software today is using all those services and more (I mean, where's kubernetes in that stack?). They will aggressively defend their role which is no longer about creating software but instead entirely about weaving together a myriad of components.
Re:I no longer build software by throwawaygh on Monday September 21, 2020 @01:00PM (#24545743)
Playing with legos is easier then delivering value.
Re:I no longer build software by kennu on Monday September 21, 2020 @01:09PM (#24545858)
Playing with legos is delivering value. Reinventing the same wheel over and over again is not.
Re:I no longer build software by jschwartzi on Monday September 21, 2020 @01:21PM (#24546008)
What's often missed here is that the problem the lego is slotted in to is often subtly different each time. So you have a guy building an 8x2 lego brick that slots perfectly into his mansion and then someone else really needs to cut a corner off of it to fit their problem. But the original designer never gave you the option to do that so now you have to write an adapter to plug the 8x2 into an 8x2 without a corner.

It only looks like reinventing the wheel every time if you're completely ignorant of the subtle differences of each problem domain. And if you make a bunch of changes to create arbitrary lego bricks then now everyone has to learn your brick framework before they can make an 8x2 brick.

Re:I no longer build software by kennu on Monday September 21, 2020 @01:33PM (#24546141)
I agree. You have to know your lego blocks well and understand where they fit and where they don't. But if you choose to remain ignorant of the available lego blocks, and instead write everything from scratch every time, you're wasting a lot of effort.
Re:I no longer build software by Igelau on Monday September 21, 2020 @04:33PM (#24548136)
> But if you choose to remain ignorant of the available lego blocks, and instead write everything from scratch every time, you're wasting a lot of effort.

That's a good seam upon which to filet this analogy. A quick Google search turns up uncertainty as to how many different bricks there are. It could be in the 3000s, 6800s, or over 12000. We are all ignorant of the available lego blocks.

Re:I no longer build software by kennu on Monday September 21, 2020 @04:53PM (#24548343)
I'm not entirely sure what you mean. But if we're talking about AWS cloud services, there are certainly AWS experts who know how to develop software in a cloud-native way and utilize most or all of the relevant services. That knowledge is what we are paid for. It's also true that there are a lot of AWS services available and expertise is divided into different specialty areas, like ML, IoT, etc. Hard to be expert at everything.
Re:I no longer build software by tluyben2 on Monday September 21, 2020 @01:47PM (#24546300)
Agreed but that is not what is happening though ; people do both; they use legos and reinvent the wheel. Making everything, imho, worse.

The authentication thingy you got as lego block did not quite fit and now you are using more code than the module has in it to add what you need for it to do, making the original module probably impossible to upgrade without a lot of work and creating a problem for maintenance. Now you can fix this by telling your client; ok, I won’t do this because your idea of auth is wrong. But then the client might kick me out (probably not a bad plan if they are doing trivial things significantly different than the rest of the world). I can just implement it like I mentioned above and make money maintaining it (risking having also to maintain the original lib). Or I can just make a new lib and for which I know it does what it was.

Then, my favourite option, is just take something that just works already, deploy that and adapt a few people their habits around it. It fits 95%, stop whining. The least popular option ofcourse, so there we are, creating slightly different wheels with millions of almost the same LoC and unused andor unmanaged libs that should not have been written or used, again, imho.

Re:I no longer build software by kennu on Monday September 21, 2020 @02:01PM (#24546448)
I have different experiences. My "lego blocks" are AWS services. Each service is a black box that maintains its API backwards compatible forever. My custom stuff is built around the API and keeps working forever. ( * ) In my view AWS has been very successful in maintaining this backwards compatible model even when they often add new features to services.

There are sometimes edge cases that are not possible to implement, but they are rarer and rarer as the service portfolio grows. In those cases the only option is to write your own container and deal with the usual package-level dependency issues in whatever programming language you use.

( * ) The only thing that doesn't work forever is Node.js, which is deprecated every few years and needs to be upgraded to a new major version. I'm looking forward to the possibility of WebAssembly/Deno replacing Node.js as an "evergreen" application platform.

Re:I no longer build software by tluyben2 on Monday September 21, 2020 @02:12PM (#24546581)
What are you paying though? The most common reason I get pulled in is because of exorbitant aws bills which eclipse dev bills... This sound expensive.
Re:I no longer build software by kennu on Monday September 21, 2020 @02:25PM (#24546720)
In the past 5 years all my projects have been based on AWS Lambda, API Gateway, S3, DynamoDB and other serverless technologies which are only billed for actual usage and network traffic. So they don't cost much unless they actually get heavy load from users.
Re:I no longer build software by altdatathrow on Monday September 21, 2020 @02:54PM (#24547031)
I love how the justification of numerous AWS services is always "so it can scale" but if and when that scale ever happens, a new architecture is necessary because the costs become untenable.
Re:I no longer build software by kennu on Monday September 21, 2020 @03:26PM (#24547413)
I haven't seen this happen myself. In projects that I've been involved with, the justification of using serverless services has been to reduce development costs, because you don't have to setup and develop everything from scratch and spend effort maintaining the infrastructure. The ultimate goal is to avoid doing anything else than define the business logic that is unique to the project.
Re:I no longer build software by allo37 on Monday September 21, 2020 @02:45PM (#24546937)
Is it the same wheel? It sounds like you wanted a Honda Civic, but you used the wheels from an Abrams tank. So obviously the solution is to invent a tank wheel <> Civic chassis adapter layer?
Re:I no longer build software by friendlybus on Tuesday September 22, 2020 @05:30PM (#24560178)
>They will aggressively defend their role which is no longer about creating software but instead entirely about weaving together a myriad of components.

Same thing is happening with mechanics. Young mechanics repairing parts less often, more handing off parts in need of minor repair to specialists and a focus on fitting parts.

Re:I no longer build software by outworlder on Monday September 21, 2020 @01:29PM (#24546092)
Kubernetes is amazing when engineers need it.

Kubernetes sucks when managers need it.

Re:I no longer build software by Sharlin on Monday September 21, 2020 @01:56PM (#24546393)
Never underestimate the number of engineers that convince themselves they need something because it is trendy and sounds cool.
Re:I no longer build software by rabuse on Monday September 21, 2020 @01:07PM (#24545837)
I'm so tired of React being thrown into every single web stack as of late. You don't need some large React boilerplate mess, that could've been done with some simple PHP+Jquery stack. It's caused this SPA nightmare also, where you have a large delay in page loading, when it's a site with basic functionality.
Re:I no longer build software by therealdrag0 on Monday September 21, 2020 @01:34PM (#24546152)
> Not to mention that those CRUD apps have been done, exactly the same, 10000s of times before and 10000s of people are doing the same work you are doing now at this moment.

And yet now OP is making wood furniture, which has been made before the same thousands of times. Some people need originality some don't. Some just like the work for its-own sake. For those who need originality they should find a job working on something that's not a CRUD app. Not everything is a CRUD app. That's on them.

Re:I no longer build software by tluyben2 on Monday September 21, 2020 @02:02PM (#24546464)
Sure that is true, but then again I have written many of employee directories, cms’s, erps, social networks, running apps, banking fronts and backends, insurance fronts and backends which were all exactly the same except forced in a different tech because of the taste du-jour. We wrote a massive insurance monolith system in c# and my new client wants it microservice and in TS/node. We will be doing exactly the same as 2 years ago and make a boatload of money while we have a working and tested solution. Almost all of this is CRUD with some calc sheets in excel which we did in the 80s, 90s, 00s and again now. The functionality is completely the same; even the screens have the same ux; ui is a bit updated. But the MS foxpro version was fine almost 30 years ago. Not my money though so what can I do.

Not sure how it fits wood furniture; you cannot copy a chair in a nanosecond; you can software. I am not saying there is no space or need for bespoke and unique software but if you are doing LoB apps for/in a big corp, as many of us do daily, chances are there is a) a perfectly fine version already running in your corp somewhere and b) a completely identical product in all the companies around the block.

Re:I no longer build software by Sodman on Monday September 21, 2020 @05:32PM (#24548712)
> chances are there is a) a perfectly fine version already running in your corp somewhere

You and I have very different experience with big corps :)

My experience is closer to "There's a half-finished version running somewhere that was cut short because of budget/deadline constraints. The team that worked on it is long gone, and it has been maintained by an outsourced team of junior resources for 3 years".

Re-writing a customer-facing system to be closer to the "modern" web experience they're used to on their everyday apps and sites _can_ make a substantial difference to customer experience, and ultimately the bottom line.

Re:I no longer build software by jnsie on Monday September 21, 2020 @01:55PM (#24546383)
> Not to mention that those CRUD apps have been done, exactly the same, 10000s of times before and 10000s of people are doing the same work you are doing now at this moment.

I recently worked for an org that had quite a large software suite (internal system) that was 99% CRUD. For every single CRUD operation, there was a front-end call, to a back-end service, that called a specific stored procedure. So pretty much 4 stored procedures for any construct stored in the database. No ORM, very little dynamic building of queries, thousands of database tables. Releases were a nightmare, change management for database objects is its own complexity, especially with so many objects. I think people were open to change, but with a decade of existing data structures+data, and a long list of projects, nobody wanted to make a change...

My one regret, with respect to that org, is not driving the necessary change.

Re:I no longer build software by tluyben2 on Monday September 21, 2020 @02:09PM (#24546551)
The recent (modern startup, hip and happening and VC invested company) I built a CRUD frontend for has a lovely system: mysql but the db is not relational: 1000s of tables matching the Objects in their OO code. I have so many scripts and generators and, especially for mysql, introspection tools it was not that much work but what a horror show.
Re:I no longer build software by sangnoir on Monday September 21, 2020 @03:23PM (#24547369)
> The level of reuse is depressing and people, especially here, firmly believe we need to use the latest frontend and backend crap to rebuild what was working perfectly fine before.

This seems overly cynical to me; the reason software developers are well-paid (overpaid, some would argue) is that what they build is measurably better that what was there before (at least in dollar terms. I'm not getting into the moral quagmire of automation replacing human jobs ATM)

Code reuse is often a red herring, when taken to extremes. Here's a thought experiment: all software developers are now required to implement all CRUD software in SAP or Peoplesoft (pick one). How much of the code do you think will be re-used, and how much will be in the customizations?

Re:I no longer build software by thothamon on Monday September 21, 2020 @01:52PM (#24546357)
$50K is kind of cheap actually. I've seen people pay $200K and more for basic CRUD websites with a little extra this or that.

In fairness, if your web app does more than CRUD, or if you expect it will in the future, then PHP and jQuery wouldn't be my first choice. I'm very familiar with how much of a mess an app can become when pursued that way -- a nasty soup of callbacks and conflicting states. As tooling around React improves -- and it's already quite good -- it will be easier to cost-effectively write a React CRUD site.

If you just want a CRUD site that works, and you want it fast, a Rails site with scaffolding will probably give that to you in an hour or two -- with almost the whole hour being spent thinking about your data model.

Re:I no longer build software by aarongough on Monday September 21, 2020 @11:18AM (#24544438)
Unfortunately I agree with this. A great quote I saw a while ago:

“The best minds of my generation are thinking about how to make people click ads.” –Jeff Hammerbacher

Every paying software job I've ever had was in some way involved getting people to click on ads. Either directly making a product where ad click rate is a measured metric, or products that helped people make products where clicking on ads was a metric...

I have usually been able to find a lot of joy in solving the problems in the smaller areas where I was focused, but whenever I took a step back and looked at what I was helping work towards it felt very meaningless.

I think finding a job today where you feel like the work you do does genuine good for the world is an incredibly rare and difficult thing...

Re:I no longer build software by jerf on Monday September 21, 2020 @12:01PM (#24544944)
Have you tried... looking for one that isn't?

I've been in the biz for coming up on 25 years and I've never tried to make anyone click on an ad.

It also may help to downgrade "doing genuine good" from "solving the world's biggest problem once and for all" to "helping people get food reliably" or "keeping this industrial process that provides value to thousands of people going" and so on. Sometimes I do lose a bit of track of what I'm doing, but in the end the jobs I've worked still end up helping people do useful things, or protecting people, not making them click on ads.

There's a lot of jobs in programming that don't involve making them click on ads. Even in the heart of Silicon Valley, there's going to be a lot of jobs that don't boil down to that.

But you may have to, you know, change jobs.

Re:I no longer build software by UncleOxidant on Monday September 21, 2020 @12:19PM (#24545187)
I've never had a job convincing people to click ads either in about the same amount of time. But when I look at the salaries being paid by those companies trying to get people to click ads I think I must've made a mistake somewhere. Not that I want to have a job getting people to click ads, but those jobs pay like 2X to 3X the highest salary I've ever made (or more).
Re:I no longer build software by spenczar5 on Monday September 21, 2020 @01:10PM (#24545875)
You haven't made a mistake. Those jobs pay highly because they have to. The phenomenon of soulless, not-great-for-the-world jobs being really highly paid is not a new one, and not at all unique to software - compare a celebrity plastic surgeon versus a doctor who saves lives after disasters, or a corporate attorney at a weapons company versus a pro bono lawyer who works for virtually nothing.
Re:I no longer build software by jerf on Monday September 21, 2020 @03:08PM (#24547176)
Full disclosure, I'm doing OK (not living in SV helps a lot), but, yeah, I'm not pulling down half-a-mil a year.

But I don't want to hate my job. I don't always love my current job... as I like to say, they're paying us precisely because this isn't what we'd be doing of our own free will... but I don't want to hate it.

Because it's more than just the hating the job. It's coming home every day to your family in a bad mood. It's your children associating you coming home with the guy in the bad mood coming home. It's being on hair trigger all the time despite your best efforts. It's living in a place I don't want to live.

The funny thing is, I look at that and I don't feel like I should be willing to pay $300,000/year for that... but apparently I am.

Re:I no longer build software by Accujack on Monday September 21, 2020 @12:43PM (#24545515)
It's neither rare or difficult, exactly. The problem is how you look for the job.

Most corporations in the US that are for profit aren't about doing good, they're about making money, and publicly held corporations are even legally encouraged by US law to put the shareholders' bottom line first and foremost.

Non profits can care a lot more, but they generally (at least the ones that exist not) don't focus on something abstract like software, they generally serve an immediate need like affordable housing or surplus food distribution or job training.

Until the business climate in the US changes, about all anyone can do if they want a job where work actually helps people is either work somewhere they get paid enough to use surplus cash to help people or work for a non profit.

I think an idea that hasn't really been tried yet is building a non profit for software... not fitting a non profit base to an existing package, but building a corporation that is made to produce software for the public good.

Re:I no longer build software by burntoutfire on Monday September 21, 2020 @12:53PM (#24545652)
> I think an idea that hasn't really been tried yet is building a non profit for software... not fitting a non profit base to an existing package, but building a corporation that is made to produce software for the public good.

Mozilla? Unfortunately, they weren't successful at creating new things of value (with maybe Rust being the exception).

Re:I no longer build software by dahfizz on Monday September 21, 2020 @12:45PM (#24545534)
I'm going to take a wild guess that you are a web developer.

I'm a happy low level systems developer. I solve hard and interesting problems that have nothing to do with ads.

Re:I no longer build software by notacoward on Monday September 21, 2020 @08:19PM (#24549728)
Who are your customers? There are plenty of low level systems developers at Facebook and Google and so on. The solve the same hard and interesting problems that you do, probably at greater scale so they're even more hard and interesting. Often they're many layers removed from the people who directly get others to click ads. Being a low-level developer, or being at a separate company, doesn't necessarily put you at any greater remove from the advertising octopus.
Re:I no longer build software by dahfizz on Tuesday September 22, 2020 @07:32AM (#24553281)
I work in Fintech, our customers are banks and the like. They actually buy our software because it generates value directly instead of trading in human attention.

Maybe you think banks are just as bad as advertisers but I tell myself I am enabling the tens of millions of Americans who have retirement accounts. The day-to-day is enjoyable nonetheless.

Re:I no longer build software by notacoward on Tuesday September 22, 2020 @09:10AM (#24553992)
> Maybe you think banks are just as bad as advertisers

Banks as in consumer banks? Maybe not. Commercial banks, brokerages, hedge funds? Welp. I admit that some of those have made my imminent retirement possible, but from a broader view I don't see much good about how large the US financial sector is compared to the overall economy or the preferential treatment they get from our government.

> I tell myself I am enabling the tens of millions of Americans who have retirement accounts.

I'm sure many at Facebook would say they're enabling small businesses and non-profits directly through advertising, and many more "little people" through the platform(s) that those ad dollars pay for. They're also enabling some very unsavory people and behaviors, as are most in fintech. Read the news lately? ;) Everyone likes to dump on ad-funded businesses. I've done so myself. It's not entirely unjustified, but sometimes it seems disproportionate and even hypocritical.

Re:I no longer build software by aarongough on Monday September 21, 2020 @10:19PM (#24550261)
Correct!

Interesting point you make: there is definitely selection bias going on because of this, but I've honestly never thought about it that way before!

Re:I no longer build software by ci5er on Monday September 21, 2020 @02:45PM (#24546939)
> Every paying software job I've ever had was in some way involved getting people to click on ads.

That's an amazing fact.

May I ask how old you are?

I've been designing SOCs, DSPs, Control Systems and a lot of software for various systems since 1985, and I can only recall one that might have been close to "clicking on ads" (it was a personalized "on hold" system for dial-in to major retailers (like JCP), to replace Muzak with offers and information and stuff). I was the VOIP-to-Enterprise-Telecom integration guy, so not directly tied to the ad-part, but the company pushed couponing to their clients pretty hard.

Re:I no longer build software by gnu on Wednesday September 23, 2020 @03:13AM (#24563945)
Same. I am in the industry for 20+ years and thankfully none of my jobs have involved anything close to ads.
Re:I no longer build software by aarongough on Monday September 21, 2020 @10:28PM (#24550302)
I'm 35. Luckily I'm now running my own manufacturing business where I get to work on a much wider range of stuff!
Re:I no longer build software by orbifold on Monday September 21, 2020 @12:27PM (#24545299)
The quote should be

"The best minds that I know are thinking about how to make people click ads."

There is a considerable number of exceedingly intelligent people in pure mathematics and (theoretical) physics that don't work for Google, Facebook etc. and never would. Those that do often have nothing to do with Ads even three to four edges removed (think Martinis or the people at MSR).

Re:I no longer build software by ska on Monday September 21, 2020 @01:12PM (#24545902)
This is true, but don't overestimate it. I know first rate math & physics types who gave up on academic work and now work at a FAANG or similar; and I know second rate ones who stayed. So it's a mixed bag.
Re:I no longer build software by treis on Monday September 21, 2020 @01:11PM (#24545887)
>Unfortunately I agree with this. A great quote I saw a while ago: “The best minds of my generation are thinking about how to make people click ads.” –Jeff Hammerbacher

They're not really though. Ads may be the revenue stream but it's not like the top engineers at Google were on ads. They were building the search engine.

Re:I no longer build software by adventured on Monday September 21, 2020 @02:06PM (#24546515)
It's an amusing quote in the sense that it gets used by two people on opposite sides of it, and they're both wrong.

People that hate ads love that quote because they like using it to lambast the tech industry (in general, and advertising in particular), even though only a small percentage of engineers or other tech industry employees work on ads.

People in the ad space love that premise. You know what's worse than that premise? Admitting to themselves that they're not the best minds of their generation and they're still stuck doing work trying to figure out how to optimize ad clicking - the worst combination. At least they get to pretend they're the best minds of their generation, if they buy into the quote, that's a consolation prize.

The best minds are largely not working in advertising (maybe a small share of them are). They're figuring out how to leverage CRISPR to cure and prevent disease, or trying to figure out a therapy for Alzheimer's disease, or working on immunotherapy. They're the kind of minds that were working at Pharmasset figuring out how to save tens of millions of lives by curing hepatitis C. They're designing and building the next generation of semiconductors at ARM, Apple, TSMC, Samsung or Nvidia, pushing against the boundaries of what's physically possible. They're working on electric cars at Tesla or VW. They're trying to solve our battery problems. They're launching rockets at SpaceX or Rocket Lab. They're designing the next airplanes for Airbus. They're at NASA, ESA, JAXA, CNSA, heading to the Moon and Mars, or working on James Webb, figuring out if Venus contains life, and so on. They're designing the next generation of nuclear reactors, ITER or maybe working at LHC. They're working at Illumina, Boston Dynamics, Intuitive Surgical. They're in national and university labs all over the world, trying to solve very hard problems on a daily basis. They're even working on hypersonic weapons, military drones and designing nukes. And that's not meant to exclude the rest of this giant world, as the world is filled with examples.

Re:I no longer build software by crawlcrawler on Monday September 21, 2020 @01:50PM (#24546338)
>> were

If you meant to say that Google's top engineers _used to_ work on the search engine but nowadays they work on making people click on ads because that's were the money is, then I wholeheartedly agree with you

Re:I no longer build software by treis on Monday September 21, 2020 @02:39PM (#24546889)
No, it's like saying the best athletes of our generation use their gifts to get people to buy stuff. That's how they make their money, but ultimately it's not what they spend their gifts doing. They work to be at the top of their sport and other people figure out how to make money on that.
Re:I no longer build software by crawlcrawler on Monday September 21, 2020 @03:29PM (#24547437)
Successful/rock star athletes spend 99.9% of their time honing their athletic skills and the rest on advertising deals. Google on the other hand spend 99.9% of its time on making people click on ads. Because that's their athletic skill? No. Because money.
Re:I no longer build software by jpxw on Monday September 21, 2020 @01:26PM (#24546059)
The search engine built to make people click on ads (/tongue-in-cheek)
Re:I no longer build software by Diederich on Monday September 21, 2020 @01:43PM (#24546253)
> Every paying software job I've ever had was in some way involved getting people to click on ads.

This is interesting, thanks for sharing that.

Of the nine organizations that have paid me to write software since 1993, only one of them would fit in your criteria.

Note: I am in no way doubting your claim, and I actually appreciate your perspective and the quote you cited.

I will more deeply consider that when categorizing companies in my mind going forward.

Re:I no longer build software by aarongough on Monday September 21, 2020 @10:32PM (#24550316)
I have been lucky enough to work with a lot of great people, and I definitely found a lot of enjoyment in a lot of the work I've done, but I definitely wish that time had been spent doing work with more of a positive impact... Luckily there's still lots of time and I'm working on more impactful stuff now!
Re:I no longer build software by notacoward on Monday September 21, 2020 @12:01PM (#24544945)
I sort-of know Jeff, and I think he comes here sometimes, so: hi! Funny thing: the same company "inspired" both of us. The best minds of my generation are figuring out how to get two broken systems to talk to one another.
Re:I no longer build software by throwaways885 on Monday September 21, 2020 @12:56PM (#24545692)
Ads are only the way of making money, or are you saying it only matters what the end result is? It's possible to sell ads and also do good with the work.
Re:I no longer build software by crawlcrawler on Monday September 21, 2020 @01:56PM (#24546396)
Businesses have a tendency to optimize for making money so if the only way for them to do so is by having people click on ads, guess what they'll eventually become great at.
Re:I no longer build software by Gehinnn on Monday September 21, 2020 @10:18AM (#24543768)
I had a great amount of fun working on my debug visualizer extension for vscode that was trending on hn a couple of weeks ago. And on other open source extensions and projects. I felt visionary and proud. That is what I want to do.

But it pays for nothing. I make more money as a street musician than with my open source projects that have more than 100k users. But I got paid a lot for improving some online gambling site. This is how it is.

Re:I no longer build software by pbronez on Monday September 21, 2020 @10:53AM (#24544169)
There are some economic theories about non-monetary compensation that try to explain this. Basically:

Total Compensation = Salary + Benefits + Intangibles

Those Intangibles can be things like working environment or commute, but they can also include your affinity for the organization’s mission. People are willing to take smaller salaries when they’re working on something they love & respect. It takes more money to convince people to work on boring or undesirable things. It’s the exception to be paid well for something you like.

Re:I no longer build software by amscanne on Monday September 21, 2020 @11:48AM (#24544758)
I think the word you’re looking for is “utility”. People maximize for utility, which includes all of the terms above. Utility of money also has diminishing returns, etc.
Re:I no longer build software by lostcolony on Monday September 21, 2020 @12:58PM (#24545723)
I think you need to call out bonus and RSUs/long term incentive plan here, too. Many places don't have them; talks of salary invariably leave them out, but they are what makes the FAANGs TC particularly compelling. And other companies do have them, but oftentimes it's hard to figure out which do, and for what roles (since it sometimes is dependent on seniority and perceived importance).
Re:I no longer build software by Kronen on Monday September 21, 2020 @11:55AM (#24544849)
I disagree, one of those intangibles is the easiness to learn, so most of the time you get paid less for working on boring or undesirable but easy to learn things like one CRUD app after another. And you get paid better for more difficult and interesting things, because there are less people able to do it.
Re:I no longer build software by convolvatron on Monday September 21, 2020 @12:39PM (#24545460)
i find the contrary to be true, largely without exception. the boring useless stuff that no one wants to touch generally pays alot better.

work that I actualy care about is difficult to get paid for

Re:I no longer build software by matthewmacleod on Monday September 21, 2020 @09:57AM (#24543490)
There are ever-shrinking spaces where a developer gets to build something novel

I think it might be possible to say that relative to the entire industry the space for novel or interesting work is shrinking – possibly. But I don't think that actually means there's less interesting stuff to work on. If anything, the spaces for that are growing – maybe more routine work is growing faster, but I can't really say. I'd wager that the majority of software for its entire history has been pretty boring.

Re:I no longer build software by ativzzz on Monday September 21, 2020 @11:19AM (#24544447)
I agree. Though because of the growth of the industry, these spots where actual cutting edge work is happening are insanely competitive, and I would bet that many of the programmers (not all of course) who worked on the cool stuff 20 years ago would not make the cut for the cutting edge today, or are simply not interested in the particular niche of that edge.
Re:I no longer build software by jfim on Monday September 21, 2020 @11:39AM (#24544652)
How much of it is actual competitiveness and how much of it is the artificial barriers people put in the form of technical interviews?

There's a big gap between software craftsmanship and the algorithmic trivia interview expectations nowadays, and it seems to keep widening.

Re:I no longer build software by ativzzz on Monday September 21, 2020 @11:52AM (#24544804)
Working on the cutting edge implies some sort of combination of greater talents and ability to work harder than others (hence increased competition), which means that the artificial barrier is a mere pittance.

The people interested in doing cutting edge work will find a way to be there no matter what. The vast majority of people overestimate themselves.

Re:I no longer build software by golergka on Monday September 21, 2020 @12:37PM (#24545441)
"The brightest minds of our generation are working on making people click ads".

Every time I hear this quote, I remember all the small businesses and ventures that only exist because of Instagram, Facebook and Google Ads. Housewives baking cakes, a leatherworker making custom backpacks, a blacksmith restoring antique knives - those are just personal friends of mine who wouldn't be able to build their businesses if not for what those brightest minds of our generation are doing.

Is all of this really worthless to you?

(Copied over my recent comment on this exact topic, I hope it's OK with the mods).

Re:I no longer build software by bluejay2387 on Monday September 21, 2020 @12:05PM (#24544998)
I think what has changed is the expectation that work should always be 'joyful'. I don't the majority of employees working in any industry have ever been involved in cutting edge or creative work.

Can you imagine what the medical field would be like if the majority of general practitioners started complaining about the fact that they don't get to work in neurology research?

Re:I no longer build software by eslaught on Monday September 21, 2020 @01:33PM (#24546146)
At least for me, this is exactly why I do personal projects. E.g., here's something random I did a couple weeks ago. It's so simple that it's almost embarrassing to post, but it's:

    100% vanilla Javascript
    no dependencies
    no cookies
    100% client side; no server side state, no ajax
    state is stored entirely in the URL
    state is correctly maintained across page loads (i.e. page edits its own URLs to maintain state)
    Javascript is 100% local, so it's instant and doesn't require any data fetch
    correctly detects a potentially spoiler-full page load by looking at the referrer (so it doesn't annoy you as you navigate around the site)
    ... and the entire thing is less than 100 lines of code
And it was surprising to me how genuinely fun this project was. I work on compilers/runtime systems for a living and I often get stuck in large code bases. I enjoy what I do, but working with a small codebase that's not massively overabstracted is just so fun.

https://exanderproject.com/spoiler-test/

The other thing that stuck me, as I was doing this, was how much the Javascript ecosystem has improved over the last 10-15 years. It was possible to do this in a very small amount of code with no dependencies precisely because of the all the bells and whistles that have been added to Javascript over the years. Maybe this isn't so obvious to someone who has been neck deep in Javascript for 15 years, but as someone who has been mainly in other languages, it was a very noticeable and dramatic improvement. The web platform is way, way nicer to develop for now than it used to be when I first got started.

Now I'm trying to figure out what other small projects I can get involved with.

Re:I no longer build software by friendlybus on Monday September 21, 2020 @11:20AM (#24544455)
The joyless is across the west culturally. It'll take 20 years to build up again.
Re:I no longer build software by biztos on Monday September 21, 2020 @02:59PM (#24547087)
> Programming has become joyless.

Over the next year or two I hope to develop a mobile app.

After 15+ years of big messy corporate server programming I think this might be the place joy is hiding.

I accept that I will probably not make the money I have made gluing clouds together the past couple years. But maybe I can make something useful that people like to use.

Re:I no longer build software by agumonkey on Monday September 21, 2020 @12:58PM (#24545719)
This whole dillution would be worth a book or two. How culture, economy, technology all evolved to both progress and regress oh so subtly.
[dead]
Re:I no longer build software by jlangenauer on Monday September 21, 2020 @10:16AM (#24543754)
I may be privileged, but I am neither young nor overpaid. I started programming on something called the Commodore 64, so my opinions have been refined over decades. And if I say programming has become joyless, it's because I've been around long enough to remember when it wasn't.
Re:I no longer build software by ecpottinger on Monday September 21, 2020 @11:24AM (#24544490)
My solution was to dump the Windows environment for my personal use.

I program in Arduino where I only have 2.5 K for my variables, programming with so little memory really forces you to think about your program methods.

I built small projects using 74LSxxx chips, building logic instead of programming it can be refreshing.

When I need more space I program in C++ on a Haiku machine, 32 GB of ram and 12 CPUs gives you the power, but the lack of frameworks means it is all your own coding.

Re:I no longer build software by abraxas on Monday September 21, 2020 @12:32PM (#24545368)
What is a "Haiku machine"?
Re:I no longer build software by non-entity on Monday September 21, 2020 @01:06PM (#24545824)
Haiku is BeOS derived opetating system.

https://en.m.wikipedia.org/wiki/Haiku_(operating_system)

Re:I no longer build software by monsieurbanana on Monday September 21, 2020 @10:43AM (#24544042)
The joy someone can get out of programming seems like such a subjective feeling that I find it hard to believe you're generalizing your experience to all programmers.
Re:I no longer build software by djhaskin987 on Monday September 21, 2020 @10:15AM (#24543727)
While we should not discount your experiences, and while there are many complainers out there about nothing, I think the poster to which you replied has a deeper point.

I too am relatively young. When I was a kid, Bill Gates and windows was the devil. Nowadays I realize I judged him too harshly and that he does a lot of good in the world, but at the time Microsoft was the bridge troll.

Looking back, everything seemed so simple. Programming open source things had meaning to it. People didn't program open source back then to my knowledge as part of a larger corporate strategy. They did it because it was fun.

Corporations entered open source programming as far as I'm aware en masse in the early 2010s late 2000s. Around the same time Facebook and Google reached their peak of popularity. It felt awesome to have corporations join in the fun and it felt like the software got much cleaner and much higher quality.

After a while though it just felt like corporations took over the place. Software is better now but it's tailored to corporate needs even in the open source world.

Now that our apps have millions of users, and we can see how they interact with the app in near real time, there is a constant push to manipulate the behavior of the user. Like our app? Leave a review! How likely are you to recommend our product to a friend or colleague? And so forth. To your point, we have always been asked to do things like this but in the 90s there wasn't nearly as many ways to do so. Seeing the greater capacity of our code being used for yet more greed is disillusioning.

I get it, everything is terrible, and it always has been. But I do wonder if we haven't lost something from the '90s to now. I feel like there have been several Eternal Septembers, but instead of our communities getting flooded with trolls they have been flooded with corporate interests in communities that didn't used to have these interests at play.

To try and combat this feeling, I have tried to find those communities for programming that try to get back to our indie roots. In the '90s we didn't care or need corporations to sponsor us or our open source projects. I'm still sure there are those out there that run their projects without the need for GitHub Stars or corporate funding but it's now seen as unreliable or otherwise undesirable to use projects that are simply done for fun. I think remembering that that's all I ever used to use will help me find more fun like I used to have. Preserving the space of programming is a hobby I think is really what's at stake here.

Re:I no longer build software by vmception on Monday September 21, 2020 @10:56AM (#24544186)
check out crypto, especially the “defi” space

building there is a creative process and it pays better than big tech

The onchain codebases arent that big because they cant be.

Re:I no longer build software by microtherion on Monday September 21, 2020 @12:16PM (#24545134)
I can't judge whether the actual programming there is fun, but I can't imagine an environment where bugs get exploited to the tune of tens of millions of dollars can be all that fun, and the entire field seems to be built on fraud, scams, and finding greater fools.

I suspect a nontrivial number of programmers in that field will find themselves making license plates or exploring harbors with concrete shoes a few years from now.

Re:I no longer build software by vmception on Monday September 21, 2020 @02:21PM (#24546681)
The bugs don’t affect the programmer or the company, assuming there even is a company

And the programmers have easily translatable skills, so nice try at making a point but it doesn’t make sense when there is a real conversation to have

But you werent actually here to debate the differences in how that could affect programmers in that industry vs other industries

Your preconceptions are a random incoherent mixture of things that are oddly excusing bad actors or bad companies by ignoring them and conflating it with blaming a specialized skillset or sector

You could have kept all that in your head because this was clearly a copypasta rebuttal prepared for any conversation about crypto

Re:I no longer build software by notacoward on Monday September 21, 2020 @09:34AM (#24543189)
Thank you for sharing your perspective. It honestly warms my heart to see that some people believe the trajectory is still upward.

> Maybe I just enjoy software right now because I've now got the technical competence and confidence to avoid some of the frustrations that I experienced earlier

Just as some but not all of my (mostly negative) perception is surely personal, might I suggest that some but not all of your (mostly positive) perception is not? Perhaps the industry really has improved in some areas that you care about during that interval. Yay! OTOH, that doesn't necessarily put your perception and mine in opposition. There are other areas and other intervals, and other priorities as well. It's great that your experience has been positive. I hope it remains so.

Re:I no longer build software by devilduck on Monday September 21, 2020 @10:37AM (#24543979)
The issue isn't so much the trajectory, but the people in the industry. I've been repeating for a while now that there are too many people who are not team players, who are basically still cowboy coders, looking to scratch their own personal technical itches rather than working together to build good software. This has been my experience for the last 5 years at least. It definitely reminds me more of the 90s, when the industry was a mess because it was new and growing. My issue is mostly with the people though, not the actual work. Lots of self-righteousness. Lots of people wanting everything to be on 'hard mode.' And as someone else commented, there is definitely a Stockholm Syndrome with the money involved since I now can not do anything else and maintain my life. Nor has this industry made it easy to change jobs. Nobody wants to train, everyone seems very cheap, but they want to hire Kobe. I am counting the days before I get broken.
Re:I no longer build software by matthewmacleod on Monday September 21, 2020 @10:11AM (#24543675)
I think that's a good way to think about it. Everyone's individual perspectives are valid, and they're a mix of real things that have happened in the industry and their own experiences.

I'm very much aware of how bad some parts of the industry can be (particularly having recently dipped my toe into some machine learning work and discovered an entire sub-field in which nobody has ever heard of documentation, testing, coding standards, or things like releasing software that actually works).

Re:I no longer build software by neya on Monday September 21, 2020 @09:50AM (#24543409)
> Compared to the first steps I took as a developer about 15 years ago, almost everything about software development seems better to me.

If you mean this is better, I hardly agree with you:

https://twitter.com/thomasfuchs/status/810885087214637057?la...

Re:I no longer build software by klodolph on Monday September 21, 2020 @10:56AM (#24544187)
Honestly, this IS better.

Separating the HTML, JS, and CSS is an approach that works up to a certain size/complexity app. When I’m working on some functionality, I need to be able to understand the relevant parts of the HTML, JS, and CSS. With a smaller app, one person can more or less grok the code base well enough to find everything they need. With simpler apps, you might have fairly uniform or boring styling and not a ton of CSS rules. If I’m setting something up with Bootstrap and just getting it working, I can probably ignore CSS for a LONG time.

If you’re working on something larger and more complicated, you really want to have all of the HTML, JS, and CSS for a particular piece of functionality right in the same place so you don’t have to go searching for it. It’s how you survive in large/complex apps. You’ll think, “The margins in this box are too large” and you want to be able to fix that without trying to grok some massive set of CSS rules, and when you do get the CSS rules that you want, you want to know that they’ll be delivered to the client—something that is easy if you deliver all of your CSS rules to every client, but hard if you want to split your CSS.

I think the only real tragedy here is that too many people are copying “the way Facebook does it” without wondering if Facebook might have a completely different set of priorities than they do.

Re:I no longer build software by gagege on Monday September 21, 2020 @01:31PM (#24546130)
I agree. I came to realize a few years ago how arbitrary the HTML, CSS, JS separation is. It makes sense if you think of the web as simply a set of documents (with progressive enhancement and all that), but we've gone way beyond that metaphor. If you're building a web app, separating the three is cargo-culting.
Re:I no longer build software by matthewmacleod on Monday September 21, 2020 @10:05AM (#24543608)
I don't think that this absolutely microscopic slice of the overall software development ecosystem is really representative of anything interesting.

But yes – I do think React is a pretty good approach to UIs compared with many things I've used in the past. There are good and interesting discussions to be had about the different possible techniques that can be used; this isn't an entry into one of them.

Re:I no longer build software by z3t4 on Monday September 21, 2020 @01:29PM (#24546093)
Thats actually clean. Throw in some PHP, more JS transpiler code, and CSS frameworks into that screenshot and were talking.
Re:I no longer build software by blueterminal on Monday September 21, 2020 @09:31AM (#24543148)
I completely agree. Docker, amazing frameworks (Laravel, Django, ReactJS etc.), git, CI, amazing IDEs, etc. It's absolutely magical compared to what we had 15 years ago. Entry level is much higher though for sure, you definitely need to learn and know a lot. But once you do know certain things at a certain level, you become a very powerful individual.
Re:I no longer build software by lmarcos on Monday September 21, 2020 @10:21AM (#24543801)
And here it lays the paradox. All the tools you have mentioned have little to do with programming (one individual solving problems by writing code). The tools you mentioned have to do with software engineering (a bunch of individuals solving problems by writing code, plus a bunch of constraints).

The joy is in programming, not in software engineering. At least that's how I interprete the GitHub comment (and all these stories about developers that cannot take it any more and burn out).

Re:I no longer build software by genidoi on Monday September 21, 2020 @10:44AM (#24544051)
I think it's easy to forget that modern tooling (+AWS/GCP/Azure) let's one dev match or exceed the productivity of 15 developers and a couple of PMs in 2005.
Re:I no longer build software by mattmanser on Monday September 21, 2020 @12:16PM (#24545135)
It's a laughable claim to say one developer has replaced 15, and obviously not true. The vast majority of code was business logic and still is.

Today's 'process' is no more efficient than, say, deploying rails to heroku in 2007. And even before that, you'd spend half a day writing an automatic deployment script, and then deployments would take a couple of clicks and you'd never think about it again.

Re:I no longer build software by SahAssar on Monday September 21, 2020 @01:20PM (#24545998)
I'm not sure if you think all devs 15 years ago where stupid or all devs today are awesome, but either way I'd say you're wrong.
Re:I no longer build software by adamnemecek on Monday September 21, 2020 @02:33PM (#24546825)
He means that tools have improved.
Re:I no longer build software by SahAssar on Monday September 21, 2020 @04:38PM (#24548186)
If tooling means a 15+x improvement then it seems like it is one or the other.
Re:I no longer build software by SQueeeeeL on Monday September 21, 2020 @11:44AM (#24544707)
That's a very specific meaning, like in terms of scaling maybe? But in terms of actually meaningful problems solved for end users... But there very nature large scale systems aren't very common, but everyone is chasing that unicorn startup which can serve 10 million users; so scalable APIs are more "practical" then simple workflows
Re:I no longer build software by phkahler on Monday September 21, 2020 @12:28PM (#24545323)
Scalability seems overhyped. If you write small efficient systems they can handle a lot of work. If you use big clunky frameworks that convert simple things into map-reduce style problems of course you're going to care about scalability and how much your AWS bill is going to be.
Re:I no longer build software by ditonal on Monday September 21, 2020 @12:48PM (#24545589)
I could not agree more.

In many technical interviews, they want to talk about "scalability", using fancy big data software for horizontal scalability etc

But I also know from experience that many, many of these problems would be more elegantly solved by more traditional tools like Postgres, especially since servers have gotten more powerful, the cloud service options more plentiful and reliable, and the software more optimized. The "scalable" approach can lead to massive amounts of wasted person hours unless you're sure you really need it. But if you say, "just use RDS or CloudSQL, or maybe BigQuery", you get perceived as a newb by the 24 year old who just got his MS doing Spark work on toy problems.

Re:I no longer build software by oalae5niMiel7qu on Monday September 21, 2020 @06:18PM (#24549064)
I spent all day today and Friday just trying to get a Google Cloud Composer project to run locally. I'm still waiting for that increased productivity that modern tooling supposedly grants me.
Re:I no longer build software by blueterminal on Monday September 21, 2020 @10:25AM (#24543848)
I don't need to worry about many many trivial things I had to worry about before these tools, and now I can actually work on the problem I'm trying to solve almost immediately.
Re:I no longer build software by vbezhenar on Monday September 21, 2020 @11:06AM (#24544294)
For some people solving business problems is boring. But tinkering with those things that you're calling trivial is what brings joy.
Re:I no longer build software by pdimitar on Monday September 21, 2020 @11:20AM (#24544458)
You and me both.
Re:I no longer build software by sdevonoes on Monday September 21, 2020 @11:11AM (#24544356)
Is that true tho? I mean, I love programming, but I hate React. I love thinking about data structures and their relationships, but I don't like Docker. I spent hours thinking about how can I solve a problem (just for fun) and I absolutely don't need GCP nor Azure. I like coming up with cool algorithms (or reading about them) but I find Laravel (or Django) really unelegant and not worth my time.
Re:I no longer build software by ativzzz on Monday September 21, 2020 @11:23AM (#24544480)
It depends on the problem you're solving of course. All of these tools are built to be able to solve larger, more complex problems more effectively. You are still welcome to ignore all of them and write a cool program for yourself for fun, just don't expect to get paid for it.

Ultimately, we get paid to solve business problems, not to have fun with programming.

Re:I no longer build software by stevedonovan on Monday September 21, 2020 @11:51AM (#24544795)
This is of course true. But is a particular fashionable technology the best way to solve that business problem, or is yet another layer of fun? I suspect that being able to deliver simple scalable solutions without bandwagon dependencies is going to be a differentiator, in _business terms_
Re:I no longer build software by cs02rm0 on Monday September 21, 2020 @11:14AM (#24544394)
I'm 20 years behind you

Me too. And all I can do is point at Javascript in webpages. Which, as a Java dev (if I can still call myself that 15 years into doing all sorts of other stuff too), I want nothing to do with but somehow get dragged into all the time.

I can really relate with the idea that we're feeding the beast we built rather than the one borne of necessity. Unfortunately, which I'm sure the latter still exists, it's the former that always seems to pay the bills.

Re:I no longer build software by tstrimple on Monday September 21, 2020 @01:30PM (#24546108)
I'm at the end of my software development life cycle, but I've got the opposite perspective on java vs javascript. There's just so much boiler plate and unnecessary typing to implement solutions in java relative to javascript. The amount of stuff I can accomplish per line of code is significantly higher than any other language I've worked with, with possible exception being python.
Re:I no longer build software by TeMPOraL on Monday September 21, 2020 @10:04AM (#24543596)
I'm ~23 years behind GP, and I feel the same way as them already. Goes to say, this may be a matter of personality.

There were few and brief moments in my career as a software developer when I was truly happy at my work. Most of those involved implementing an architecture or algorithm I figured out from scratch, or took from scientific literature - either as prototype or directly in the product. Sometimes as "hold my beer, I got this" moments. But as you can imagine, this is maybe 1% of the things I've been doing at various jobs.

From where I sit (a backend developer, thoroughly burned out by webdev a couple years ago), most of coding I do is software bureaucracy. Turn this data into that data, ensuring module X and Y get paged in the process. Oh, half of the code I'm about to write is implemented elsewhere - quick, figure out how to juggle the dependency graph to somehow route control from here to there and back. This data I want to convert is not of the right colour - oh, I need to pass it through three sets of conversion layers to get back essentially the same, but with a correct type tag on it. Etc.

It's utterly and mind-numbingly boring, unless you architectured the whole codebase yourself, at which point it's somewhat fun because it's your codebase, and who doesn't like their own Rube Goldberg machines?

At this point, I've learned a coping strategy: just forget the project scope and focus on your little plot of land. Doesn't matter that the software I wrote half of is going to help people do exciting stuff with industrial robots. What matters is that the customer changed some small and irrelevant piece of requirements for the 5th time, and I now have to route some data from the front to the back, through the other half of the code, written by my co-worker (a fine coder, btw.). So a bunch of layers of code bureaucracy I'm not familiar with, and discovering which feels like learning how to fill tax forms in a foreign country. If I start thinking about the industrial robots I'll just get depressed, so instead I focus on making the best jump through legacy code possible, so that I impress myself and my code reviewer (and hopefully make the 6th time I'm visiting this pit easier on everyone).

Maybe it's a problem of perceptions. Like in the modern military - you join because you think you'll get to fly a helicopter and shoot shoulder-mounted rockets for daily exercise. You get there and you realize it's just hard physical work, a bit of mental abuse, and a lot of doing nothing useful in particular (at least until you advance high enough or quit). And so I started coding, dreaming I'll be lording over pixels on the screens, animating machine golems, and helping rockets reach their desired orbits. Instead, I'm spending endless days pushing people to simplify the architecture, so that I can shove my data through four levels of indirection instead of six (and get the software to run 10x faster in the process), and all that to rearrange some data on the screen that really should've been just given away to people on an Excel sheet with a page of instructions attached.

(Another thing that annoys me: a lot of software I've seen, and some I've worked on, could've been better and more ergonomic as an Excel sheet with bunch of macros, and the whole reason they're a separate product instead is to silo in the data, the algorithm, and to prevent the users from being too clever with it. Also because you can't get VC funding for an Excel sheet (unless you're Palisade).)

Got a bit ranty here, sorry. I guess my point is: I accept the industry is mostly drudgework, but I refuse to accept that this is all essential complexity. Somehow, somewhere, we got off track, because all this shit is way harder than it should be.

Re:I no longer build software by phaedrus on Monday September 21, 2020 @11:31AM (#24544571)
I like how you describe focusing on your plot of land as a positive coping strategy. I had been doing it instinctively (or necessarily), but had thought of it as some kind of failing. Your comment makes me feel better about it.

The end goal of software I work on is to help airplanes land safely. But actually, I work on the software which presents the user interface that displays and sends configuration settings to a device on the ground that helps achieve that.

So my day to day is figuring out whether two bytes in a serial buffer an ad hoc protocol are actually transposed, or if the comments are in 20 year old code are lying about which is which. Or trying to figure out whether a Win32 font setting command from two decades ago is still interpreted the same on Windows 10.

The rabbit holes and yak shaving just go on and on. I have it in me to enjoy doing the work, but when I think about how many steps I am removed from the actual airplanes and I feel badly for filling my brain and my workday with trivia.

Re:I no longer build software by TeMPOraL on Monday September 21, 2020 @12:19PM (#24545192)
Thanks for sharing your story!

Yeah, I also initially felt this is some kind of failing (I'm usually the "big picture guy"), but ended up accepting this as a coping mechanism. It's not that I forget about the purpose completely - just learned to think about it more when planning and designing, where the wider perspective also affects the task in a meaningful way. When deep in the codebase, I try to put it aside, so that I don't get in a depressive session of thinking "why do I have to shovel this garbage back and forth to satisfy some low-level requirement, instead of, I don't know, talking to people who'll use this on-site and getting some real feedback from them?". Rationally, I know that shoving garbage is an important part of getting quality software that helps others do exciting things. Emotionally, I just wish I was in their shoes (probably just as much as they wish they were in mine).

You seem a bit more positive than me when facing this reality, so I'm glad you have it in you to enjoy this. I almost have it, so I find ways to cope, and enjoy the opportunities to do something less mundane that come every now and then in such projects.

Re:I no longer build software by curryst on Monday September 21, 2020 @12:40PM (#24545473)
> but had thought of it as some kind of failing. Your comment makes me feel better about it.

I do it as well; I think organizationally it's a failure, but it is an effective personal coping mechanism. In other words, it's bad for the organization that their codebase isn't really a melting pot of different developers' ideas but instead, if you zoom in enough you notice that it's really a series of hundreds of small fiefdoms each with their own slightly different customs and semantics. This is what creates that software bureaucracy.

For employees though, it works. It's about the only way that I really derive any sense of satisfaction from software engineering. When I can stand back and say yes, this package is mine, I made it and I will take care of it. With the melting pot packages it feels more ambivalent; some portion of the code is mine. Probably not the clever bits, they're probably bugfixes. So I don't have enough mindshare to get satisfaction from achievement, I don't have the satisfaction of at least solving one of the hard problems. No, those people have come and gone, and I'm left with the shale oil of satisfaction: fixing bugs, writing unit tests, and adding documentation. Like shale oil, the joy it brings is very close to the effort it takes to extract it. This isn't the "I accidentally hit an oil vein while digging a garden" joy of really getting to solve something.

Some people derive a lot of joy from doing things that help others (like unit tests, bug fixes and documentation); I'm unfortunately not one of them. Sometimes I wonder if it isn't at least partially because it's so hard to feel the impact. I know HN hates the idea of gameification, but I wonder if it couldn't be applied to good effect here. If someone could make an integration with CI, and with major editors, we could scrape data regarding how many times your unit tests have caught bugs, and how many times your function/class documentation has been viewed. There could be a leaderboard for people that are into that. But for me, just the raw numbers is enough. "Unit tests you have written have exposed 137 bugs in PRs, and documentation you have written has been viewed 138,476 times" would be a huge motivator. It gives me that warm and fuzzy "I actually productively contributed" feeling. Right now I get nothing back; I have no idea if anyone has ever read the documentation I spent hours writing, or if my unit tests have caught any issues.

Re:I no longer build software by milesvp on Monday September 21, 2020 @03:46PM (#24547621)
Oh man. I’ve dealt with so much legacy code I avoid reading comments as long as possible, they lie more than I’d like. Sadly something like bit fields are the one place I feel I have to trust the comments god help you if they’re no longer accurate.
Re:I no longer build software by notacoward on Monday September 21, 2020 @10:30AM (#24543910)
> who doesn't like their own Rube Goldberg machines?

Love that. Yes, the 1% (of which I've been a part) often get to control both the structure and rate of change for a large codebase, and in perfecting the fit to themselves they almost inevitably make the experience worse for everyone else.

Re:I no longer build software by TeMPOraL on Monday September 21, 2020 @10:50AM (#24544126)
Right. And I'm not angry at the person who drives the shape of the codebase; working with code designed around a different philosophy than your own is something that one can get used to. But I do feel that the large codebases I've been dealing with were often way too large for what they're doing - even though I couldn't always pinpoint what was superfluous. It's probably just entropy at work, but I can't stop thinking - there must be a better way!
Re:I no longer build software by resonious on Monday September 21, 2020 @11:40AM (#24544665)
I definitely agree. It's quite easy to look at a large codebase and feel like it's way more complex than it needs to be. That line of thinking often leads to rewrites, and in my experience rewrites often lead to newfound understanding of why the codebase was complex in the first place.
Re:I no longer build software by TeMPOraL on Monday September 21, 2020 @12:10PM (#24545060)
True. I've learned to resist the urge to rewrite code just because it feels too ugly/complex to me - except in the cases where I know I can get tangible benefits (performance, better API) and the scope of rewrite is limited and guarded by extensive tests. It's true that some of the cruft accrues because of changing requirements and the ongoing process of learning that is a good chunk of our work.

And yet accepting that, I still can't shake the feeling that things are more complex than they should be. That also applies to the code I'm writing myself (which is immune from the "rewrite because I could do it better" urge)!

Re:I no longer build software by Bahamut on Monday September 21, 2020 @10:34AM (#24543954)
I suspect it is all about perspective - I entered software development out of desperation for any career tract job out of grad school 8 years ago, experiencing 2.5 years of a desperate job search while enlisting in the Marine Corps Reserve in the interim. I was ecstatic that I entered a profession where I can solve problems, and I’m still very happy I can do so today, even while having grinded up to senior at a FAANG.

I no longer code outside of work though & found a happy balance of learning on the job with my productivity. I find the amount I do get to spend coding also has gone down - a lot of my time is spent mentoring, in meetings, writing planning docs, and just thinking about projects, or occasionally researching what’s the best paradigm for my problem. I am ok with this, as I am taking more joy in being a leader than directly coding necessarily. I recognize not everyone shares the same perspective though.

Re:I no longer build software by reggieband on Monday September 21, 2020 @01:48PM (#24546307)
> I've learned a coping strategy: just forget the project scope and focus on your little plot of land.

I get what your are saying and you are getting a lot of positive reinforcement about this. I would suggest to you a caveat.

I've worked in some orgs where this mentality becomes entrenched. In these new-fangled tech startups with people changing roles and even companies every two years this probably happens less. But I've seen people entrenched into their own kingdoms for decades. An individual, or small team, creates a moat around their "little plot of land" and they become intransigent. This leads to two bad outcomes: they resist any change to their systems or process, going so far as to obfuscate it to protect it. They also don't pay attention to holistic concerns, caring only about maintaining some idyllic vision for their own "plot of land" to the detriment of any larger objectives.

I think this is a real concern when divisions within a larger org compartmentalize around code or system boundaries. It is not something to shrug off as if it couldn't happen to you.

Re:I no longer build software by TeMPOraL on Monday September 21, 2020 @02:06PM (#24546521)
Thanks for the warning.

Honestly, I've used an unfortunate turn of phrase in my original comment. "Your little plot of land" indeed implies a fixed, entrenched moat. What I meant was something different - the area of code I'm currently working on. That may be a different place with every new task. My coping mechanism isn't building little kingdoms - just focusing on the code a given task involves while purposefully forgetting about the global context of the application, in order to not think about how minuscule and irrelevant the task is to the exciting things the company is doing. That context is usually not useful when doing the changes I've already planned beforehand, and it is emotionally distracting.

Re:I no longer build software by caleb-allen on Monday September 21, 2020 @11:33AM (#24544587)
I resonate with this rant very strongly!
Re:I no longer build software by thothamon on Monday September 21, 2020 @01:27PM (#24546078)
I started programming on an amateur basis in 1984, professionally in 1997. I'm 52 now. My experience is that coding has become more and more interesting and pleasant. In the early days, I had to deal with under-powered languages that either couldn't do certain things or that made them very difficult. Then I encountered languages that were much more pleasant to use, but had other problems such as not scaling well to team-level development -- sometimes even I couldn't figure out what I had been doing. Languages are clearer now, they make thinking about problems easier, and while this issue has not disappeared, it's less bad for me than it used to be.

For me, tools, including languages, do matter. I can well imagine that programming in Java would be soul-deadening (although Java is still better than some languages of the past).

Incidentally, I am not dunking on languages of the past. Lisp has been around for a long time, as has Smalltalk or Haskell or ML. Many of those languages were not accessible to anyone without a mainframe or expensive workstation. This situation has improved greatly in the past decades, which to me is another reason to prefer coding today versus the past.

Obviously, most of us are not able to cherry-pick our toolset for work. We use whatever our employer says to use, or whatever the demands of our project require. This may be part of why many people find coding to be an uninspiring experience. Also, the problems that people work on might be dull, it's hard to get motivated about a basically tedious problem.

Last, it's worth acknowledging that some people just don't love coding all that much. It's hard to imagine doing really well at something you don't deeply enjoy day in and day out. And your passion can change over time: you might really enjoy something in one part of your life, and not derive much joy from it at another part.

Re:I no longer build software by foobiekr on Monday September 21, 2020 @03:23PM (#24547367)
The challenge is that in most projects, the things that make things "better" also hide entire galaxies of technical debt. The MongoDB debacle is an example of that problem, as is the outcome of Docker (images full of vulnerabilities, difficulty in making even the most quotidian tools like strace, etc. run easily, converting a known and enforced-common production userland environment into a hodgepodge of 'whatever', etc.) and so on.

Supportability, risk-mitigation, debuggability, etc. are all thrown away in most of today's environments. An awful lot of tech companies are running mostly on hope.

Re:I no longer build software by wakawaka1 on Monday September 21, 2020 @12:20PM (#24545204)
I agree.

I think it's amazing to see CICD tools which make it super easy and quick to deploy web apps-- such as Vercel, for example.

Simply by booting up a github project, and starting from a template, I can deploy a SSL-secured site within minutes-- as a frontend example.

On the backend, using infrastructure-as-code solutions, to again, "templatize" a starting point, such as an AWS service or set of connected AWS services.

Whereas up until recently, I'd typically go rent a chunk of a server to run Linux, and setup NGINX-related security features myself. Not that tough, especially the more I learned NGINX. However the 3-click deployment via tools like Vercel take away so much headache. That said, at times, I think it's can be necessary and easier to simply setup a linux server, so as to have full control over the process.

It's just nice to have the additional options.

I love how much the software-supporting ecosystem has evolved.

It lets me focus more on development, and less on devops. And that what I want, as a developer-- To get to coding ASAP, and not worry about tangential concerns-- as a matter of specializing.

(Disclaimer: I only have about 2-3 years of professional experience, but prior to that, was teaching myself for about 5 years off and on. In that timespan of 7-8 years, I feel so assured and emotionally secure given the reduction of headaches due to the fact that I no longer have to learn so much ecosystem related stuff, and can focus more on programming)

Re:I no longer build software by outworlder on Monday September 21, 2020 @01:27PM (#24546082)
> Compared to the first steps I took as a developer about 15 years ago, almost everything about software development seems better to me. I find developing software to be easier, more consistent, and less frustrating than it used to be. Good development practices—things like testing, CI, coding standards and so on—seem more prevalent than they used to be. It's easier to get code out to production than it ever was. Everything in the ecosystem—like tooling, libraries, and services—feel far more open, consistent, and accessible than they used to.

All true points.

As an individual developer, if you are working on what you want to be working, we are in a great time. You can pick from a selection of outstanding tools and we have, for all practical purposes, access to infinite hardware.

As a developer that's part of a team... it sucks. Expectations are getting ever more unrealistic - probably because so many things are quickly done, but other things are just as slow or even slower. Most people's jobs consist of wiring together 150 libraries across 30 'microservices' (which are rarely microservices, but often distributed monoliths) and that's after spending a lot of time bikeshedding on what the tech stack is supposed to be like.

At least the UML craze seems to have died down.

Re:I no longer build software by Igelau on Monday September 21, 2020 @01:13PM (#24545918)
We're all on the great curve of programmer productivity through the ages. All we can see are the local maximums and minimums we've encountered.

From my journey on the chart, things have only gotten better since the time I crashed a C++ compiler just because I was using std::map.

Re:I no longer build software by jamesbfb on Monday September 21, 2020 @09:59AM (#24543516)
> opposed to code that hacks together some junk to try and make it work with other junk.

I think you work for a better company than me :)