Monday, July 11, 2011

Developers, who are you working for ?

2 years from now, my boss or customer was just another layer in my code.
They were something I could abstract, and not think about.

My approach these days is different. All my work is justified from the point of view of personas. This observation seems obvious, but the implication in my work is big.

For example, as a developer, you were asked to make your code extensible. But can you tell me what persona is wanting extensibility ?
Your boss ? It's not a persona, he will not create extensions to your code.
You ? another developer ?
In both case, you need to treat them as one persona, and a persona has use cases.

In other word, you need to ask why they need extensibility.
Being a good practice, is not a response.
Saving time is not a valid response either.

You can only save time to a persona by knowing why he needs you.
Because simplicity is about moving complexity at the right place for the right person.

So you better need to know with who you are dealing with and why.

I've seen this approach has two advantages :

  • By asking questions to your persona, most of the time you can remove useless feature before wasting time.
  • By asking questions, you can add constraint to your code, and constraint is what will make your code easy to explain and understand. It will improve your design without any extra layer.


I've taken this example for developers, but any creative works is in the same case.
When an enterpreneur don't know what persona will use his project he will refer to them as "people".

People is a persona too. But be careful...
People don't care about you.
People does not have money.
People know nothing about everything.
People is capricious.

By asking why people would care about you, you will see that in most case, people is not someone you want to work for.

No comments:

Post a Comment