Olá, pessoal! Não escondo que sou “meio” viciado em quadrinhos, games,
filmes etc. Pois bem, depois de algum tempo parado, decidi voltar a
jogar um dos games mais viciantes da minha adolescência: o Counter-Strike. Voltei a jogar somente para dar uma surra no pessoal do
escritório (@hrosko e @andrepiresmct), mas acabei deixando-o instalado e jogando eventualmente.
Apesar de as coisas não terem muito a ver uma com a outra, comecei a
traçar uma linha entre Counter-Strike e Desenvolvimento de Software, uma
espécie de “boas práticas” comuns para ambos. Pensei muito antes de
escrever este artigo, depois desencanei e vi que o máximo que pode
acontecer é que essas dicas ajudem a vocês a desenvolver melhor – ou a jogar
melhor! Então, vamos lá:
Não adianta ser estrela em time que está perdendo
Mesmo com o melhor jogador no seu time, não há garantias de que vocês serão campeões. É muito mais efetivo ter no seu time membros de nível mediano e bem
entrosados do que ter várias “estrelas” jogando no estilo
cada um por si.
Evite ser herói
Quando damos de cara com vários
membros do time adversário, a melhor estratégia é “correr”. Correndo,
você poderá enfrentar cada adversário separadamente. Alguns
desenvolvedores/times trabalham com várias histórias em simultâneo, o que
dá uma falsa impressão de produtividade. Quando falamos em requisitos, a
melhor estratégia também é dividir para conquistar, ou seja, ao invés
de “atacar” várias ao mesmo tempo, podemos atacá-las uma de cada vez
(imagine todo o time atirando em um único membro do time adversário).
90% não é 100%
É sempre melhor tirar 100% de um adversário do que 70% de dois. Um adversário com 1% de life ainda atira, e com ajuda da Lei de Murphy,
ele pode levar vários membros do seu time antes de morrer. Em uma Sprint,
temos que nos concentrar em terminar cada estória antes de passar para
próxima, assim, ao final da Sprint, mesmo que não tenhamos concluído
todas as estórias, teremos algumas concluídas ao invés de todas em 90% (e
nada efetivo para entregar).
Ao final de um round, devemos nos preparar para o próximo
Fases rápidas não habilitam a compra de itens no início do round. Porém, ao final, podemos ir a pontos específicos do mapa e comprar
coletes e granadas. Estar preparado no início de uma Sprint pode fazer
tanta diferença quanto lançar uma granada no início do round. Mas,
afinal de contas, o que seria estar preparado? Poderia ser a obtenção de
um conhecimento específico que adiantaria todos os requisitos em 50% de
todas as histórias, por exemplo.
Ser efetivo e econômico traz grandes vantagens
Se
você pode acabar com um adversário com uma única bala (Headshot), por
que usar 10? Quanto menos balas você gastar, menos terá que recarregar
durante o round, o que pode salvar sua vida. Ninguém começa no CS
conseguindo 100% de Headshots, esse número vai crescendo com o tempo e
com a experiência (pelo menos com os jogadores normais). Na área de
desenvolvimento, ninguém nasce extremamente produtivo, porém, é nossa
obrigação buscar aumentar a produtividade através de novos conhecimentos
e/ou novas ferramentas.
Quem fica parado morre
Preciso argumentar?
Adaptabilidade é crucial
Você pode ter sua arma
predileta, mas ela pode não ser a mais efetiva em algumas fases ou situações. Na área de desenvolvimento, cada desenvolvedor
tem sua ferramenta preferida, pode ser uma linguagem, um framework, uma
IDE etc. O ideal é não ficar preso às coisas
somente pela predileção, mas sim pela sua efetividade no contexto em
que serão aplicadas.
Poderia enumerar aqui várias outras práticas que ajudam em ambas as
partes, mas prefiro deixar vocês pensarem no assunto e, quem sabe,
compartilhar seus pensamentos aqui nos comentários!
Para variar, vou ali jogar um pouquinho!
Abraços!



