Live data from Hacker News

Kill the settings, build opinionated software

flyosity.com

11–20 of 52 posts

Re: Kill the settings, build opinionated software

#11
post #3

Some people argue software should be agnostic. They say it's arrogant for developers to limit features or ignore feature requests. They say software should always be as flexible as possible. We think that's bullshit. The best software has a vision. The best software takes sides. When someone uses software, they're not just looking for features, they're looking for an approach. They're looking for a vision. Decide wha…

Users work in an infinite number of different ways, and they way they worked before they use your app is probably forced by whatever crap they are currently using. No matter what you do, you end up forcing a lot of people to learn to work the way the app wants them to. The best you can hope for is to build an app where, once it's explained, most users first go "Oh, ok, that makes sense." and then actually remember it…

Ok, sure, you have to draw a line somewhere. Point conceded. But the position taken by the parent article seems to be pretty close to "don't make a damn thing configurable" and that is a position I think is flat wrong - for many classes of software.

Then again, my interest is more in complex, multi-user, enterprise systems, where you are likely to have more varying forces at work (integration with other systems, needs of different classes of users, etc.) than something like, say, a TODO app for ones iPhone.

Re: Kill the settings, build opinionated software

#12
post #4

Earlier quoted context omitted.

> Poor UI design (3 different places to set prefs?) is orthogonal to the issue of whether or not something should be configurable. That's not how you use the word. Even if it were, I would still dispute your argument, because configuration clearly must happen through a user interface of some sort.

This is a perfectly valid use of the word. In a purely technical sense, orthogonal means "intersecting or lying at right angles". But it can also mean "mutually independent, non-redundant, non-overlapping, or irrelevant" in the context of everyday conversation. And you're missing the point. Obviously configuration must happen through a UI, but OP is saying that more preferences don't necessitate poor UI design, and I…

  but OP is saying that more preferences don't necessitate 
  poor UI design
This.

And also that you could have the "right" number of preferences (if such a thing exists) and still have a crappy UI.

IOW, UI quality and number of preferences vary independently.

Re: Kill the settings, build opinionated software

#13

Some people argue software should be agnostic. They say it's arrogant for developers to limit features or ignore feature requests. They say software should always be as flexible as possible. We think that's bullshit. The best software has a vision. The best software takes sides. When someone uses software, they're not just looking for features, they're looking for an approach. They're looking for a vision. Decide wha…

Such a valid and too often overlooked point. Simplicity and ease of use are great, but you've got to have sufficient complexity to get the early adopters (power users, all) excited and talking about your app. This is especially true in the freelance or smallscale development world, and for most developers looking to "break in" to a market. The trick is in concealing functional complexity behind (sometimes literally) a simple UI. For example, the tried-and-true route of burying complexity along the Z axis, so that power users plunge "into" the app to deal with settings (via dialogs or panels or other UI canvas), whereas the normal users swim in the shallower waters towards the top (or the "main screen"). And etc.

Re: Kill the settings, build opinionated software

#14
post #3

Earlier quoted context omitted.

Users work in an infinite number of different ways, and they way they worked before they use your app is probably forced by whatever crap they are currently using. No matter what you do, you end up forcing a lot of people to learn to work the way the app wants them to. The best you can hope for is to build an app where, once it's explained, most users first go "Oh, ok, that makes sense." and then actually remember it…

This assumes a one-to-one relationship between pieces of software and workflows, which is absolutely incorrect. Just because you design a piece of software to be used in a certain workflow does not mean that that workflow will work for everyone; software which allows users to configure it to fit their individualized problems and processes is infinitely more valuable than software that tells the user "it's my way or t…

Arguably, if you work a different way than the majority of users of a product, you'd be better served by a different product.

Re: Kill the settings, build opinionated software

#16
At the farthest reaches of powerful software, you will always end up with a programming language and libraries.

At the other extreme, you have one thing that does exactly one task and as such can have a nearly "invisible" interface.

My suspicion is that it's actually kind of rare to need the areas in between - that apps like spreadsheets and photo editing are unusual, and if you _suspect_ that you have an app that could be developed in such a broad, deep, configurable way, your best bet is to start building in a library form and construct prototype one-shots - possibly even making them your MVP - attacking various different problems to see if you're right, before you try to make a unified monster UI for the perceived need.

Re: Kill the settings, build opinionated software

#18

Some people argue software should be agnostic. They say it's arrogant for developers to limit features or ignore feature requests. They say software should always be as flexible as possible. We think that's bullshit. The best software has a vision. The best software takes sides. When someone uses software, they're not just looking for features, they're looking for an approach. They're looking for a vision. Decide wha…

This is the problem -- the argument about 'settings' has become about whether there should be a preference pane, whether there should be an "advanced preferences" pane, etc.

Settings aren't the problem. Preference panes are the problem. If you back the ability to customize something (aka toggle a setting) into the thing that needs customizing, then preference panes disappear, and the interface becomes inherently customizable.

Consider the window. Imagine if the x/y/w/h of every window was hidden in a preference pane! No one would use windows, because thats a terrible interface. The solution is to bake the customizability into the interface -- allow users to drag windows around, or resize them by dragging the edges (or corners if you're on a mac, etc.).

The next time you think about adding something to a preference pane, either find a way to bake it into the UI or forget it.

Re: Kill the settings, build opinionated software

#19
post #3

Earlier quoted context omitted.

Users work in an infinite number of different ways, and they way they worked before they use your app is probably forced by whatever crap they are currently using. No matter what you do, you end up forcing a lot of people to learn to work the way the app wants them to. The best you can hope for is to build an app where, once it's explained, most users first go "Oh, ok, that makes sense." and then actually remember it…

This assumes a one-to-one relationship between pieces of software and workflows, which is absolutely incorrect. Just because you design a piece of software to be used in a certain workflow does not mean that that workflow will work for everyone; software which allows users to configure it to fit their individualized problems and processes is infinitely more valuable than software that tells the user "it's my way or t…

Then I have an infinitely valuable compiler and empty file to sell you.

Re: Kill the settings, build opinionated software

#20
post #4

Earlier quoted context omitted.

> Poor UI design (3 different places to set prefs?) is orthogonal to the issue of whether or not something should be configurable. That's not how you use the word. Even if it were, I would still dispute your argument, because configuration clearly must happen through a user interface of some sort.

This is a perfectly valid use of the word. In a purely technical sense, orthogonal means "intersecting or lying at right angles". But it can also mean "mutually independent, non-redundant, non-overlapping, or irrelevant" in the context of everyday conversation. And you're missing the point. Obviously configuration must happen through a UI, but OP is saying that more preferences don't necessitate poor UI design, and I…

I am well aware of the meaning of the word, but it's nonsense if you use it to describe a practice on one side, and a condition on the other.

Further, "doesn't necessarily imply" is quite another thing from "is completely unrelated to." To say that available user options and user interface design are perpendicular to one another is silly.

Post reply on HN