Os 5 aprendizados de bike aplicados em projetos de software
18 de fevereiro de 2014A maioria das pessoas aprende a andar de bicicleta ainda quando criança. Os que deixam para aprender depois de adultos acabam tendo mais dificuldades. Se formos comparar com projetos de software teremos uma similaridade muito grande em relação ao aprendizado da programação, que quanto mais cedo mais fácil e envolvido você ficará.
Durante as minhas aventuras andando de bicicleta acabo por perceber enormes desafios que surgem do nada seja por uma mudança de clima, pelo horário que saio e até por mudar de bicicleta uma vez que alugo uma diferente cada vez que vou dar um passeio. Como qualquer apaixonado por programação ar de bicicleta ajuda como exercício físico e ao mesmo tempo acaba sendo um tempo extra para refletir ideias novas e quem sabe até criar um novo algoritmo enquanto executo algumas pedaladas.
Alguns pontos observados que podem ser comparados a projetos de software.
1) Uma bike diferente a cada dia
Para quem está utilizando a bicicleta com frequência em seu dia a dia nada melhor que ter uma única que você já conhece como operar e já domina todo os seus comportamentos. Esse mesmo sentimento se reflete em projetos de software com uma forte tendência a fazer as mesas cosias gerando porém o efeito inverso resultando em uma acomodação não sadia para o projeto e para o profissional que fica desestimulado por falta de desafio.
O mundo ideal seria rodar todos os dias em sua bike, porém no projeto fazer a mesma coisa todo dia não é o ideal. O ser humano tem uma tendência natural a se acomodar e depois reclamar do desestimulo de fazer a mesma coisa que ele mesmo optou. Portanto provoque mudanças, se proponha a novos desafios todos os dias. Na dúvida troque de bicicleta e saia da rotina conquistando um pouco a cada dia sempre procurando uma forma diferente para pedalar em seu projeto.
2) Superar a vontade de desistir
Durante a minha prática de bike em São Paulo já tenho alguns caminhos que eu gosto de seguir e vou variando de vez em quando. Por algumas semanas eu segui por um caminho novo que tinha uma ladeira tornando o início bem puxado. Nas três primeiras semanas sempre que chegava no início da grande ladeira eu pensava em desistir. Numa rápida comparação com o seu projeto de software não é difícil de imaginar que você também já passou por isso quando chegou de manhã no trabalho e encontrou uma pilha imensa de bugs para resolver.
É nesses momentos de dificuldades que você tem que trabalhar a sua autoestima e se auto motivar para lutar contra esses desafios que estão aparecendo. É sempre mais confortável sair da bicicleta e empurrar para subir a ladeira. Porém quando você aplica a resiliência lutando contra a vontade de desistir você vai ganhando mais força tornando o celebro mais eficiente e preparando par resolver grandes problemas que se tornam pequenos desafios face ao seu aprendizado acumulado.
Nós passamos pelo mesmo sentimento nos projetos de software. Quando passar por uma dificuldade extrema mesmo com o coração na boca e a cabeça quente reforce que esse desafio é mais uma etapa que você precisa alcançar. Hoje pedalando pela mesma via eu passo pela ladeira como se não mais existisse mais e tenho observado que a cada semana acabo subindo a mesma um pouco mais rápido.
3) Não ande no meio da pista
Uma das coisas que você aprende rapidamente andando de bicicleta na ciclo faixa é não andar no meio da pista para evitar colisão com outros ciclistas durante a ultrapassagem. Isso não está no manual ou nenhuma cartilha. Se observar no seu projeto vai encontrar a mesma recomendação. É muito importante ter uma posição bem definida da sua participação e como vai contribuir para o resultado.
Nós costumamos dizer que caímos de paraquedas em um projeto. É importante você ter em mente que no projeto de software você faz parte da tropa de elite e quando checar ao solo deve pisar firme, se posicionar e localizar o seu alvo garantindo que a sua contribuição estará somando para a entrega do projeto evitando eventuais conflitos com outros desenvolvedores que estão passando no mesmo caminho.
4) Imprevistos acontecem
Apesar de pedalar um ambiente teoricamente controlado imprevistos vão aparecendo ao longo do tempo. Outro dia quase tomei uma grande queda por que um outro ciclista louco apareceu do nada e colidiu com a minha bicicleta. Eu confesso a você que foi um grande susto e acho que ia tomar uma queda das boas, mas com muita concentração eu conseguir manter o equilíbrio e estabilizar novamente.
Quando você está em um projeto de software o que mais acontece são imprevistos. Está na hora dos gestores pararem de pensar software como construção civil em blocos. É um trabalho intelectual altamente dinâmico onde grandes mudanças ocorrem do nada desde um colega que se ausentou até um cliente que mudou a sua visão em função de um novo direcionamento do negócio.
Quando mais longo o percurso do projeto se torna maior o risco, por isso abordagens ágeis com entregas frequentes tem feito tanto sucesso. Pequenos incidentes são rapidamente tratados para que não propagem em toda a caminhada do projeto.
No software uma pequena mudança de negócio pode gerar internamente na aplicação um esforço gigantesco que dificilmente é percebido pelo cliente. Com frequência as tecnologias vão evoluindo e no meio do caminho se faz necessário revisar uma implementação e isso não estava previsto na visão inicial. Toda essa dinâmica faz parte do dia a dia de qualquer desenvolvedor de software.
5) Utilize equipamentos de segurança
A minha primeira recomendação é que você utilize um equipamento de segurança durante as pedaladas. Existe coisas que parecem simples como uma luva, porém numa eventual queda o seu reflexo será usar as mãos como primeiro nível de proteção e mesmo andando devagar colocar a mão nos asfalto vai ter algum tipo de dano.
Se você pensar em um projeto de software a principal ferramenta de segurança para o desenvolvedor é a arquitetura da aplicação. Durante anos as pessoas entenderam errado o termo produtividade como produtividade arrastar algo para algum lugar e hoje pagam o preço com aplicações gigantescas e baixo índice de reutilização do código. Se deseja se proteger no projeto de software, então a utilização de estratégias modernas de arquitetura de software associadas a testes unitários se tornaram para você, o primeiro nível de proteção como eu citei no exemplo da luva durante uma queda da bike.
Outros fatores apoiam como gestão ágil, serviço de build, ferramentas poderosas de análise estática de código, cobertura de código, identificação de códigos duplicados e principalmente validação automática de arquitetura se tornaram grandes aliados de segurança para o desenvolvedor de software.
Agora que você aprendeu a pedalar em um projeto de software vale ressaltar que é muito importante para nós profissionais de tecnologia praticarmos atividade física. Em suas pedaladas nos projetos esteja atento aos itens que citei, pois eles são mais comuns do que imaginamos e podem afetar em muito a sua satisfação pessoal e desempenho geral nos projetos que participa.
Consegui tocar o seu coração? Participe curtindo e nos comentários. Até a próxima!
Ramon Durães
Chief Technology Officer (CTO) na 2PC
MVP, Visual Studio ALM
PSM, CSM, PSD
Próximos passos:
1) Para desenvolver novas estratégias em seus projetos de software incluindo consultoria em Visual Studio, TFS, ALM e arquitetura de software entre em contato.
2) Cadastre o seu email em nossa newsletter.