Os beneficios da automatização.
Victor Hugo Germano apresenta sua visão do processo IC para projetos em java.
Na apresentação são listados inúmeras ferramentas que se integram, garantindo uma melhor qualidade de software.
2. Eu? Quem?
Victor Hugo Germano
● Ciência da Computação – UFSC
● Gestão Estratégica de TI – UNIVALI
● Audaces Automação Industrial
● Colunista da Revista Visão Ágil
● Autor: A Maldita Comédia
● Coding Dojo Floripa
http://malditacomedia.blogspot.com
3. Agenda
● Mitos
● Princípios
● O Processo de IC
● Controle de Versão
● Testes
● Inspeção
● Servidores
● Feedback
● Desafio
http://malditacomedia.blogspot.com
4. Definição de requisitos
Análise e Design
Tempo
Desenvolvimento
Teste/Correção
5. Integração de Software
“No final é só juntar tudo e liberar
uma versão”
Subestimado por:
Gerentes
●
Desenvolvedores
●
Clientes
●
E a realidade?
http://malditacomedia.blogspot.com
6. Integração de Software
Riscos são subestimados
●
● Dependências de subsistemas
● Interpretação errada de requisitos
● Incompatibilidade entre interfaces
● Testes demoram demais
● Correções demoram mais ainda
● Atrasos tornamse comuns
● O caos está instalado
http://malditacomedia.blogspot.com
9. Princípios Ágeis
● Satisfação do Cliente como prioridade máxima, através da
entrega contínua de valor agregado
● A principal medida de progresso é software funcionando
● Grupos interdisciplinares trabalham em conjunto com o cliente
para o sucesso do projeto
● Equipes autogerenciáveis, indivíduos motivados, comunicação
e simplicidade são valores importantes
● Melhoria Contínua para maximizar a produtividade e
excelência da equipe
Agile Manifesto Principles
http://malditacomedia.blogspot.com
10. Integração Contínua?
● Desenvolvedores sincronizam códigos produzidos ao menos
uma vez ao dia
● Testes garantem a consistência da base de código unificada
● Métricas são aferidas
● Relatórios gerados
● Uma versão compilada, testada e pronta para uso é criada
● Qualquer problema na construção da versão possuí
prioridade máxima
● O código é constantemente revisado em busca de melhorias
Paul Duval – Continuous Integration, 2007
12. Objetivos
● Redução de Riscos
● Automatização de processos repetitivos
● Gerar Software funcionando
● Ampliar a confiança no produto
● Ampliar a visibilidade do projeto
http://malditacomedia.blogspot.com
14. Controle de Versão
Ainda existem empresas sem controle de versão!!!
● CVS
● Subversion
● SVK
● Mercurial
● Bazaar
● Monotone
http://malditacomedia.blogspot.com
24. PMD
● Possíveis Bugs – blocos try/catch/finally/switch vazios
● Dead code – variáveis, parametros e métodos não utilizados
● Expressões muito complexas – blocos if desnecessários para
laços for que poderiam ser laços while
● Customização de regras:
Um grande número de métodos públicos e atributos declarados em uma
classe pode significar que a classe precisa ser quebrada já que um esforço
mais será necessário para testála.
27. Topa um desafio?
Reduza o tempo de criação de uma versão!
● Testes unitários realizados
● Documentações geradas
● Métricas de qualidade aferidas
● Script de banco de dados adequado
● Testes de integração realizados