To answer this we need to follow the money. Who is paying developers, why, and where does the money come from? Then we can see what developers are really being paid to do.
Kinds of software development
Data intensive cloud applications
Productivity and creativity
Devices / Internet of things
All of these categories are about people trying to accomplish something real, but using high frequency automation to be bigger/better/faster/cheaper. For example, a video game is a high frequency version of a board game.
Software is about solving problems for people, bigger/better/faster/cheaper
Developers are not the top of the food chain; entrepreneurs are
Entrepreneurs identify demand (a large problem so strong and hard to address that people will pay to have it solved for them) and then assume the investment risk of delivering what is demanded
Entrepreneur's goal is to first figure out a process that reliably delivers the value, then repeat and scale that process bigger/better/faster/cheaper
Entrepreneurs hire developers to scale business processes with software
Three maturity stages of a business process:
Manual process (process not yet known) – decisions are made on the fly by humans, error-prone, slow, low volume, still figuring out the processes and necessary data inputs
Model of process (i.e. flowchart) – key decision points known, data inputs known, repeatable, faster, fewer errors, higher confidence, lower risk
Scale process with software automation – higher frequency/volume, lower risk. Hire developers here. As larger scale reveals new problems and constraints, loop to #2.
(Tons of projects go wrong by writing code before the process is understood. The word "develop" means "to aid in the growth of; strengthen". If you don't have an existing working process to develop, what you're doing is not developing, it's gambling.)
Developers don't create software from scratch, they source and integrate preexisting components
Developer job description:
source the best data/modules from the software supply chain (APIs, FOSS)
integrate the data/modules by coding software machinery/plumbing that brings all data into one place for business process execution.
model business process as logic (data analysis logic, decision making logic, action logic)
Logic (#3) is actually NOT the developer's job
In game development, the logical models are developed not by programmers, but by creatives using light scripting languages. Sometimes this is modeled with "no-code" visual flowchart elements, but much game logic is so straightforward—if statements and functions—that the creative prefers to just code the scripts directly, rather than proxy the exact same logic as a flowchart.
It is the same with websites, mobile apps, business intelligence ... Logic is so straightforward that it is done by creators where possible to avoid the cost of developers.
Unless, like in information systems, logic is interwoven with machinery.
Information systems source and integrate data from so many sources (i.e. UI, APIs, databases, event streams) that the integration plumbing complexity dominates any efforts to unify the data into one place for scripting.
This causes the integration complexity to infect the logical model and they become interwoven. Once this happens, the logical model can only be fully understood by understanding all of the machinery it's interwoven with. Only a developer can do this, a business analyst has no shot.
This is an accident! It would be better if business logic was modeled by business specialists. Your total cost of software development would be massively reduced.