Omniscient software
-
...or, how smart should your software be? I've been helping a friend write software that ties into email clients. The biggest nuisance in the product right now is that the user is required to updated their email client account settings for the product, and provide the product with a redundant copy of the information. So we've been discussing the idea of a Setup Assistant, which would find out what email clients are installed, and take the appropriate action to get/set the information which is currently a manual task. My friend then made the suggestion we could poll for evidence of new email clients installed, new accounts created, old accounts deleted, etc, and automagically perform the operations necessary based on the user's actions outside of our software package. This was where our opinions diverged... In my opinion, any software I write should be intelligent enough to assist my user when my user is using my product. But I feel that in trying to engineer logic that guesses the user's intent with respect to operations they perform with other areas of their environment, even those that are related to my product's purpose, I'm almost guaranteed to guess wrong some time. And in guessing wrong, I create more work and hassle for the user than if I'd educated them that operations outside of the product may require corresponding operations inside the product to ensure functionality. My friend's opinion was that if we say we're adding value to our user's email, and they make a change with respect to how they get email, where they get email, etc, they will expect us to detect that, and be annoyed when we don't. What do people think? How smart should software be? A bit esoteric, but its a nice sunny day here in Boston, perfect for contemplating the existential side of software design I think. Tomorrow it will rain and I will have bugs to fix...;P -Carl PS - my friend used to work for Apple, which I don't hold against him, but may explain our difference in opinion.
-
...or, how smart should your software be? I've been helping a friend write software that ties into email clients. The biggest nuisance in the product right now is that the user is required to updated their email client account settings for the product, and provide the product with a redundant copy of the information. So we've been discussing the idea of a Setup Assistant, which would find out what email clients are installed, and take the appropriate action to get/set the information which is currently a manual task. My friend then made the suggestion we could poll for evidence of new email clients installed, new accounts created, old accounts deleted, etc, and automagically perform the operations necessary based on the user's actions outside of our software package. This was where our opinions diverged... In my opinion, any software I write should be intelligent enough to assist my user when my user is using my product. But I feel that in trying to engineer logic that guesses the user's intent with respect to operations they perform with other areas of their environment, even those that are related to my product's purpose, I'm almost guaranteed to guess wrong some time. And in guessing wrong, I create more work and hassle for the user than if I'd educated them that operations outside of the product may require corresponding operations inside the product to ensure functionality. My friend's opinion was that if we say we're adding value to our user's email, and they make a change with respect to how they get email, where they get email, etc, they will expect us to detect that, and be annoyed when we don't. What do people think? How smart should software be? A bit esoteric, but its a nice sunny day here in Boston, perfect for contemplating the existential side of software design I think. Tomorrow it will rain and I will have bugs to fix...;P -Carl PS - my friend used to work for Apple, which I don't hold against him, but may explain our difference in opinion.
Hmm. I would go for a hybrid approach. Monitor for new email software, but *ask* the user if they want your stuff to perform it's magic first. But it should only need to present that one choice, and remember either way what was selected. Plus the usual "Don't show this again option" to turn off monitoring outright. -- Ian Darling "The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky
-
...or, how smart should your software be? I've been helping a friend write software that ties into email clients. The biggest nuisance in the product right now is that the user is required to updated their email client account settings for the product, and provide the product with a redundant copy of the information. So we've been discussing the idea of a Setup Assistant, which would find out what email clients are installed, and take the appropriate action to get/set the information which is currently a manual task. My friend then made the suggestion we could poll for evidence of new email clients installed, new accounts created, old accounts deleted, etc, and automagically perform the operations necessary based on the user's actions outside of our software package. This was where our opinions diverged... In my opinion, any software I write should be intelligent enough to assist my user when my user is using my product. But I feel that in trying to engineer logic that guesses the user's intent with respect to operations they perform with other areas of their environment, even those that are related to my product's purpose, I'm almost guaranteed to guess wrong some time. And in guessing wrong, I create more work and hassle for the user than if I'd educated them that operations outside of the product may require corresponding operations inside the product to ensure functionality. My friend's opinion was that if we say we're adding value to our user's email, and they make a change with respect to how they get email, where they get email, etc, they will expect us to detect that, and be annoyed when we don't. What do people think? How smart should software be? A bit esoteric, but its a nice sunny day here in Boston, perfect for contemplating the existential side of software design I think. Tomorrow it will rain and I will have bugs to fix...;P -Carl PS - my friend used to work for Apple, which I don't hold against him, but may explain our difference in opinion.
Software should only do what the user asks it to do. It shouldn't try and second guess the user. I suppose it could ask if the operation should be performed, but that should be optional. Michael 'War is at best barbarism...Its glory is all moonshine. It is only those who have neither fired a shot nor heard the shrieks and groans of the wounded who cry aloud for blood, more vengeance, more desolation. War is hell.' - General William Sherman, 1879
-
Software should only do what the user asks it to do. It shouldn't try and second guess the user. I suppose it could ask if the operation should be performed, but that should be optional. Michael 'War is at best barbarism...Its glory is all moonshine. It is only those who have neither fired a shot nor heard the shrieks and groans of the wounded who cry aloud for blood, more vengeance, more desolation. War is hell.' - General William Sherman, 1879
Michael P Butler wrote: It shouldn't try and second guess the user. I wish somebody had told that to whoever implemented VS.NET's html/aspx editor, as I feel as though I am continually fighting against it to get anything done. As for the rest of the IDE, I think its great.
Searching the web without Google is like straining sewage with your teeth.
Userfriendly, 2003/06/07 -
Hmm. I would go for a hybrid approach. Monitor for new email software, but *ask* the user if they want your stuff to perform it's magic first. But it should only need to present that one choice, and remember either way what was selected. Plus the usual "Don't show this again option" to turn off monitoring outright. -- Ian Darling "The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky
"It looks like you're writing a letter.." - Clippy ;P "It's been swell.. but the swelling's gone down." - TankGERL
-
"It looks like you're writing a letter.." - Clippy ;P "It's been swell.. but the swelling's gone down." - TankGERL
Richard Jones wrote: "It looks like you're writing a letter.." - Clippy "It looks like I didn't install the Office Assistant!" ;P -- Ian Darling "The moral of the story is that with a contrived example, you can prove anything." - Joel Spolsky