m christensen wrote:
What you are doing is needs analysis and by definition requires 'help' or input from others. This is not doing YOUR work for you.

On the other hand needs analysis is much more complex than just asking users what they want.

Most of the time they simply don't know.

Sometimes, and much lest often than some arrogant developers think, they are wrong about what they really need.

Sometimes you need to stir the pot some to get people thinking.

Sometimes need to show them potential options to get them thinking.

Definitely true. Developers often fall into the false dichotomy of assuming that software design means implementing either a user/marketing wishlist or a lonergeek's personal idea of what's best. The former almost never works and the latter works well in some very limited domains but poorly everywhere else.

Proper needs analysis requires:

-- Identifying the users ("customers").

-- *Understanding* the *tasks* the users need to accomplish, and understanding them first in task-oriented terms ("business processes") rather than implementation-oriented terms. Otherwise you wind up with "XY problems" where what's really needed is a way to accomplish task X, but the developer/users/both prematurely decide that the way to do it is with tool/implementation Y, and the focus shifts away from the actual tasks.

-- Learning how the users currently accomplish their tasks.

-- Learning in what ways the users' currently method of accomplishing their tasks fails to meet their needs. This is more than just asking for wishlists. It requires working with the users, who may not be able to immediately articulate their needs. One of the most important aspects of this phase is recognizing what *doesn't* need to be changed. It is also an almost certainty that simply trying to automate an existing manual process will be unproductive and merely increase complexity.

Note that all this does require some "social skills" such as listening and perspective taking, which puts off some geeks. But it does *not* require a bubbly, glib, extroverted personality, and the assumption that it does is really just an excuse for not doing the work. It's really just a matter of disciplining one's mind, comparable to disciplining oneself to finish designing an interface before diving into the implementation. The lack of such discipline leads to interfaces that are organized around the implementation rather than vice-versa.

In Mr. Newby's case, the first step really should be to see what's currently being done with GUIs for SQLite; what's out there, and how do they differ? Some of the acrimony in this thread came about because he skipped that step. Then the next step should be asking who's using what tools, what tasks do they use them for, why did they choose them, what do they do well, what do they do poorly, etc.

Reply via email to