Maven 3, Sonar e Hudson

Neste artigo vamos abordar a integração das ferramentas Maven 3, Sonar e Hudson com a intenção de criar um ambiente de desenvolvimento mais ágil por meio do estímulo à eliminação de atividades repetitivas.

De que se trata o artigo:

Neste artigo vamos abordar a integração das ferramentas Maven 3, Sonar e Hudson com a intenção de criar um ambiente de desenvolvimento mais ágil por meio do estímulo à eliminação de atividades repetitivas, redução na incidência de defeitos e aumento da qualidade do código produzido.

Em que situação o tema útil:

Uma das principais causas da mortalidade prematura de projetos de software está ligada à diminuição da qualidade do código. Assim, um dos principais objetivos deste artigo é estimular a criação de um ambiente continuamente integrado e que seja capaz de irradiar importantes informações, alertando a equipe quanto a problemas existentes no projeto.

Resumo DevMan:

O objetivo deste artigo é mostrar o caminho das pedras para a utilização e integração das ferramentas Maven, Sonar e Hudson. Juntas, elas são capazes de automatizar uma série de atividades repetitivas existentes no dia-a-dia de qualquer ambiente de desenvolvimento de software, fornecer importantes métricas e indicadores de qualidade de código, evitando o acúmulo de débito técnico, e ainda integrar o projeto continuamente para proporcionar feedback constante para o cliente.

Para desenvolver software de forma cada vez mais ágil é importante estar sempre atento aos desperdícios existentes no processo de desenvolvimento, buscando estratégias para eliminá-los e, se possível, fazer com que eles não voltem a ocorrer.

Nesse sentido é importante compreender dois conceitos muito fortes na cultura oriental e que podem ajudar nessa difícil tarefa. Eles são conhecidos como Hansei e Kaizen.

O Hansei está diretamente ligado à humildade. Ter um comportamento humilde é a base para que possamos assumir e reconhecer os problemas existentes em nosso ambiente de desenvolvimento atual. Sem isso é extremamente difícil promover qualquer tipo de melhoria mais profunda e efetiva.

Para o Kaizen sempre é possível fazer melhor e nenhum dia deve passar sem que alguma melhoria tenha sido observada, sugerida ou implantada. Essas melhorias podem ser feitas tanto na estrutura da empresa e em seus processos, quanto no próprio indivíduo.

Taiichi Ohno, um dos grandes protagonistas do Toyota Production System, aplicava o Kaizen de forma sistemática e consistente nas fábricas da Toyota. Ele costumava desenhar um círculo no chão da fábrica, que mais tarde ficou conhecido como Círculo de Ohno, e pedia para que supervisores e gerentes entrassem nele apenas para observar enquanto seus liderados trabalhavam. Após algum tempo ele perguntava se estava tudo bem. Caso a resposta fosse positiva, a pessoa era convidada a permanecer observando por mais tempo até que conseguisse identificar problemas no processo. Para Taiichi Ohno, sempre era possível melhorar, e foi essa obsessão que tornou a Toyota uma empresa reconhecida mundialmente pela alta qualidade de seus produtos. Segundo ele: “Não ter problema é o maior de todos os problemas!”.

Aplicados juntos, estes conceitos proporcionam um ambiente preparado para evoluir e melhorar constantemente.

Neste contexto, o objetivo deste artigo é mostrar como instalar, utilizar e extrair valor de ferramentas como: Maven, para automatizar uma série de atividades repetitivas; Sonar, para visualizar métricas e indicadores de qualidade de código, evitando o acúmulo de débito técnico (uma espécie de dívida acumulada por conta de problemas técnicos não resolvidos); e Hudson, para integrar tudo continuamente e proporcionar feedback constante para o cliente.

Descobrindo seu próprio ambiente

Costumamos realizar uma série de atividades diferentes em meio à correria do nosso dia-a-dia e muitas vezes não nos damos conta de que algumas delas são extremamente repetitivas.

Pense em quantas vezes precisamos realizar algumas das tarefas abaixo:

· Criar e configurar um projeto em determinada tecnologia;

· Configurar o ambiente de desenvolvimento – seja para novos desenvolvedores ou mesmo em casos onde precisamos trocar de computador por algum motivo;

· Incluir e atualizar versões e dependências de bibliotecas do projeto;

· Preparar e empacotar uma versão do projeto antes de colocá-lo em produção;

· Executar o procedimento de implantação de uma nova versão do projeto.

Quanto tempo poderia ser economizado automatizando esse tipo de atividade?

A importância do feedback

Pesquisas feitas pelo The Standish Group, uma importante organização americana sediada em Boston e responsável por realizar pesquisas sobre a performance de projetos de TI, revelam que boa parte das funcionalidades implementadas raramente é utilizada pelos clientes. Isso acontece, em grande parte das vezes, pela falta de feedback e principalmente de envolvimento do cliente durante o processo de desenvolvimento do projeto.

Desenvolver software de forma ágil não significa programar mais rápido, mas sim reconhecer funcionalidades desnecessárias e evitá-las. A simplicidade é um dos princípios do Manifesto Ágil. Ela é definida como a arte de maximizar a quantidade de software não desenvolvido.

Os métodos ágeis se baseiam no desenvolvimento iterativo e incremental. Em pequenos intervalos de tempo, pequenas partes das funcionalidades do software são planejadas, desenvolvidas e entregues ao cliente. Dessa forma é possível proporcionar retorno de investimento antecipado e ainda guiar o desenvolvimento de novas funcionalidades com base na experiência adquirida com a utilização das partes já entregues. "

[...] continue lendo...

Artigos relacionados