UsWare vs. ThemWare

Ted Dennison deixou este comentário astuto em resposta ao Não ouça seus usuários:

Geralmente, quando vou conversar com usuários, é para me educar o suficiente para me tornar um usuário como eles. Assim, posso ver o que precisa ser feito, o que precisa ser simplificado, reorganizado, reordenado, etc.

Isso me trouxe à mente a afirmação de Eric Sink de que há três categorias de software:

  1. MeWare
    O desenvolvedor cria o software. O desenvolvedor o utiliza. Ninguém mais usa.
  2. ThemWare
    O desenvolvedor cria o software. Outras pessoas o utilizam. O desenvolvedor não o faz.
  3. UsWare
    O desenvolvedor cria o software. Outras pessoas o utilizam. O desenvolvedor também o utiliza.

ThemWare é a forma como a maioria dos softwares é desenvolvida, com resultados previsivelmente desastrosos:

Se eu estiver criando um software que não uso e não sei o que o como o usar para pessoas que não entendo ou de quem não gosto, qual será a qualidade do meu software?

É provável que eu veja cada recurso em termos de dificuldade de implementação, em vez de ver o valor que ele terá para meus usuários. É provável que eu queira rotular ou documentar os recursos usando o meu jargão em vez do deles. Provavelmente, crio recursos que são tediosos ou pouco intuitivos para meus usuários. Não consigo imaginar por que a interface de usuário que projetei não faz sentido para eles.

Descobri que muitos dos melhores softwares são os melhores porque os programadores também são usuários. É o UsWare.

Cabe aos desenvolvedores de software entender os usuários, caminhar uma milha em seus sapatos. Se conseguirmos preencher a lacuna entre nós e os usuários, mesmo que só um pouco, começaremos a converter lentamente nosso medíocre ThemWare em um UsWare muito superior. Para realmente se importar com o software que está escrevendo, o senhor precisa se tornar um usuário, pelo menos em espírito.

Consumir o software que o senhor está criando é coloquialmente conhecido como dogfooding nos círculos de programação. A menos que o senhor tenha a (in)sorte de estar escrevendo software destinado a outros desenvolvedores de software, dogfooding pode ser um desafio. Mas vale a pena. O Dogfooding mantém os desenvolvedores de software honestos. Por que trabalhar contra seus usuários produzindo ThemWare quando o senhor poderia trabalhar ao lado de para construir o UsWare?