2. Quem sou eu ?
Mais de 25 anos de experiência no desenvolvimento de software
Trabalha com tecnologia Microsoft desde 2003
Fez diversos projetos para Client, Web e Dispositivos Móveis
Responsável por Pesquisa e Desenvolvimento na CDS Informática
Microsoft MVP C# desde 2008
MCPD, MCTS, MCT
Professional Scrum Developer, Professional Scrum Master
Advisory Council Member Top Award 2012
Palestrante em diversos eventos pelo Brasil
Empresa ganhadora do prêmio MPE Brasil Nacional
Fundador do projeto open source CodeCracker: www.github.com/code-cracker
Mantenedor do projeto open source BoletoNet: www.github.com/boletonet
4. • Código fonte é o coração do sistema, precisa ser cuidado!
• Na maior parte do tempo os desenvolvedores estão fazendo
manutenção em algum código, e muito provavelmente feito por
outra pessoa
• Um sistema (quase) nunca está “terminado”
• Você não melhora se não consegue medir !!!
• Conhece a teoria das janelas quebradas ?
Por que medir ?
6. • Não somente números abstratos...
• Quantas linhas, quantas tarefas, quantos bugs...
• Crie seus indicadores (KPI), seu SLA (meta) do desenvolvimento
• Vamos medir a evolução do código através do tempo
• Vamos medir a eficiência, a padronização !
O que você deveria medir ?
7. Os 7 eixos da qualidade
Arquitetura &
Design
Comentários
Bugs potenciais
Testes Unitários
Códigos duplicados
Regras de codificação
Complexidade
Débito
Técnico
8. “Se o débito cresce o bastante, eventualmente a
empresa gastará mais consertando estes débitos do
que investindo em incrementar o valor dos seus
outros ativos”
Steve McConnell
(autor de Code Complete)
O débito técnico
9. • Plataforma de Qualidade do Código
• Gerenciamento de débito técnico
• Ferramenta Free & Open Source
• Alguns plug-ins são pagos
• Gerencia indicadores de qualidade do código
• Monitora e ajuda a melhorar os 7 eixos da qualidade
• Promove a Inspeção contínua...
• Cria um repositório de débitos técnicos
• Centraliza os problemas a serem resolvidos!
O que é o Sonarqube ?
10. Este é o seu código fonte
quando você não paga
seu débito técnico
11. • Analisa seu código fonte (análise estática)
• Por demanda ou integrado ao seu Build
• Calcula centenas de métricas, em várias linguagens
• Organiza e classifica os dados analisados, criando indicadores
• Mostra os resultados em dashboards web
Como ele funciona ?
13. Muitos, muitos plugins
LANGUAGES
DEV TOOLS
http://docs.sonarqube.org/display/PLUG/Plugin+Library
INTEGRATION
AUTHENTIFICATION &
AUTHORIZATION
GOVERNANCE
VIZUALIZATION &
REPORTING
ADDITIONAL
METRICS
14. CodeCracker – analyzers no SonarQube
https://github.com/SonarSource-VisualStudio/sonarqube-roslyn-sdk
• Crie seu analyzer com Roslyn e use no SonarQube
• Gera o plugin para SonarQube baseado no Nuget
16. • Sonarqube server
• Pode ser instalado on-prem com opção de autenticação por AD ou não
• Como uma VM no Azure
• Windows ou Linux
• Baseado em Java + Banco de Dados (SQL Server / MySql / Postgree)
• Pode ser instalado em Docker (https://hub.docker.com/_/sonarqube)
• VS Team Services
• Como tarefas do Build
• TFS OnPremisse
• Como tarefas do Build
• Com script pre-build e post-test, com build Xaml, ou linha de commando (TFS 2015)
• O agente precisa do Java, VS IDE e MSBuild.SonarQube.Runner instalados
• Scanner Manual
• Sonar Scanner acionado manualmente
Configurando o ambiente
22. • Identifique e reduza seus débitos técnicos
• (limpe a cozinha todos os dias)
• Comprometa os desenvolvedores já no início do projeto
• Compromisso com a qualidade do código
• Fique alerta quando os débitos técnicos estiverem além do limite
• (estabeleça seu limite)
Resumindo