“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.”
Alistair Cockburn : http://alistair.cockburn.us/Cooperative+game+manifesto+for+software+development
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