Kill the settings, build opinionated software
flyosity.com
Kill the settings, build opinionated software
1–10 of 52 posts
Re: Kill the settings, build opinionated software
#2 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 what your vision is and run with it.
Well, I, in turn, think that's bullshit. IMO, the best software conforms to the way the user works, rather than trying to force the user to work in a way that's unnatural to them.The arguments against a confusing preferences pane and the arguments for sensible defaults in no way contradict the notion of making software than is flexible enough for power users. Poor UI design (3 different places to set prefs?) is orthogonal to the issue of whether or not something should be configurable.
Power Users don't matter? Maybe for certain classes of consumer applications that don't face a steep barrier to adoption in the first place. But for some apps, it's the power users who are the early adopters, who first begin using and evangelizing for the software and without whom it would never catch on in the first place. Do you really want to piss those folks off?
Make the damn "advanced preferences" pane more or less hidden (ala, about:config) but document the shit out of it and make sure it's at least there for the people who do care.
Re: Kill the settings, build opinionated software
#3Some 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…
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 later. If you're really good, the users will even say, "Wow! That's much better than the app I used before."
Re: Kill the settings, build opinionated software
#4Some 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…
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.
Re: Kill the settings, build opinionated software
#5Some 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…
Every preference requires more testing to make sure that other things don't break as a result of a user changing an obscure setting.
If you don't mind having to write test cases for thousands of permutations of possible settings, go ahead and let your customer change everything. A simple product, however, is far easier to maintain.
Re: Kill the settings, build opinionated software
#6A flexible back-end can even be used to create an opinionated front-end. Consider a "factory defaults" file; preset any behavior, whether or not it has a checkbox. Try every combination, and convince yourself that one is better. Even with these decisions made up front, the interface is there to let other people disagree with you.
Mac OS X has a nice balance, because the built-in "defaults" command line program can tweak any setting that would also be available in the application's code. Just because a program is a GUI, doesn't mean that it should rely exclusively on GUI elements for configuration.
Re: Kill the settings, build opinionated software
#7Some 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…
> 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.
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 absolutely agree.
Re: Kill the settings, build opinionated software
#8Some 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…
Re: Kill the settings, build opinionated software
#9Some 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…
Every piece of code or bit of functionality you write has a cost of ownership to your business. Every preference requires more testing to make sure that other things don't break as a result of a user changing an obscure setting. If you don't mind having to write test cases for thousands of permutations of possible settings, go ahead and let your customer change everything. A simple product, however, is far easier to…
Re: Kill the settings, build opinionated software
#10Some 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…
Every piece of code or bit of functionality you write has a cost of ownership to your business. Every preference requires more testing to make sure that other things don't break as a result of a user changing an obscure setting. If you don't mind having to write test cases for thousands of permutations of possible settings, go ahead and let your customer change everything. A simple product, however, is far easier to…
If you don't mind having to write test cases for thousands
of permutations of possible settings, go ahead and let
your customer change everything. A simple product,
however, is far easier to maintain.
Obviously it's not a black and white issue... at some point if you provide enough options, you've probably provided a turing complete DSL. And that's not what I'm advocating. I'm advocating making things configurable "within reason" where I'll freely concede that "within reason" is a subjective measure.And you're right about the cost, so you have to weigh that cost against the potential lost sales from not providing a given option. And you never know for 100% sure, especially since people who don't buy your product don't typically call you up and say "Hey, I didn't buy your stuff and here's why." "Silent evidence" as it were. So it's still a bit of a judgment call. I just come down on the side of being a bit more accepting of options and configurable items, than what I think the parent article is advocating.