SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Qualidade com
Agilidade
para startups
about.me/paulochequeT2015-02-06
links,
dicas,
comandos
about.me/paulocheque
oss,
bibliotecas,
bootstraps
T
CodeArt.io
(em dev)
contato,
Concepção
Criação
Consolidação
Fases de desenvolvimento de uma startup
Ideia
Validação
Protótipos
Versões alfa
(descartáveis)
Concepção da startup
Criação da startup
Versão beta
em produção
(permanente)
Manutenção real
Momento de
decisões
importantes
consolidação
Consolidação da startup
Aumento de clientes e de
escala
Customizações
Mudanças de prioridades
Sistemas em evidência
Estratégia 1: go horse
Desleixo
Qualidade
Produtividade
manutenção
bugs
competitividade
progresso
Criação Consolidação
Qualidade
Produtividade
retrabalho
Tempo
Estratégia 2: perfeição
competitividade
progresso
Criação Consolidação
Perfeccionismo
Qualidade
Produtividade
Tempo
Estratégia 3: equilíbrio
Criação Consolidação
Tempo
Qualidade
Produtividade
Interessante
Qualidade
Produtividade
retrabalho
Qualidade
Produtividade
Interessante
O que é qualidade?
correção
desempenho
escalabilidade
segurança
manutebilidade
usabilidade
flexibilidade
...
Qualidade com agilidade
otimizar o todo
adiar
comprometimentos
entregar rápido
boa priorização
equilíbrio
evitar desperdício
trabalhar
preventivamente
Implantação
Backend: deploy e rollback
Mobile: geração dos binários, pacotes etc
Script automático e rápido
○ 1 comando ou 1 click
○ demore segundos ou poucos minutos
Ferramentas:
○ Fabric (python)
○ Rake (ruby)
○ Gradle (java, scala)
○ xcode-build (iOS)
○ Vagrant
○ Docker
○ ...
Heroku
git push heroku master
heroku releases
heroku rollback v46
Implantação: exemplo
Fabric
fab staging deploy
fab production deploy
Implantação: exemplo
Implantação suave
Sem migrações críticas de dados
○ sem risco de perda de dados
Deploys seguros
○ sem derrubar a aplicação
○ manter duas versões em execução
simultâneamente
○ evitar incompatibilidades de versões
Qualidade do código
Compare:
A
B
C
Clareza e simplicidade do código evita
desperdício de tempo
Mas o mais importante é a coesão e o
design
Código coeso é fácil de refatorar
Qualidade do código
Dica: Testes de unidade
Testes automatizados ajudam na
criação do design das classes
Está difícil de testar?
Algo está errado
O código está coeso?
Testes não são para encontrar erros,
são para prevenir erros
O código de um teste deve ser
simples, curto, fácil de implementar,
independente e rápido
Testes de unidade
Não desperdice tempo com testes de
baixa qualidade
Testes de código bagunçado devem
ser simples e pouco específicos
(até o código ser refatorado)
Dicas sobre testes
Testes: exemplos
Arquitetura: crítico!
Arquitetura bagunçada:
○ módulos e classes muito acopladas
○ replicação de código
(copy and paste)
○ gambiarras
○ bugs
○ difícil manutenção
Não adie refatorações
Uma refatoração
de cada vez
Faça rápido,
evite merges
Dicas de arquitetura
APIs
Siga padrões estabelecidos (ex: Rest)
○ Seja consistente com seus padrões
Sua API irá evoluir: versione
/v1/resource/
Mantenha a flexibilidade
APIs
Documentação simples
○ no máximo, casos de teste
Documentação completa e detalhada
somente se ela for aberta para uso de
terceiros
Dados: crítico!
Dados inválidos geram bugs em
lugares inesperados
Opte por um significado por campo
Não procastine correção de dados
○ Dados obsoletos se tornam uma incógnita
Sempre salve horários em UTC
Avalie salvar dinheiro em centavos: é
mais fácil trabalhar com inteiros
Explicite as unidades dos campos:
cents_of_dollar, area_m2, distance_cm
Dicas de persistência
Investimos tempo em
prevenção e qualidade
Não fomos
perfeccionistas nem
desleixados
Código está fácil de
refatorar
Retrospectiva: evitamos desperdício
E o desempenho?
escalabilidade?
segurança?
Deploy ágil
Dados coerentes
Retrospectiva: seu sistema está robusto!
Boa manutenibilidade
Gerenciamento de senhas do sistema
e controle de acesso dos usuários
Executar testes de segurança
○ prioridade por nível de gravidade
○ injeção de código, cross-site scripting,
clickjacking
Segurança
Processamento pesado? Grande uso
de memória? Use tarefas assíncronas
Muito uso da rede? Otimize e
compacte as mídias
Tarefas lentas e repetidas? Use cache
Desempenho
Desempenho
Profilers e testes de carga local
Configure servidores Web e de bancos
de dados
Otimize queries, denormalize dados
Com exceção de situações de
emergência, não escale desempenho
ruim causado por erros de código, os
corrija
Mantenha o deploy simples
Escalabilidade
Tenha dashboards com tabelas e
gráficos
Faça projeções
Identifique pontos de melhoria
Não desperdice tempo
Meça e acompanhe
Incentive seus
funcionários
CLT Artigo 473 (IV): O empregado poderá deixar
de comparecer ao serviço sem prejuízo do salário:
por 1 (um) dia, em cada 12 (doze) meses de
trabalho, em caso de doação voluntária de
sangue devidamente comprovada;
Obrigado! paulocheque@gmail.com
Desenvolver
software de
qualidade é criar
conhecimento
Invista em sua
equipe

Más contenido relacionado

Similar a Qualidade com Agilidade para Startups

DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_DesenvolvimentoWagner Zaparoli
 
Aula10 TESI UFS Desenvolvimento de SI
Aula10  TESI  UFS  Desenvolvimento de SIAula10  TESI  UFS  Desenvolvimento de SI
Aula10 TESI UFS Desenvolvimento de SIguest8ae21d
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAndré Abe Vicente
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010Rafael Leonhardt
 
Agile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao DeployAgile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao DeployEduardo Cini
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsRenato Groff
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_EngineeringAula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineeringbaitolakaike
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricaselliando dias
 

Similar a Qualidade com Agilidade para Startups (20)

DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_Desenvolvimento
 
Aula10 TESI UFS Desenvolvimento de SI
Aula10  TESI  UFS  Desenvolvimento de SIAula10  TESI  UFS  Desenvolvimento de SI
Aula10 TESI UFS Desenvolvimento de SI
 
Aula10 TESI UFS Desenvolvimento de SI
Aula10 TESI UFS  Desenvolvimento de SIAula10 TESI UFS  Desenvolvimento de SI
Aula10 TESI UFS Desenvolvimento de SI
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da Indústria
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Tdd e projeto_comperio
Tdd e projeto_comperioTdd e projeto_comperio
Tdd e projeto_comperio
 
BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010BluDotNet - Conhecendo o Team Foundation Server 2010
BluDotNet - Conhecendo o Team Foundation Server 2010
 
Agile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao DeployAgile Testing - Qualidade do Discovery ao Deploy
Agile Testing - Qualidade do Discovery ao Deploy
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
TDD
TDDTDD
TDD
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
QArentena - QA do Futuro
QArentena - QA do FuturoQArentena - QA do Futuro
QArentena - QA do Futuro
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_EngineeringAula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
Aula_4_e_5_-_RUP_Rapid_Unified_Process_Software_Engineering
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricas
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 

Qualidade com Agilidade para Startups