I find the soldier analogy very easy to get, although I would not hold Darktable to quite the same standard
I’ve developed engineering methods and implemented them in software (lots of computation, a little GUI) – and what I’ve understood from that is that you can’t teach the users everything you know (even if they’re fellow engineers working in the same field), but you also can’t dumb it down to the point where they don’t need to understand anything. The trick is to present the method in a way that makes sense to them, and choose a way to control the system which makes sense according to their perspective, not your own*. The number of times (and different ways) people have naively tried to use my software in ways that obviously (to me) could not have worked but still blindly trusted the results is staggering. But I’d like to believe that a developer can’t be expected to anticipate all of those ways. So the only solution (unless you have in-house focus-group testing…) is to make something, see how it lands, talk to users, and modify the presentation/controls until most users can work it out in a short time. They learn, you learn, and eventually it clicks.
There’s a lot of discussion about both Filmic and CAT around here, and I hope that @anon41087856 stays patient for long enough that enough people get not just an intuitive grasp but a more general understanding of both the method and what it is that many users don’t get about it, that the implementation/GUI can be updated to make it easier to use and understand. He’s demonstrated a few times how the fundamentals he’s put in allow for pretty amazing results, but I think there must be an easier way to “drive” it.
(*) Example: I non-dimensionalize everything first, then work in non-dimensional space. They’re way more familiar with dimensional values (in imperial units, can you believe it?!) – so that’s what is displayed. Had to implement unit conversion just for that purpose.