Complex applications are the worst of both worlds. They don&#x27;t do things intuitively, they invent unconventional UI paradigms, and they are extensively configurable, so they need a manual that begins with &quot;how to read this manual&quot;.<p>The workshop analogy builds on a false premise of low configuration equating to underpowered function. A pro will use a lot of different speciality tools that have no or minimal configuration, vs. a Swiss Army Knife that is mediocre at everything. In the same way, Unix-style workflows are very &quot;shoot yourself in the foot&quot; stuff, but formal configuration of each tool is minimal.<p>The best thing a complex application can do is be a general-purpose programming API at its core, with common workflows surfaced as a polished, simpified UI. Each of those workflows is its own application, with internal developer documentation to orient someone who wants to hack on it. Then the 80% cases are solved by default, and the 99% cases(&quot;this thing doesn&#x27;t let me configure x&quot;) are solved by copy-pasting the application code and modifying a single line based on a Stack Overflow answer. And everything beyond that, you had to code anyway, so you enjoy a real programming environment with documentation instead, and hopefully a hook into the broader ecosystem so that the API is available throughout different coding environments.<p>Sadly, almost no application intentionally evolves in this way.