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.
No entanto, uma das grandes dificuldades pode estar
relacionada justamente com o ambiente de desenvolvimento. Este deve ser capaz
de disponibilizar, em tempo real, a última versão do projeto para que o cliente
possa utilizar e testar, se envolvendo com mais profundidade no processo de
desenvolvimento. Infelizmente, pela
dificuldade de gerar uma versão adequada para testes por conta do ambiente, o feedback
acaba sendo constantemente adiado.
Em seu livro de Extreme Programming, escrito há mais de 10
anos, Kent Beck reúne práticas imprescindíveis para o sucesso de um projeto,
como a automação de build e a integração contínua. Essas práticas ajudam a
desenvolver software de alto valor agregado e com menos desperdícios.
...
Quer ler esse conteúdo completo?
Tenha acesso completo
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.
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.