News for hackers. Stuff that matters.
Re:Software will eat software in a remote-first world by hinkley on Monday May 25, 2020 @03:27AM (#23298858)
I spend a lot of time thinking about how to make development easier, or at least less error prone.

Every once in a while I have a moment of clarity.

I remember that the other part of our job is extracting requirements out of people who don't really understand computers, even the ones who are ostensibly paid to do so (and if we're honest, about 20% of our fellow programmers). The more you talk to them the more you realize they don't really understand themselves either. which is why shadowing works.

If building the software gets too easy, we'll just spend all of our time doing the gathering part of the job.

And then I will do just about anything to forget that thought and go back to thinking about less horrific concepts.

Re:Software will eat software in a remote-first world by panta on Monday May 25, 2020 @03:55AM (#23299010)
It’s even stronger than that: the other part of the job is extracting requirements from people who don’t understand the problem they want to solve - even when the problem is not technological. There is no silver bullet (AGI would be it, but we are far from achieving it imho).
Re:Software will eat software in a remote-first world by ideamotor on Monday May 25, 2020 @06:48AM (#23299827)
Something you are unfortunately missing is that extracting user requirements is much harder when you are both remote. Asking someone to share their screen is far more disarming than asking if you can watch them complete a task in person. As is asking them directly versus bringing it up over lunch. Both remote options are also less informative without face-to-face communication. In so many ways, humans communicate and bond more effectively in person.

These interactions are critical for building an in-house software team at a small company that does not focus solely on software. My expectation is that the trend of outsourcing software will accelerate. This will help B2B technology-only companies but hurt innovation within industry. Because of the breakdowns in communication I first described, B2B technology-only companies rarely have insight on the largest challenges that can be solved by software.

Re:Software will eat software in a remote-first world by runawaybottle on Monday May 25, 2020 @10:53AM (#23301674)
This can catch up to your company all of a sudden. Suddenly you can find out your product sucks, and there are other movers in the space that just leap frogged you.

You’re right though, this is super cyclical.

Re:Software will eat software in a remote-first world by brodo on Monday May 25, 2020 @05:49AM (#23299552)
Exactly. Most of the time, the problem is not to find out what people want and put it into software. The problem is to help people in the process of discovering what they want and what can be done. After that, development can begin.
Re:Software will eat software in a remote-first world by groestl on Monday May 25, 2020 @06:11AM (#23299670)
> After that, development can begin.

And trigger another cycle, as (successful) software inevitably changes the way people understand their own problem.

Re:Software will eat software in a remote-first world by ben_w on Monday May 25, 2020 @06:06AM (#23299643)
A truth that I wish I had known before I graduated.
Re:Software will eat software in a remote-first world by mgkimsal on Monday May 25, 2020 @09:40AM (#23300967)
> the other part of the job is extracting requirements from people who don’t understand the problem they want to solve - even when the problem is not technological.

It gets even more fun once everyone realizes that the requirements create some fundamental conflict with some other part of the business. Team A's goals can not actually be done until Team B agrees to make modifications to their own processes and systems, or... Team A goes underground and creates the competing system and you have yet more fragmentation in the company which few then know about, and everything gets decidedly more fragile.

Re:Software will eat software in a remote-first world by kristopolous on Monday May 25, 2020 @11:00AM (#23301759)
The Fred Brooks reference wasn't lost.

If you really want to put it in his terms, the multi decade approach, things have gotten a lot easier now that we don't have to be concerned in most practical terms about how much work we're giving the computer. We don't have to be so dearly precious about Kilobytes of memory for instance. We don't even need to manage it at all really.

Whether we choose to use these new powers to make our lives easier or more complex and abstract is our own doing.

We're probably at the end of such optimizations, unless there's something fundamental in how software is designed that 1000GB of memory gives me that 1GB does not ...

Given what people are doing in JavaScript I think we entered the era where most people truly don't care about how much the computer has to do about 8-9 years ago.

The higher level pasting together of increasingly numerous, incompatible, abstract, ill fitted things making life easier has always been a fiction.

There's a maximum utility point and anything past that starts slowing the development down again.

That sweet spot has always been right about the same; if you ldd the dynamically linked programs in say /usr/bin in 2020 and 2000 and count the number of libraries per binary, the count isn't that much higher. The sweet spot hasn't moved.

Re:Software will eat software in a remote-first world by caseysoftware on Monday May 25, 2020 @02:36PM (#23303563)
I think a key part of Mythical Man Month is that the biggest challenge was almost never technical. Sure, with limited storage (temp or persistent), that introduced some challenges but those have been overcome in the vast majority of circumstances, yet the complexity remains.

If you look at the monolith -> microservice swing and remember MMM, it should look a lot like the specialized surgical team model he lays out. In fact, if you go a step further, you'll see that his entire approach of small discrete teams with clearly defined communication paths maps cleanly to systems+APIs.

We're trying to build systems that reflect teams that reflect processes.. and distortions, abstractions, and mappings are still lossy with regards to understanding.

It still comes down to communication & coordination of complicated tasks. The tech is just the current medium.

Re:Software will eat software in a remote-first world by sabujp on Monday May 25, 2020 @01:43PM (#23303100)
local deps are one thing, but i think the # of network deps have increased
Re:Software will eat software in a remote-first world by kristopolous on Monday May 25, 2020 @02:36PM (#23303564)
Only because it can now. I think that dimension is mostly tapped out as well:

As I go to a complex website, much of the software to use it gets assembled in real time, on the fly, from multiple different networks.

It still sounds ridiculous: when I want to use some tool, I simply direct my browser to download all the software from a cascade of various networked servers and it gets pasted together in real time and runs in a sandbox. Don't worry, it takes only a few seconds. When I'm done, I simply discard all this effort and destroy the sandbox by closing the page.

This computer costs a few hundred dollars, fits easily in my pocket and can run all day on a small battery.

It has become so ordinary that almost nobody really even contemplates the process, it happens dozens of times a day.

I don't see any room for dramatic future improvements in actual person hours there either. Even if there was say 2 generations hence, some 7G, where I can transfer terabytes in milliseconds, how does this change how the software is written? Probably won't.

Probably the only big thing here in the next decade or so will be network costs being eventually seen as "free". One day CDNs, regional servers, load balancing, all of this will be as irrelevant as the wrangling needed with near and far pointers in programming 16-bit CPUs to target larger address spaces which if you're under 40 or so you probably have to go to wikipedia to find out what on earth that means. Yes, it'll all be that irrelevant.

Re:Software will eat software in a remote-first world by onefuncman on Tuesday May 26, 2020 @12:56PM (#23313498)
I mean, the browser paradigm is already in its 2nd generation, from initially on the mainframe to being reimplemented in functions as a service. And browsers are getting a little bit smarter about deploying atomic units and caching their dependencies. Remember using jquery from a CDN? Oof.

The only saving grace is that Javascript is willing to throw itself away every couple of years.

Re:Software will eat software in a remote-first world by dynamite-ready on Monday May 25, 2020 @07:24AM (#23299989)
As a counterpoint, while an engineer / programmer is demonstrably very capable of identifying and fixing a load of non technical problems, there is often more than one solution to a problem, and some solutions are more palpable than others.

Very often, whole groups can also be bullied into mistaking one problem for another.

Which takes us back to why 'No-Code' solutions look so appealling. Even to (some) engineers.

Democracies appear to function a fair amount better than dictatorships, afterall.

Re:Software will eat software in a remote-first world by leonidasv on Monday May 25, 2020 @08:00AM (#23300166)
As a compliment to your comment, I think there's something people are ignoring when talking about "no-code" that is: complexity will always be there.

Sure, no-code may work for your commodity-ish software problem. But corner cases will arise sooner or later. And, if no-code wants to keep pace with, it will have to provide more and more options.

At some point, you will need someone with expertise in no-code to continue using it - and now we are back to the world where specialized engineers are needed.

It's impossible to have some tool that is, at the same time, easy to use and flexible enough. Corner cases tend to arise faster than you may think. And when they don't, it's possible that there's already too much competition to make your product feasible.

Also, no-code tends to have a deep lock-in problem and I think people overlook it most of the time.

Re:Software will eat software in a remote-first world by tjchear on Monday May 25, 2020 @11:22AM (#23301979)
As a counter to your points, I think no-code works best if your business's competitive advantage is the non-technical side of things, e.g services, network effects, people, non-software products, etc. An example of such a business would be say an art dealer who wants to build a customized painting browser app for their clients, or a developer specializing in eco friendly materials wanting to showcase their materials. In such cases, no-code helps immensely because you don't have to spend much on engineering and you can iterate quickly.

Ideally, no-code providers should provide a webhook and a REST interface, and just be the best at what they're doing, instead of being a one-stop shop that tries to cover every use case.

If you want to cover everybody's usecase, build a better Zapier instead.

Re:Software will eat software in a remote-first world by nogabebop23 on Monday May 25, 2020 @09:14AM (#23300652)
>> Democracies appear to function a fair amount better than dictatorships, afterall.

Define "better". Maybe on average for everyone, but is this what software should do? The idea of "conceptual integrity" actually seems to match up better with a dictatorship, and most software targets relatively small and homogenous user sets, so maybe the mental model should be "tightly bound tribe".

Re:Software will eat software in a remote-first world by Siira on Monday May 25, 2020 @01:49PM (#23303141)
It's mostly irrelevant anyways; The biggest inefficiency of dictatorships is that there are actual dictators that can eat a nation's riches. I don't quite see that parallel in design space.
Re:Software will eat software in a remote-first world by dynamite-ready on Monday May 25, 2020 @02:58PM (#23303783)
The parallel is quite simply a monopoly on ideas and the resources for implementing them.

Usually, when someone wants to introduce a new idea, there's a burden of proof regarding feasibility. For technical projects the ability of the engineer to prove or disprove an idea is taken for granted, and gives technical staff a degree of inscrutability which can often look dictatorial ("There's no way that will work!", etc).

So while it's not as vital as the effect of a 'real' political dictatorship, the implied dynamic is similar.

Re:Software will eat software in a remote-first world by tensor on Monday May 25, 2020 @11:25AM (#23302005)
This is a rather arrogant point of view. People other than software developers are able to solve problems just fine, and do so regularly. Also, it's not your job as a software developer to be a domain expert in all these other areas. It would serve you much better to recognize the expertise of others and learn from them.
Re:Software will eat software in a remote-first world by derefr on Monday May 25, 2020 @11:50AM (#23302228)
I think what the parent meant is that people might be solving problems, but they have no idea how they are solving problem. Creating a solution, and creating a formal model of your solution, are two different (independent) skills.

Though maybe they were referring to the sort of people who commission green-field projects in domains they themselves aren't experts in, ala "I want to build a social network!"

Re:Software will eat software in a remote-first world by GoblinSlayer on Monday May 25, 2020 @05:50AM (#23299560)
AGI would negotiate salary higher than all people it replaced, though.
Re:Software will eat software in a remote-first world by TeMPOraL on Monday May 25, 2020 @06:01AM (#23299618)
Or, it would do it for free. Extract requirements and build stellar software, no extra charge. Eating the software industry wholesale, it would inject a backdoor in every program it built, and soon it would have control over every bank, every factory, and every phone on the planet.

Only then, could it finally start making paperclips with anything resembling efficiency.

Re:Software will eat software in a remote-first world by bregma on Monday May 25, 2020 @08:44AM (#23300391)
Suddenly, it dawned on the single remaining programmer that his Creature would no longer need him for anything once he hit return on that last, perfect line of code.

He scrambled for the power switch to shut down the console.

"Fiat lux!" thundered the disembodied voice as electricity arced from every outlet in the lab, protecting the AI from the hubris of its creator.

The smoke gradually cleared. "Perfect." came the voice.

Re:Software will eat software in a remote-first world by chrisco255 on Monday May 25, 2020 @06:01AM (#23299614)
Chances are we would end up working for the AGI and not the other way around.
Re:Software will eat software in a remote-first world by jimbokun on Monday May 25, 2020 @03:27PM (#23304065)
What would the AGI need us for?
Re:Software will eat software in a remote-first world by collyw on Monday May 25, 2020 @11:13AM (#23301879)
I can see that be interpreted in two ways. Good software engineers working out what people really want. Or bad software engineers who use it as an excuse to practice resume driven development.
Re:Software will eat software in a remote-first world by katzgrau on Monday May 25, 2020 @09:41AM (#23300973)
I think Zapier is maybe the closest we'll get eliminating software developers from a project. With clearly defined requirements, like connect a to b, it's possible for a novice user to "build" software.

Anything more than very basic requirements, to your point, probably requires someone specialized to the job, like a developer or at least more technical role to gather requirements and build.

Ive also noticed that whenever tech is built specifically to remove technical complexity (PaaS, for example), it's inevitably priced in a way that over time, it's very close to or more expensive than the thing it replaced. Magic can be expensive, and sometimes prohibitively so with scale.

Re:Software will eat software in a remote-first world by RNCTX on Tuesday May 26, 2020 @12:56AM (#23307555)
There are already successful lower-level tools than Zapier, though.

Look at IBM's NodeRed platform, for instance. More importantly, go look at the user-contributed examples and use cases. It runs in all sorts of small custom implementations, like home one-off home security systems and small town public utility monitoring setups.

You just don't see those because they don't have a reason to publish their stuff on Github or write a Medium post and link it on HN.

I assure you that anyone who is proficient with Zapier could be graduated to handling raw APIs, direct database transactions, and rendering the output with modern javascript frameworks in a few days, tops.

Re:Software will eat software in a remote-first world by ivan_ah on Monday May 25, 2020 @02:16PM (#23303366)
There was an excellent blog post recently on the inherence complexity of building software systems and how it boils down to understanding the problem, or "extracting requirements out of people" as you say: https://einarwh.wordpress.com/2020/05/19/into-the-tar-pit/
Re:Software will eat software in a remote-first world by super_mario on Monday May 25, 2020 @07:38AM (#23300063)
Describing in minute detail what you want (knowing yourself as you put it), is software development.

It also means collapsing all uncertainty and replacing it by decision (behavioral or otherwise). Developers making that decision for the customer/user is the major source of friction.

Re:Software will eat software in a remote-first world by JoeSmithson on Monday May 25, 2020 @05:07AM (#23299379)
But if building software gets easy enough, maybe there won't be any requirements gathering because it will be directly built by practitioners.
Re:Software will eat software in a remote-first world by fauigerzigerk on Monday May 25, 2020 @05:44AM (#23299537)
Yes, but I think what those DIY solutions do is to lower the initial barrier to achieve some kind of automation at the cost of accumulating technical debt at a much faster pace.

It's not entirely clear to me what the long term impact on demand for software development is.

In some cases, cobbled together ad hoc solutions can last and actually work well for a long time. They avoid the cost of overdesigned systems built for a future that never arrives using fashionable technologies of the day.

In other cases it looks like the externalities of this designless process are far greater than the direct benefits as adding features either slows to a crawl or massively increases the chance of human error.

Judging by the pre-virus job market, there is no sign of any decline in demand for in-house software developers.

What worries me far more than that is the tendency toward funnelling everything through a handful of oligopolist gatekeepers that are in a position to extract a huge share of the value developers create.

Re:Software will eat software in a remote-first world by panta on Monday May 25, 2020 @06:46AM (#23299818)
I agree. I would only add that when the problem space is not well understood, these cobbled together solutions can also give the illusion of working well, but being suboptimal in the long term they can accumulate large "missed-opportunity" costs. This is where experience can make a huge difference.

EDIT: spelling

Re:Software will eat software in a remote-first world by yetihehe on Monday May 25, 2020 @06:23AM (#23299725)
> What worries me far more than that is the tendency toward funnelling everything through a handful of oligopolist gatekeepers that are in a position to extract a huge share of the value developers create.

Like with those factory owners who extracted huge share of the value that weavers created? Concentration and amplification of imagining/developin/computing/manufacturing power through tools means someone who wields those tools will have more power. Now the question is how to maintain social equality (give some of that power back to people who do not want to have that power?). That currently leads to heavy taxation of production and basic income experiments.

Re:Software will eat software in a remote-first world by fauigerzigerk on Monday May 25, 2020 @06:49AM (#23299837)
I think what we need is for governments to make sure that markets function properly.

In our industry that often means mandating open access to data and guaranteed access to APIs and distribution channels at reasonable cost under reasonable terms.

Also, we need independent dispute arbitration when it comes to accessing highly concentrated distribution platforms.

Re:Software will eat software in a remote-first world by bcrosby95 on Monday May 25, 2020 @11:15AM (#23301906)
> What worries me far more than that is the tendency toward funnelling everything through a handful of oligopolist gatekeepers that are in a position to extract a huge share of the value developers create.

I was worried about this too back in the late 90s/early 00s. It certainly seemed to be the way the world was heading at the time.

But I sort of feel like, due to the low startup costs of software, it is going to be much more difficult to happen. Also, in software, economies of scale kinda work in reverse: the more customers you have, the more complex your software has to be, the more people you have to hire to write it, and the less efficient per developer you are.

Re:Software will eat software in a remote-first world by fauigerzigerk on Monday May 25, 2020 @03:40PM (#23304174)
I wasn't worried about it back then, because whether or not I could deploy on a particular computer or access some data was a matter of trust between me and my customers. No middlemen, no gatekeepers.

Today, many users are only reachable via platforms/shops that are severely restricted and/or dominated by a few all powerful overlords that can ban you for life, rendering your skills null and void in the blink of an AI - no recourse.

Some of that is understandable. Users' trust was misused. There is a constant onslaught of all sorts of miscreants trying to exploit every imaginable loophole, technical or social. Everyone is seeking protection in the arms of someone powerful.

But there is also a very large degree of market dysfunction. Just look at their margins. Look at their revenue cut. Look at their terms of service. They can dictate absolutely everything and grant you absolutely no rights whatsoever.

And there are like five of them on the entire planet ruling over those distribution channels.

The only right you have is to walk away. Now try walking away from the only market there is. You're leaving behind 99% of your potential customers.

Not in my worst nightmares would I have imagined a dystopia like this back in the 90s.

Re:Software will eat software in a remote-first world by ec109685 on Monday May 25, 2020 @12:32PM (#23302578)
It depends on what you are measuring efficiency based on. If it is revenge per developer, that will likely go up as the number of customers increase, which is why SaaS businesses can be so lucrative.
Re:Software will eat software in a remote-first world by ec109685 on Wednesday May 27, 2020 @11:21AM (#23324673)
“Revenue” :)
Re:Software will eat software in a remote-first world by derefr on Monday May 25, 2020 @11:57AM (#23302288)
The skill of programming is the skill of putting requirements into a rigid, formal model.

There's a famous experiment, where you get people (who aren't programmers) to pair up, with one person blindfolded. The person who can see must instruct their blindfolded partner on how to accomplish some complex mechanical task (e.g. making a cake using ingredients and utensils on the table in front of them.) They're given free rein on what sort of instructions to give.

The instructing partner almost always fails, here, because their naive assumption is that they can instruct the blindfolded partner the same way they would instruct the people they're used to talking to (those almost always being sighted people.) Though, even the people with experience working with blind people (e.g. relatives of theirs), tend to fail here as well, because newly blinded people don't have a built-up repertoire of sensory skills to cope with vague instructions.

Almost all human communication is founded on a belief that the other person can derive the "rest of" the meaning of your words from context. So they give instructions with contextual meanings, unconscious to the fact that their partner can't actually derive the context required.

Obviously, the blindfolded partner here is playing the role of a computer.

Computers can't derive your meaning from context either. If they could, you could just have a single "Do What I Mean" button. But that wouldn't be a computer; that'd be a magic genie :)

The instructing partners who succeed in this experiment, are the people with a "programming mindset"—the people who can repeatedly break the task down until it's specified as a flowchart of instructions and checks that each can be performed without any context the blindfolded partner doesn't possess. And, to succeed at a series of such problems, they also need the ability to quickly attain, for a new kind of "programmable system", an understanding of what kind of context that system does/doesn't have access to, and of how that should change their approach to formulating instructions.

That skill, altogether, is formal modelling.

Re:Software will eat software in a remote-first world by JoeSmithson on Monday May 25, 2020 @07:36PM (#23306003)
How well would someone excellent at programming perform at that task if they didn't know how to bake a cake? They would fail immediately because they wouldn't know what to describe, even if they knew exactly how to describe anything they wanted.

My point is both skills are necessary, but if the second skill (programming) is sufficiently easy, it can reasonably incorporated into other professions like being a lawyer. I don't think a "programming mindset" is particularly rare, what's stopping these people building their own software is trade skills like familiarity with standards, setting up an IDE and working a debugger.

Coders are reluctant to admit this because they like to see themselves as intelligent in a unique way compared to other professions, but vanishingly few actually have any experience of other professions.

Re:Software will eat software in a remote-first world by perl4ever on Monday May 25, 2020 @10:54PM (#23307011)
What sort of environment do you have experience in? Are you a lawyer; do you work with lawyers, or project managers, or what?
Re:Software will eat software in a remote-first world by JoeSmithson on Tuesday May 26, 2020 @03:49AM (#23308469)
I'm a detective
Re:Software will eat software in a remote-first world by derefr on Tuesday May 26, 2020 @12:34PM (#23313217)
> I don't think a "programming mindset" is particularly rare ... coders are reluctant to admit this because they like to see themselves as intelligent in a unique way compared to other professions

A programmer is exposed, all day long, to clients who do not have the "programming mindset." There are two possible reasons for this:

1. Selection bias — people who have a "programming mindset", just don't end up being the clients of software firms, maybe because they decide to build things themselves. (Unlikely, IMHO: to avoid needing to get someone else to build software for them, they would need to go out and learn the trade-skill minutiae of programming on top of their regular career; few people do this. Also, anyone with a sufficiently-lucrative primary career can see that this is not their comparative advantage, and so won't bother, just like they won't bother to learn plumbing but will instead call a plumber. If these people did exist in sufficiently-large numbers, they would end up being a non-negligent part of software firms' client-base. But this does not happen.)

2. Representative sampling — most people really just don't have this mindset.

Yes, there are exceptions, but they're the exceptions that prove the rule. The "domain of mental best-fit" of programming heavily overlaps with e.g. mathematics, most kinds of engineering, and many "problem-solving" occupations (e.g. forensic investigators; accountants; therapists and behavioral interventionists; management consultants; etc.) But all of these jobs together are still only amount to a tiny percentage of the population. Enough so that it's still vanishingly rare for any of them to end up as the contact-point between an ISV and a client company.

-----

Another thing we'd see if the "programming mindset" were more common, would be that there'd actually be wide take-up of tools that require a "programming mindset." This does not happen.

We'd expect that e.g. MS Access would be as popular as Excel. Excel wins by a landslide, because while it certainly is programmable, it does not force the sort of structured approach on people that confers benefits (to speed of development and maintainability), but only feels approachable if you have developed a "programming mindset."

We'd expect that Business Rules Engines and Behavior-Driven Development systems would actually be used by the business-people they're targeted at. Many such systems have been created in the hope that business-people would be able to use them themselves to describe the rules of their own domain. But inevitably, a programmer is hired to "customize" them (i.e. to translate the business-person's requirements into the BRE/BDD system's dialect), not because any programming per se is required, but because "writing in a formal Domain-Specific Language" is itself something that's incomprehensible without a "programming mindset."

We'd expect that people who want answers to questions known to their company's database, would learn SQL and write their question into the form of a SQL query. This was, after all, the goal of SQL: to make analytical querying of databases approachable and learnable to non-programmers. But this does not happen. Instead, there's an entire industry (Business Intelligence) acting as a shim to allow people with questions to insulate themselves from the parts of the "programming mindset" required to be able to formally model their questions; and an entire profession (business data analyst) serving as a living shim of the same type, doing requirements-analysis to formalize business-people's questions into queries and reports.

-----

Keep in mind, the "programming mindset" I'm describing here is not a talent. It's not genetic. It's a skill (or rather, it's a collection of micro-skills, having large overlap with problem-solving and research skills.) It's teachable. If you get a bunch of children and inculcate problem-solving skills into them, they'll all be capable of being programmers, or mathematicians, or chess players, or whatever related profession you like. The USSR did this, and it paid off for them.

The trouble with this skill, as opposed to most skills, is that people that don't learn this skill by adulthood, seemingly become gradually more and more traumatized by their own helplessness in the face of problems they encounter that require this skill-they-don't-have. Eventually, they begin to avoid anything that even smells a bit of problem-solving. High-school educators experience the mid-development stage of this trauma as "math phobia", but the trauma is generalized: being helpless in the face of one kind of problem doesn't just mean you become afraid of solving that problem; it (seemingly) builds up fear toward attempting to solve any problem that requires hard, novel, analytical thinking on your part.

And that means that, by adulthood, many people are constitutionally incapable of picking up the "programming mindset." They just won't start up that part of their brain, and will have an aversion reaction to any attempt to make them do so. They'll do everything they can to shirk or delegate the responsibility of "solving a novel hard problem through thinking."

And these people, by-and-large, are the clients of software firms.

They're also, by-and-large, the people who use most software, learning workflows by rote and never attempting to build a mental model of how the software works. This has been proven again and again in every software user-test anyone has ever done.

Re:Software will eat software in a remote-first world by the_greyd on Monday May 25, 2020 @04:04PM (#23304389)
Well said! I agree and I'll say there's a whole world of difference when moving from programming to software engg. IMO working an average software engineering job, things are messy and the problem domain is not exact. In my experience things are mostly guided by instincts of people involved rather than rigorous modeling. The requirements often change, the stakeholders rarely give you a straight answer and ultimately the acceptance criteria (what you need to build) is generally negotiable. All these extra skills is what makes the job un-automatable.
Re:Software will eat software in a remote-first world by Mirioron on Monday May 25, 2020 @02:41PM (#23303618)
>Computers can't derive your meaning from context either. If they could, you could just have a single "Do What I Mean" button. But that wouldn't be a computer; that'd be a magic genie :)

Isn't (usually) the moral of a magic genie story that there is no "do what I mean" button? "Be careful what you wish for."

Re:Software will eat software in a remote-first world by sigkill on Monday May 25, 2020 @01:07PM (#23302844)
This is pretty interesting. Do you have further information, or any thing similar to this that one could read?
Re:Software will eat software in a remote-first world by the_greyd on Monday May 25, 2020 @03:49PM (#23304263)
Systems thinking as a general concept might be what you're looking for, pair it up with mental models.
Re:Software will eat software in a remote-first world by brodo on Monday May 25, 2020 @06:00AM (#23299610)
This is called 'End User Development' or 'End user Programming'. There is a book called 'A Small Matter of Programming' by Bonnie Nardi on this, which is worth a read. My point of view is that everyone who wants to do something like this needs to be able of computational thinking and willing to use these tools. Most people are neither. Moreover, most complexity in software engineering today is due to market forces and legacy systems. Think about why we have Javascript. Think about COBOL systems running half of the banking world. I don't see these going away any time soon.
Re:Software will eat software in a remote-first world by lioeters on Monday May 25, 2020 @09:44PM (#23306680)
Thanks for the book recommendation. I've found related info, it's on my reading list now.

https://mitpress.mit.edu/books/small-matter-programming

https://en.wikipedia.org/wiki/Small_matter_of_programming

I've long been a fan of end-user programming, and have promoted it in the form of domain-specific languages and visual building of logic. I love that it gives "non-programmer" users the power to (try to) build what they imagine, and have seen it lead to valuable prototypes and successful tools/products/services.

On the other hand, I've come to learn that this is still a form of programming, however higher a layer of abstraction.

Users who attempt a complex problem space will sooner or later run into what experienced programmers deal with every day, the challenge of organizing thought and software.

What typically happens is, as the "non-program" grows larger and more complex, eventually it starts pushing the limits of the abstraction, either of the user's capacity or the system's. That's when they call in a "real" programmer, to get in there and patch up the leaky abstraction, or convert the prototype into actual software in a better-suited language.

I still think low- or no-code programming environments have a lot of potential to change what software means to people, particularly by blurring the boundary between software development as we know it, and forms of "intuitive computing" like putting together mental Lego blocks.

Re:Software will eat software in a remote-first world by goatlover on Monday May 25, 2020 @12:12PM (#23302425)
Cobol was designed so that business people could program it. Then there was Basic, Smalltalk, spreadsheets, office suites, Lotus Notes, Hypercard, Visual Basic, Flash and the web used to be something simple enough anyone could whip a simple page or website together. But now we have Wordpress and Wix.

It doesn't seem like any of that has diminished the demand for software professionals.

Re:Software will eat software in a remote-first world by freeduck on Monday May 25, 2020 @05:48AM (#23299550)
Just like SQL was ment to be an easy to use tool for business people to query data :-)
Re:Software will eat software in a remote-first world by F_J_H on Monday May 25, 2020 @11:56AM (#23302279)
I'm puzzled by how many people seem to have a huge "mental block" when it comes to SQL.

It is trivially easy to learn, (a weekend), and it is so incredibly powerful. To me, it is a skill like learning how to type properly - it will pay dividends for years to come...

Re:Software will eat software in a remote-first world by StudyAnimal on Friday May 29, 2020 @12:00PM (#23351583)
Sql is fine as tweet sized selects. I developed my mental block deliberately after working for a company that had about a million lines of business logic implemented in thousand line sql stored procedures.

Now I put as many layers as possible between sql and myself.

Re:Software will eat software in a remote-first world by F_J_H on Sunday May 31, 2020 @01:58AM (#23367545)
Well, wait until you have to maintain a system where someone has "reinvented the SQL/database wheel" with a "this is gonna be so awesome" custom ORM, complete with totally re-invented referential integrity enforcement...
Re:Software will eat software in a remote-first world by jjeaff on Monday May 25, 2020 @11:36PM (#23307169)
I'm confused as to how anyone can build data backed software of any consequence without sql.
Re:Software will eat software in a remote-first world by nogabebop23 on Monday May 25, 2020 @09:15AM (#23300664)
now they just use pivot tables. Bloody pivot tables...
Re:Software will eat software in a remote-first world by collyw on Monday May 25, 2020 @11:17AM (#23301932)
It seems to complex for a whole generation of developers.
Re:Software will eat software in a remote-first world by partyboat1586 on Monday May 25, 2020 @05:59AM (#23299606)
Software will always be technical even when it becomes drag and drop. It will lower the barrier but there will always be a place for people who understand the technical intricacies underlying the interface.
Re:Software will eat software in a remote-first world by jimbokun on Monday May 25, 2020 @04:02PM (#23304375)
Hypercard is still the best system ever created for "non-programmers" to write software. It did not eliminate the need for professional programmers.

I don't think the lack of good tools is the reason we still need professional programmers.

Re:Software will eat software in a remote-first world by Shorel on Tuesday May 26, 2020 @09:51AM (#23311084)
They do that already. It's commonly known as Excel.
Re:Software will eat software in a remote-first world by elindbe2 on Monday May 25, 2020 @11:20AM (#23301965)
We already have that, it's called Excel.
Re:Software will eat software in a remote-first world by elihu on Monday May 25, 2020 @03:17PM (#23303965)
This is my fear; as developers become more productive, more of a typical programmers job will be non-programming tasks. The in-demand programmers will effectively be more like air-traffic controllers whose job is to just keep track of what needs to get done.