Don't make my code compile!
I’m working with a code generation tool right now, and
it’s a pretty spiffy one at that. Integration with Vs.Net, wizards, forms
and whatever else that strikes your fancy. I’m sure that I can even make
it serve coffee and dance a jig, if I found the right buttons. The problem is
that while it’s certainly a very smart tool, it’s not letting
itself into an invalid state.
Is that a problem? I can hear you say; it’s a Good Thing that it doesn’t allow you
to put it in an invalid state. Well, it’s good for the tool, but it’s
bad for me. I don’t work
like that. I’m not put together like a machine does, and I’m
certainly going through stages where my code is invalid. Either it’s not compilable
or it doesn’t make sense. Maybe there is someone out there that can get
compilable code every time they move a line, but I can’t.
Forcing me to work in the proper
way means that I’m going to get very
frustrated at the tool. No, I wouldn’t think first about the query’s
parameters before I wrote the query, and I wouldn’t like any advice whatsoever about the
possibilities of improving my
schema because then it would be more normalized. Yes, the tool is probably
right, but there are more concerns than the ability to get 100% normalized
data. I wrote a couple of tools for developers myself, and I tried to give as much information as
possible while not limiting the user to the way I would like it to work with my
tools. For instance, if you use NHiberante
Query Analyzer, it will show a red icon if the current mapping document is
not valid according to the schema, but it will
let you continue.
For all other tool makers out there, try to make it as
flexible as possible. I don’t think linearly, not nearly (pun intended).
Don’t try to force me to do to do so; that way leads to very high levels
of user frustration. I’m more than sure that the tool is excellent, and I
can certainly appreciate the amount of time that was dedicated to making sure
that there was no way to input bad data to the system. But the inability to
work my way, and the inability to
write code instead of working my
way through dozens of GUI wizards are driving me crazy.
Comments
Comment preview