segunda-feira, 14 de julho de 2014

Cooperative game manifesto for software development


“Desenvolvimento de software é uma série de jogos cooperativos de invenção e comunicação com recursos limitados e objetivos definidos. O objetivo principal de cada jogo é a produção e entrega de um sistema de software; o resíduo do jogo é uma série de marcadores para ajudar os participantes do próximo jogo. As pessoas usam os marcadores para se lembrarem, inspirarem-se e informar uns aos outros sobre como chegar à próxima etapa do jogo. O próximo jogo é uma alteração do sistema ou a criação de um sistema vizinho. Cada jogo, então, tem um objetivo secundário de criar uma posição vantajosa para o próximo jogo. Dado que os recursos são limitados, o objetivo principal e o secundário competem por recursos.”

A palavra ‘jogo’ consiste em uma série de movimentos. Um jogo ‘competitivo’ é aquele que todos os jogadores tem a intenção de ganhar e fazer os outros perder. Por outro lado, um jogo ‘cooperativo’ é aquele que leva os jogadores a ajudarem uns aos outros.

Bons exemplos de jogos cooperativos são grupos de escaladas e bandas de musica. Na música não existe um ponto especifico a se conquistar, mas sim a tocar a musica de maneira mais harmônica possível. Já na escalada, onde existe um ponto que se quer chegar (topo da montanha). Para alguns escaladores chegar ao topo da montanha é algo triste, pois significa que a escalada terminou. Isto acontece com alguns programadores, onde o jogo aqui falado é ajudar uns aos outros a completar a escalada (entregar o sistema funcionando).

No desenvolvimento de softwares nós temos um ‘ponto de chegada’, que é a entrega do software. Não é um jogo competitivo, mas sim cooperativo. O jogo jogado pelo time de desenvolvimento é ajudarem uns aos outros a completarem o software. Podem até haver mais de um time competindo entre si para entregar um software similar em menor tempo, mas dentro de cada time é jogado o jogo cooperativo.

A definição de sucesso pode variar de projeto a projeto. Em alguns casos o tempo de entrega do começo ao fim pode ser o medidor do sucesso do time. Em outros casos o sucesso pode estar atrelado a entrega de um software sem defeitos, e ainda em outros levam em conta a usabilidade do sistema, bem como aceitação pelo cliente e o seu desempenho. O que vai ser usado para medir o sucesso da equipe não interfere na ideia de que estamos jogando um jogo cooperativo, mas sim interfere nas estratégias que o time vai usar para alcançar a entrega.

Nenhum comentário:

Postar um comentário