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
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo