The most underrated skill in tech engineering is the ability, or maybe the *willingness*, to be an idiot. Sometimes the best way to debug a problem is to forget everything you think you know and re-test the most basic things from ground zero. Sometimes the only way to design a good interface is to look at what you've made through eyes that have no idea what they're looking at. You know too much. Your users don't know anything. Be a user. If you can't be a user how can you make a thing users want
Often I complain about things in software and get baffled replies like, okay, but you can fix this arcane problem with [arcane solution], you know that right? And possibly I did know it but complain anyway because *I shouldn't have had to know it*. Your software shouldn't have needed a Theory of Operation. Your software shouldn't have required *learning*. Let me reserve my executive function for performing Useful Tasks and not like, configuring interface minutae. For a moment, let me be an idiot
@mcc I disagree only in detail; I agree in the large.
All software is the realization of someone else's mental model. Since it's never your own (even if you wrote it, it was you last week or last month or last year), operating under that model requires learning it. However, software should embrace and facilitate that learning, rather than treating it like a chore to be avoided.
@whitequark@owen my ideology remains that of the 1991 macintosh, that there are some things that can be intuitive to a true newbie. there used to be a Theory of this.
part of this is the "visual metaphor" i.e. draw a connection to a real-world thing. post-2010 design rejects this because making reference to real-world objects can mean referencing things that either lack universality or have themselves been obsoleted by computers. but i think post-2010 design is worse, so something there worked
@owen oh i mean. i think there are some kinds of software that work like the thing i'm describing in this thread ("i shouldn't have to think, it should just conform to my intuition") and sometimes it works like you're describing ("models are powerful, the user should learn the model"). Maybe there's a synthesis where the software is "self-teaching", the user adopts a mental model without knowing it. Maybe that's what you were trying to say. I am spitballing here not attempting to produce Theory
@mcc@owen i came here to say what Owen just did. any use of a new tool at all, even if it comes down to "intuition", requires learning; and "intuition" is just learning you've done at some earlier point anyway
@owen I think you touched on a larger idea here. I think what I'd say is fundamentally there are two different types of software and sometimes a piece of software misunderstands which one it is
@mcc@owen I actually quite vividly remember learning desktop computing as a child (Win95) and I found the metaphors being used borderline incomprehensible. I learned them as something that is a given and only years later I figured out why people made it this way
so I don't really buy this line of argument, personally
@mcc@owen for example I have never seen "a folder" with "files" and I did not have the background to comprehend those concepts because I was not an office worker. I have probably been in an office a few times but I never made the connection because I've never used those objects much less understood why somebody would care that much about them
@mcc I keep telling people that writing documentation is often the best way to realise an API/tool you’ve designed makes no sense or could be significantly improved with small changes that you never realise until you describe it. Also best results are when you do this after not touching the project for a month
@sinbad@inthehands@mcc This is why it’s such a foolish and tragic mistake to delegate the job to AI, but guess what everyone is going to do anyway. Writing is teaching and teaching is understanding and you can’t solve problems you don’t understand.
I once had a manager who often said that only nipples are intuitive, everything else is learned
later, I learned that even breastfeeding is learned
sucks that we have so many anti-patterns in software interfaces, designed for exploitation, but that people have got so used to that even programs not meant for exploitation find themselves having to choose between imitating those anti-patterns or facing confused users due to lack of "intuitiveness" 😞