As much as I try, I haven't managed to live enough under a rock to avoid people offering strong opinions on the iPhone duo. As quick scan of the Hacker News (sorry!) thread shows a bunch of things being held out as either "Good Design" or "Bad Design" by different people:
- Bad design: Screen on the outside can be broken
- Good design: Aspect ratio changes consistently when opening
- Bad design: Wide screen keyboards
- Good design: It's very thin
It made me realise that we really often talk about "Good" and "Bad" "Design", but we're often talking cross purposes. If we take those examples, the are good/bad because:
- Device is more likely to break
- Device is pleasant to use
- Device is difficult to use
- Device is easier to carry around
Those criteria, especially the first one, don't sit that well together. For example, if we want a device to be more repairable, it's being thin is likely a compromise against that.
Similarly, in software, we often talk about "Good UI", or "Clean Code". Those often can mean different things too. Dark patterns are a great example of this - they're very clever user interface design, but they're often not designed to the end of user manipulation rather than wellbeing.
Design is almost always a value judgement, I think of Fairphone as a company that does "Good Design", but really they're a company who's design is aligned with what I want from hardware (repairability). If you wanted something designed for cost, maximum performance, or otherwise, you might think of them as "Bad Design".
Choosing tools with a misaligned value judgement normally makes our lives hard: choosing React, designed for handling high complexity web apps, when you need to build a simple website; writing software for high scalability, when you need performance instead.
I think it helps to be clear when we're discussing things, but when we're building things, it's even more so. Next time I need to design a project, I'll start by thinking what I want its values to be.