psemianonymous
Programmer
The full list is:
training vs. documentation vs. many developer support-calls vs. detailed programmatical system
So here's an example pulled from my recent past: how do you go about setting up a lookup table? Editing it? Changing items in the table's names (yes, actually changing the existing references to the new name)? Deleting obsolete entries and changing their values to some other entry in the table?
I had to answer questions about all of these things. You see, in my application the only way to get to the lookup table was during data entry. There was no menu item that takes you directly to the little form that allows you to enter lookup items, at least until this recent program 'evolution' that forced me to change.
So let me explain: this form is very simple--it's a bound form bound to the lookup table itself, with record navigation buttons and a record selector on the left (in case anyone wants to delete something). The lookup table has just the one field--the text field itself--and so this is the very height of simplicity.
But I was asked because the one specific user doesn't know exactly how to fix this. This is fine, because I never imagined this would be an issue. Who goes around messing with existing data? So I don't even have documentation written in the program manual for how to deal with these lookups, in any way, besides during the data entry process. I don't even think there's a single screenshot of the form there.
Nor did I show my users how to mess with the the lookup form itself, because there's a lot of them. And again, I never dreamed they would want to do something like this. So I've totally failed to provide them with any sort of instruction as to how to do this by themselves, so by default they call me. Which is fine, but I'm now wondering: should I have done something different?
I don't know, and that's the problem. Maybe I should have made a menu item for each of the lookup table forms (now all have been added under the 'Misc' tab). Maybe I should have just added a spot in the documentation for how to mess with each lookup table, or added a general section explaining how to do each specific task in general (e.g. 'how to delete a record from the table, assuming that's allowed' or 'how to edit dictionaries' or whatever). I don't like documenting things that I believe will never be read, because I absolutely hate writing documentation.
I could have programmed in a super-flexible wizard that performs the task for the user--but it would only be used perhaps twice or so, so what's the point of doing all that programming so that for two seconds your user doesn't need to think? Plus it's a lot of work, and it's a whole lot of work to get that sort of thing right in any fashion, or to be absolutely sure that there won't be confusion and/or misuse of the wizard.
I could have spent an hour during their initial training session explaining how the lookup tables work and such. Unfortunately, most of the people I work with are too practical to care, so teaching them things they don't care about (at that moment) is talking to dead ears. Even if I did explain how to modify the lookup tables in several theoretical situations, there are a lot of these situations to cover. Besides adding a new entry (covered), we could discuss things like changing all instances of 'foo' to 'bar' and also all instances of 'foo1' to 'bar' as well. Or things like explaining the difference of changing the value 'foo' to 'bar' vs. changing an individual record's value from 'foo' to 'bar'. Or attempting to delete 'foo' from the lookup list, and what implications that has.
So the deal is: with any reasonably-sized application, your users will not be able to figure everything out by themselves. So inevitably they will call you for help on things you never dreamed they would be doing. The above is just an example, but this is just one more design decision you have to make--this lookup table example is just one of many different situations this decision happens. What I'm looking for is specifics--specifically, what does everyone else do in this situation of modifying the face of the lookup table? Or for requests for new reports, or for things like assuring quality data entry, i.e. preventing bad data entry?
These are some of the design issues I'm thinking about presently.
Pete
training vs. documentation vs. many developer support-calls vs. detailed programmatical system
So here's an example pulled from my recent past: how do you go about setting up a lookup table? Editing it? Changing items in the table's names (yes, actually changing the existing references to the new name)? Deleting obsolete entries and changing their values to some other entry in the table?
I had to answer questions about all of these things. You see, in my application the only way to get to the lookup table was during data entry. There was no menu item that takes you directly to the little form that allows you to enter lookup items, at least until this recent program 'evolution' that forced me to change.
So let me explain: this form is very simple--it's a bound form bound to the lookup table itself, with record navigation buttons and a record selector on the left (in case anyone wants to delete something). The lookup table has just the one field--the text field itself--and so this is the very height of simplicity.
But I was asked because the one specific user doesn't know exactly how to fix this. This is fine, because I never imagined this would be an issue. Who goes around messing with existing data? So I don't even have documentation written in the program manual for how to deal with these lookups, in any way, besides during the data entry process. I don't even think there's a single screenshot of the form there.
Nor did I show my users how to mess with the the lookup form itself, because there's a lot of them. And again, I never dreamed they would want to do something like this. So I've totally failed to provide them with any sort of instruction as to how to do this by themselves, so by default they call me. Which is fine, but I'm now wondering: should I have done something different?
I don't know, and that's the problem. Maybe I should have made a menu item for each of the lookup table forms (now all have been added under the 'Misc' tab). Maybe I should have just added a spot in the documentation for how to mess with each lookup table, or added a general section explaining how to do each specific task in general (e.g. 'how to delete a record from the table, assuming that's allowed' or 'how to edit dictionaries' or whatever). I don't like documenting things that I believe will never be read, because I absolutely hate writing documentation.
I could have programmed in a super-flexible wizard that performs the task for the user--but it would only be used perhaps twice or so, so what's the point of doing all that programming so that for two seconds your user doesn't need to think? Plus it's a lot of work, and it's a whole lot of work to get that sort of thing right in any fashion, or to be absolutely sure that there won't be confusion and/or misuse of the wizard.
I could have spent an hour during their initial training session explaining how the lookup tables work and such. Unfortunately, most of the people I work with are too practical to care, so teaching them things they don't care about (at that moment) is talking to dead ears. Even if I did explain how to modify the lookup tables in several theoretical situations, there are a lot of these situations to cover. Besides adding a new entry (covered), we could discuss things like changing all instances of 'foo' to 'bar' and also all instances of 'foo1' to 'bar' as well. Or things like explaining the difference of changing the value 'foo' to 'bar' vs. changing an individual record's value from 'foo' to 'bar'. Or attempting to delete 'foo' from the lookup list, and what implications that has.
So the deal is: with any reasonably-sized application, your users will not be able to figure everything out by themselves. So inevitably they will call you for help on things you never dreamed they would be doing. The above is just an example, but this is just one more design decision you have to make--this lookup table example is just one of many different situations this decision happens. What I'm looking for is specifics--specifically, what does everyone else do in this situation of modifying the face of the lookup table? Or for requests for new reports, or for things like assuring quality data entry, i.e. preventing bad data entry?
These are some of the design issues I'm thinking about presently.
Pete