Malik Jaibeer postou uma introdução de como endereçar e introduzir código de qualidade dentro de uma equipe. Sua série de posts podem ser úteis pra quem estiver em uma situação na qual se queira aprender mais para si mesmo ou apresentar essas idéias para outros. A série oferece uma visão geral breve do tema e aponta várias direções para se estudar mais.
Jaibeer pergunta:
Quantas vezes já aconteceu com você de, ao começar a participar de um novo projeto e olhar para o código pela primeira vez ou quando um novo membro se junta ao projeto, das outras pessoas normalmente dizerem que o código está uma porcaria e que precisamos melhorar isso e aquilo. Com o passar do tempo você raramente tem a oportunidade de corrigí-lo e a mesma coisa acontece repetidamente.
Ele começa o primeiro post com perguntas como:
- O que é bom aprender para escrever código bom?
- Como faço pra diferenciar se o código na minha frente é de boa ou de má qualidade?
- Quais são os critérios ou fatores para avaliar se um código é bom ou ruim?
- Como "abordar" o código para resolver o problema da qualidade?
- Como transformar o código ruim em código bom?
A série é então organizada em três partes distintas:
Aprender Orientação a Objetos, Padrões de Projeto, Limpeza de Código e Refatoração
Uma das primeiras coisas a se fazer para melhorar a qualidade do código produzido por uma equipe é ajudar os membros a aprender o básico do que é importante. Esta parte da série dá orientações sobre coisas importantes para aprender e links úteis para bons materiais de aprendizagem (livros, blogs e jogos).
Ferramentas de Medição
Na parte em que ele fala de Ferramentas de Medição, Jaibeer explica as razões para a utilização ferramentas de análise estática do código.
Análise estática de código pode te ajudar a descobrir os possíveis erros de codificação do software. Podem ocorrer reais melhorias na qualidade do software através da integração de ferramentas SCA (análise estática de código) no seu processo de desenvolvimento. É melhor constatar estes problemas durante a fase de desenvolvimento, ao invés de quando o software já estiver em produção.
Ele enumera nove ferramentas que oferecem diferentes métricas e perspectivas sobre o seu código fonte e dá uma breve descrição de cada ferramenta. As ferramentas que ele lista são para análise de código Java, mas mesmo se Java não for a linguagem que você usa, a visão geral de cada uma das ferramentas ainda pode lhe dar insights sobre o que as ferramentas podem fazer por você e, assim, dar-lhe idéias do que procurar para sua plataforma. Há também recomendações sobre a forma de integrar as ferramentas no seu processo de build.
Cultura de Organização na equipe
A última parte da série descreve a forma de compartilhar o conhecimento e cultura da equipe. Novamente, é um ponto de partida breve, mas útil sobre coisas a se pensar quando você estiver descobrindo como fazer com que a nova cultura "pegue". Jaibeer apresenta reflexões sobre:
- Programação pareada
- Wiki
- Normas de codificação
- Lista de Emails
- Informar os demais ao resolver um problema
Use a série como uma visão geral e um ponto de partida, para descobrir como mergulhar mais fundo no complexo tema de qualidade de código nas equipes.