qualidade no desenvolvimento de softwre
TRANSCRIPT
Você é um desenvolvedor de software acima da média?Qualidade no desenvolvimento de software
Sobre
▪ Sobre o tema:
▪ Examinar o impacto de desenvolver software sem qualidade de código, bem como, o reflexo na carreira de um desenvolvedor de software.
▪ Sobre o palestrante:
▪ Gabriel Schmitt Kohlrausch, apaixonado por desenvolvimento de software. Buscando constantemente aprender boas práticas para a construção de software com qualidade, agilidade e sustentabilidade. Nerd, Gamer e praticante de paintball.
▪ [email protected] | http://stiblog.azurewebsites.net/
Você se considera um desenvolvedor de software ACIMA da média?
Afinal, programar é fácil !!!!!!
Mas desenvolver um software com qualidade, que seja funcional e que possa evoluir com sustentabilidade ....
Desenvolvimento de software é parecido com a construção civil?
Planta baixa (engenharia)
Projeto (Cronograma)
Construção
Entrega
Manutenção
Processo de construção civil
Desenvolvimento de software é parecido com a construção civil?
Requisitos (engenharia)
Projeto (Cronograma)
Desevolvimento (construção)
Entrega
Manutenção
Processo de desenvolvimento de software
Mas se durante a construção quisermos adicionar um andar para garagem?
Ou depois de pronto o cliente: “gostei, mas não dava para mover 20 metros mais para o lado?”
No desenvolvimento de software mudanças são naturais em qualquer etapa !
Qual o custo para construir outro edifício igual ao lado?
E para copiar o software, qual o custo?
Ok, mas e se perdêssemos o código fonte? Seria o mesmo custo?
Desenvolvimento de software é aprendizado !!!!
Time de desenvolvimento de software ao fechar 1 ano em um projeto único !
O time apenas se preocupou em PROGRAMAR !!!
Afinal, programar é fácil !!!!!!
Mas ao final do segundo ano ....
Vamos contratar mais programadores, afinal o problema é produtividade !
Agora temos uma bomba prestes e explodir
Ao contrário do esperado ...
De quem é a culpa?
Ou seja a cozinha ficou bagunçada demais !
Vamos refazer tudo ... Então time novo!
E o time antigo?
Mas o que realmente houve?
O time perdeu produtividade no momento em que abriu mão da qualidade do código gerado?
Eles são rápidos porque abrem mão da qualidade?
Qual grau de qualidade do seu código?
0% = Código escrito por MIL MACACOS
100% = Código impecável
Times altamente produtivos são formados por pessoas que querem aprender constantemente!
REFACTORING !!!!!!Alterar o código em funcionamento para torna-lo mais legível, eficiente e elegante.
Mas antes, testes unitários ......
Por exemplo ...
Primeiro refactoring: Nome de variáveis
Segundo refactoring: Extract method
Aplicando Design Pattern Builder
Código limpo, legível e sustentável ...
DDD (Domain Driven Design)
TDD (Test Driven Design)
S.O.L.I.D
SOA (Service Oriented Architecture)
AOP (Aspect Oriented Programming)
Desing Patterns
Architectural Patterns
Agile Principles
Quais as características de profissionais acima da média?
Iniciativa
Cooperação e não competição
Ensina ....
Gosta de compartilhar conhecimento
São apaixonados pelo que fazem
Produtividade != Esforço
São focados
São adaptáveis
O time deveria se perguntar frequentemente ....
Estamos amadurecendo?
Estamos desenvolvendo software com mais qualidade e
tecnologias melhores?
Dominamos ou estamos no caminho de dominar as
ferramentas e tecnologia que utilizamos?
E o mais importante ...
Faça chuva...
Faça sol...
Esteja com azar ...
Esteja com sorte ....
De um passo em direção ao seu objetivo !
Agora, se você está com sorte e tem sol .....
Porque no final, você se considera um desenvolvedor de software ACIMA da média?
Referências
• The Art of Unit Testing, Roy Osherove• Agile Development, James Shore & Chromatic• Test-Driven Development, Kent Beck• Software Architecture in Pratice, Len Bass & Paul Clements & Rick Kazman• Clean Code, Robert C. Martin• Agile, André Farias Gomes• http://pt.slideshare.net/bluesoftbr/construindo-uma-cultura-de-aprendizagem-mar-de-agilidade-salvador-2011• http://pt.slideshare.net/lcobucci/refactoring-like-a-boss-8-solisc