I am looking for ways to describe a job with the following combination of responsibilities.
- Employer is a non-software and non-tech company (this is relevant below)
- Design a "spec" for a software solution to a "problem" but the "problem" is presented by extremely non-technical user (see 1) so the first step is to figure out what their problem is, and if it is something a computer program could help with, and if it is something a computer program can help with the specifications for said program need to be defined
- Build the system specified above in (2)
- Sometimes the solution doesn't involve software at all, because sometimes the entire workflow is the problem, and if the workflow is adjusted the problem in (2) would disappear. I jokingly refer to this as debugging social systems, but I think this is a reasonable description of the task.
- Sometimes users request specific software changes (going as far as to have something philosophically equivalent to a spec) but accepting and implementing their change is a bad idea, usually because it causes negative externalities, e.g. making someone else's job more difficult. For example, some users don't like having to type valid, correct, parseable addresses on orders, and ask that the rules on order entry be relaxed, but if you relax the rules on addresses it becomes harder to ship orders, because the addresses are sometimes unusably bad. The job holder needs to have enough forethought to understand the consequences of changes.
- In practice this person's days are likely to be highly heterogeneous, in that some days will be spent exclusively coding, and other days will be spent exclusively not coding, sussing out root causes, but not for anything to do with software, although things generally start with a request for software. For example, if a truck continually arrives late this person would need to be able to follow the truck's lateness back to its genesis, i.e. truck arrived late because it left late, truck left late because it wasn't packed completely, it wasn't packed completely because the trucks are loaded one at a time and this one was at the end of the line, this truck was at the end of the line because it drove in from another state, it left the other state late because the manager at the source of the gets in at 6:00, and the truck rolls out at 6:05 because the truck's keys are stored in the store, the truck's keys are stored in the store because the truck has 2 drivers, and who drives changes from day to day, and there is only 1 key, so in this case a good way to get the truck on the road earlier is to get another key.
I am struggling to even begin the process of looking for someone to fill this role, because the first step to making most job postings is a title, and I have no idea what is an appropriate title.
Edit - Adding more re: truck comment
The truck part is relevant because people often ask for software, or something software-like, when their problem is actually something else. So someone says that we need to track where the trucks are at all times, because this one truck is always late, so tracking it using a GPS and a website to display its location will help people know where the truck is, so they can provide updates on where the truck is, because its delivery times are later than they are supposed to be. But why is the truck late? If the truck were on time you wouldn't need to track it via GPS and invest all of that money on equipment and services - you could just get the truck on the road at the time.