Seu código fede e
você nem sabia
Wagner Mendes Voltz – Fusca
wagnerfusca@gmail.com
@tiofusca
O que esta palestra é?
● Provocativa
● Conflitante
● Para quem quer ser profissional
O que esta palestra não é?
● Bala de prata
● Só para devs Java
● Não é só para devs
● Não é pra ser esquecida!
Desenvolvedores não
sabem fundamentos!
http://s3.amazonaws.com/magoo/ABAAAfWwoAD-5.jpg
bitly.com/resultadopesquisafusca
Desenvolvedores não
sabem fazer software
simples!
Overengineering
Desenvolvedores não
sabem usar ferramentas a
seu favor!
Mas o que é
dívida
técnica?
Dívida técnica
Toda e qualquer alteração no código
fonte, realizada por um time de
desenvolvimento de software que
não gera melhoria em sua qualidade
2010 - http://jimhighsmith.com/the-financial-implications-of-technical-debt/
Quais sintomas indicam que
tenho dívida técnica?
● Perda de satisfação do cliente quanto
a primeira entrega
● Demora para entregar o software
● Atrasos nas entregas
● Erros de estimativas com frequência
● Entrega de software com bug em
produção
Quais sintomas indicam que
tenho dívida técnica?
● Projeto engessado
● Time frustrado
● Cobertura de testes fraca
● Suíte de testes que demora para ser
executada
● //TODO E //FIXME
2009 - https://www.martinfowler.com/bliki/TechnicalDebtQuadrant.html
Eu SeiNão há
tempo
Bagunça
Tudo ok… mas
poderia ser
melhor
Bom design e código limpo faz com que
você vá mais rápido - Martin Fowler
Contínua atenção à excelência técnica e
bom design, aumenta a agilidade.
Mas quanto é a minha
dívida ?
https://sonarcloud.io/
https://www.sonarlint.org/
Dívida técnica não
é BUG de
usabilidade!
Mas e o código do fusca???
● Desde 2013 estudando isto
● Melhorei mas ainda tem muito o que
fazer
● Colocando SonarLint na IDE
● Praticando
O que estudar e praticar?
● Fundamentos de OO
● SOLID
● Keep It Simple Stupid (KISS)
● Don’t Repeat Yourself (DRY)
● You Ain’t Gonna Need It (YAGNI)
● Separation Of Concerns
● TDD
● OWASP
● Tudo guiado por métricas (SonarQube)
Livros
Agilidade não é para
desenvolvedores!
Agilidade é para
desenvolvedores! Mas você
precisa colocar os princípios
ágeis em prática!
Princípios
● Entregar software funcionando com frequência, na
escala de semanas até meses, com preferência aos
períodos mais curtos.
● Construir projetos ao redor de indivíduos motivados.
Dando a eles o ambiente e suporte necessário, e
confiar que farão seu trabalho.
● Contínua atenção à excelência técnica e bom design,
aumenta a agilidade.
● Simplicidade: a arte de maximizar a quantidade de
trabalho que não precisou ser feito
● As melhores arquiteturas, requisitos e designs
emergem de times auto organizáveis.
● Em intervalos regulares, o time reflete em como ficar
mais efetivo, então, se ajustam e otimizam seu
comportamento de acordo.
Dúvidas?
@tiofusca
wagnerfusca
@wagnerfusca
wagnerfusca@gmail.com
YAGNI

Seu codigo fede e voce nem sabia - 2020