Post on 22-Dec-2014
description
Princípios e práticas para incorporar requisitos não-funcionais no desenvolvimento de softwareDanilo Sato@dtsato - www.dtsato.com
Thursday, 27 June 13
Danilo Sato@dtsato - www.dtsato.com
Desenvolvedor, Arquiteto, Coach, DevOps, Treinador
Thursday, 27 June 13
Thursday, 27 June 13
Estamos contratando!
join.thoughtworks.com
Thursday, 27 June 13
Princípios e práticas para incorporar requisitos não-funcionais no desenvolvimento de software
Thursday, 27 June 13
HTTP://WWW.FLICKR.COM/PHOTOS/15436597@N05/2087454556
HEIN?
Thursday, 27 June 13
Princípios e práticas para incorporar requisitos não-funcionais no desenvolvimento de software
Thursday, 27 June 13
Princípios e práticas para incorporar requisitos não-funcionais no desenvolvimento de software
Thursday, 27 June 13
Princípios e práticas para incorporar requisitos não-funcionais no desenvolvimento de software
Thursday, 27 June 13
Requisitos funcionais
Thursday, 27 June 13
Requisitos funcionais
Comportamento esperado do sistema
Funcionalidades
“O que o sistema faz”
Thursday, 27 June 13
Requisitos não-funcionais
Comportamento não esperado do sistema?
Desfuncionalidades?
“O que o sistema não faz”?
Thursday, 27 June 13
Requisitos não-funcionais
Comportamento não esperado do sistema?
Desfuncionalidades?
“O que o sistema não faz”?
Thursday, 27 June 13
Requisitos transversais
Thursday, 27 June 13
Requisitos transversais
Comportamentos transversais do sistema
Restrições
Atributos de qualidade
“Como o sistema deve operar”
Thursday, 27 June 13
NFR
Thursday, 27 June 13
NFR CFRXFR
Thursday, 27 June 13
acessibilidadesegurança
disponibilidadeperformance
escalabilidadelocalização
configurabilidade
Exemplos:
Thursday, 27 June 13
acessibilidadesegurança
disponibilidadeperformance
escalabilidadelocalização
configurabilidade
Exemplos:
Thursday, 27 June 13
acessibilidadesegurança
disponibilidadeperformance
escalabilidadelocalização
configurabilidade
Exemplos:
Thursday, 27 June 13
Como (não) lidar com requisitos transversais?
Thursday, 27 June 13
ESTRATÉGIA COMUM #1ESQUECIMENTO
HTTP://WWW.FLICKR.COM/PHOTOS/LASH9420/7004634470
Thursday, 27 June 13
ESTRATÉGIA COMUM #2EXAGERO
HTTP://WWW.FLICKR.COM/PHOTOS/ANDISAWSPARKS/8069817816
Thursday, 27 June 13
ESTRATÉGIA COMUM #3CAPTURAR E DOCUMENTAR
HTTP://WWW.FLICKR.COM/PHOTOS/VIDEOLUX/2390152100
Thursday, 27 June 13
HTTP://WWW.FLICKR.COM/PHOTOS/MANDYLEH/6365813847
PQ É TÃO DIFÍCIL?
Thursday, 27 June 13
Por que é tão difícil?
Difícil de visualizar
Difícil de mensurar custos
Não só transversais no sistema, mas também entre papéis na equipe:
Desenvolvedores, Arquitetos, QAs, DevOps, Ops, BAs
Thursday, 27 June 13
Soa familiar?
“Arquitetura é tudo aquilo que é difícil de mudar depois”
Thursday, 27 June 13
Soa familiar?
“Arquitetura é tudo aquilo que é difícil de mudar depois”
Thursday, 27 June 13
Requisitos transversais são difíceis de mudar/introduzir depois!
Thursday, 27 June 13
Requisitos transversais influenciam a arquitetura do sistema
Thursday, 27 June 13
Design emergentevs.
Arquitetura evolutiva
Thursday, 27 June 13
Requisitos transversais restringem a evolução da arquitetura
Thursday, 27 June 13
Como definir?
Thursday, 27 June 13
Diferentes ângulos
Thursday, 27 June 13
Diferentes ângulos
Coisas que viram histórias
Thursday, 27 June 13
Diferentes ângulos
Coisas que viram histórias
Coisas que viram padrões
Thursday, 27 June 13
Diferentes ângulos
Coisas que viram histórias
Coisas que viram padrões
Coisas que geram mudanças operacionais
Thursday, 27 June 13
Diferentes ângulos
Coisas que viram histórias
Coisas que viram padrões
Coisas que geram mudanças operacionais
Coisas que influenciam o processo de entrega
Thursday, 27 June 13
Exemplo: Segurança
Coisas que viram histórias:
Processo de autenticação de usuário
Criptografia de senha
Armazenagem criptografada de dados sensíveis
Thursday, 27 June 13
Exemplo: Segurança
Coisas que viram padrões:
Autorização por funcionalidade
Definição de quais dados são sensíveis
Não salvar/comitar senhas em texto puro
Thursday, 27 June 13
Exemplo: Segurança
Coisas que geram mudanças operacionais:
Obter um certificado SSL
Configuração do firewall
Rotação de chaves SSH
Thursday, 27 June 13
Exemplo: Segurança
Coisas que influenciam o processo de entrega:
Testes de penetração
Gerenciamento de configuração para senhas
Validar assinatura de pacotes
Thursday, 27 June 13
Quais tipos?
Thursday, 27 June 13
Thursday, 27 June 13
35+Thursday, 27 June 13
Thursday, 27 June 13
acessibilidade
Thursday, 27 June 13
acessibilidaderetenção
Thursday, 27 June 13
acessibilidaderetençãoaudição
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurança
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidade
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidade
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalização
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falha
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicação
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicaçãoajuda
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicaçãoajudalegal
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicaçãoajudalegal
localização
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicaçãoajudalegal
localizaçãoperformance
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicaçãoajudalegal
localizaçãoperformance
escalabilidade
Thursday, 27 June 13
acessibilidaderetençãoaudiçãosegurançadisponibilidadecontinuidadepersonalizaçãotolerância a falhaconfiabilidade
integridade de dados
localicaçãoajudalegal
localizaçãoperformance
escalabilidadeusabilidade
Thursday, 27 June 13
É MUITA COISA!
HTTP://WWW.FLICKR.COM/PHOTOS/JMW125/4630264860Thursday, 27 June 13
Como incorporar?
Thursday, 27 June 13
É mais difícil lidar de uma só vez ao invés de pagar pouco a pouco
Thursday, 27 June 13
Início Durante Depois
Thursday, 27 June 13
Início Durante Depois
Decida com a equipe e o cliente quais os principais
Thursday, 27 June 13
Início Durante Depois
Thursday, 27 June 13
Início Durante Depois
Thursday, 27 June 13
Início Durante Depois
Escalabilidade
Performance
Segurança
Thursday, 27 June 13
Início Durante Depois
Risco?
Impacto?
Nível de entendimento?
Thursday, 27 June 13
Início Durante Depois
Thursday, 27 June 13
Início Durante Depois
Decida com a equipe e o cliente como acompanhar
Thursday, 27 June 13
Início Durante Depois
Capture e priorize histórias com base no risco e impacto
Thursday, 27 June 13
Início Durante Depois
Avalie padrões como critérios de aceitação por história
Thursday, 27 June 13
Início Durante Depois
Use métricas de acompanhamento
Thursday, 27 June 13
Início Durante Depois
Tempo de resposta ideal: < 20msExemplo:
Thursday, 27 June 13
Início Durante Depois
Tempo de resposta ideal: < 20ms
Média? Mediana?
Exemplo:
Thursday, 27 June 13
Início Durante Depois
Tempo de resposta ideal: < 20ms
Média? Mediana? 99 percentil
Exemplo:
Thursday, 27 June 13
Início Durante Depois
Tempo de resposta ideal: < 20ms
Média? Mediana?
Para tudo?
99 percentil
Exemplo:
Thursday, 27 June 13
Início Durante Depois
Tempo de resposta ideal: < 20ms
Média? Mediana?
Para tudo?
99 percentil
Pro que importa
Exemplo:
Thursday, 27 June 13
Início Durante Depois
Tempo de resposta ideal: < 20ms
Média? Mediana?
Para tudo?
Quanto custa se passar?
99 percentil
Pro que importa
Exemplo:
Thursday, 27 June 13
Início Durante Depois
Inclua testes automatizados na pipeline de entrega
Thursday, 27 June 13
Início Durante Depois
Exemplos:
Thursday, 27 June 13
Início Durante Depois
Testes de Performance
Exemplos:
Thursday, 27 June 13
Início Durante Depois
Testes de Performance
Testes de Carga
Exemplos:
Thursday, 27 June 13
Início Durante Depois
Testes de Performance
Testes de Carga
Testes de Stress
Exemplos:
Thursday, 27 June 13
Início Durante Depois
Testes de Performance
Testes de Carga
Testes de Stress
Exemplos:
Testes de Usabilidade
Thursday, 27 June 13
Início Durante Depois
Testes de Performance
Testes de Carga
Testes de Stress
Exemplos:
Testes de Usabilidade
Teste de Longevidade
Thursday, 27 June 13
Início Durante Depois
Incorpore feedback e aprendizado de produção
Thursday, 27 June 13
Início Durante Depois
Monitore, monitore, monitore
Thursday, 27 June 13
Início Durante Depois
Ensaie cenários esperados
Thursday, 27 June 13
E quando não fiz isso?
Thursday, 27 June 13
HTTP://BIT.LY/MANAGE-TECH-DEBTThursday, 27 June 13
Perguntas?Danilo Sato@dtsato - www.dtsato.com
Thursday, 27 June 13