bearophile wrote:
Robert Fraser:
bearophile wrote:
To design an API you have to start collecting possible (even ideal) users. Then
you trim them down to the few most important people, and give a face and a name
to each one of them.
LOL, user personalities. I remember catering to the user "Mustafa" when
I was working at MS, which I think I misunderstood to have something to
do with the Circle of Life.
Do you mean Mufasa :-)
That name sends chills up my spine. Ooh, say it again!
I was not talking about personalities, but mostly about classes of users;
people have all different skills and necessities, but can often be categorized
in few groups. Then you give a name to a representative of each class. You
don't need to give them detailed personalities, just the characteristics that
tell the classes apart.
I haven't invented this method, it comes from Alan Cooper (Visual Basic) and
Donald Norman ( human-centered design).
Python core developers don't use this method, by the way. I have used it do design small
programs with a GUI, starting from such user classes => use cases => GUI =>
logic.
That's what I meant. Mufasa is a user with significant database
administration experience and expanded privileges, who has lots of
general computer knowledge. He knows some scripting and SQL, but doesn't
understand programming. He comes from a UNIX background but recently
migrated to Windows/SQL Server... or something like that, I don't
remember exactly. But if I remember right, Mufasa's personality
archetype also included some example personal details (he is in his
early 40s and married with two kids, IIRC). I guess that helps you
picture the user better or something.