3 ms·
I'll delete this if you don't like it, but I think this is why non-engineers like Steve Jobs, Jony Ives, and a person at HP I won't name, were able to make rema
by logicallee 13y ago
I'll delete this if you don't like it, but I think this is why non-engineers like Steve Jobs, Jony Ives, and a person at HP I won't name, were able to make remarkably good consumer products without knowing how they work. It may be better for a non-engineer to design a laptop than for someone who actually knows how it is put together and exactly how it works.
Of course, in a narrow sense, this means such a person isn't really designing it at all: the real engineers are, which may cause resentment. There is a very good chance that a non-programmer can design a programming IDE that is two or three orders of magnitude better (by whatever standard) than the status quo. This means such a person can't actually implement any part of it, or even know exactly what it's doing.
Quite a surprising conclusion.
By the way I have experienced this myself, when designing for a target I didn't know yet: after/while I was learning it, the resulting design iteration process was much worse than when I didn't know the implementation details. It's harder to think from the user's perspective, after you have been forced to think from the implementation's perspective.
- jamii 13y agoI'm starting to agree with this. If I was working on this alone I would have arrived at something just as complicated and baroque as what came before it. It was only when we started putting our prototypes in front of real users that I started to realise just how much of what I do every day is completely unrelated to the problem at hand. Having the that constant feedback is really vital to challenging existing preconceptions about what programming should look like.
- dreamfactory2 13y agoI don't think it's quite ignorance of the implementation domain is the key here, but rather outside-in vs inside-out thinking. Nearly all engineers solve problems from the inside in my experience.
- logicallee 13y agoIt's not just that though. Something may be impossible to do in the application, except with knowledge of x, but trivial for someone who knows x. If you know x you might totally forget that without this knowledge the task is basically impossible for the user. So if building the application engenders learning x, then you might totally miss this design problem, unless you step away long enough to forget x again yourself - and that may never happen. It is a bit too much to ask for one person to learn all of the details and totally own the implementation space, and yet be able to instantly forget all those details and go back to when they didn't know anything, to look at things from the user's perspective.