2. Quem sou eu
• Natalense
• Engenheiro de Computação – UFRN 98
• 10+ de programação
• Clipper, Pascal, C, C++, Delphi, PHP, Perl, C#, Java, Ruby, Python...
• IBMista a ~1 ano
• Desenvolvimento do Maximo Scheduler+
• Grupo de CD e Unit Tests
3. Computação Ontem e Hoje
Console do operador do IBM 701, autor da foto: Dan (Flicker)
Emulador de dBase:
https://archive.org/details/msdos_shareware_fb_DR
EPORT
4. Computação Ontem e Hoje
Fonte:
http://www.informatio
nisbeautiful.net/visualiz
ations/million-lines-of-
code/
7. O que são essas armadilhas
1. Público ignorado
2. Procedimentos
1. Não priorizados durante o planejamento
2. ignorados durante o desenvolvimento
3. Por que é uma armadilha:
• Complexidade de desenvolvimento aumenta
• Não vende
• Maior esforço de testes
• Maior Infraestrutura
• Apoio especializado
• Não está no radar das pessoas envolvidas
Retrabalho
8. O que vou falar
• Baseadas em experiência e ensinamentos
• Não são verdade absolutas
• Ponto de vista para consideração
• Dicas do que ficar de olho
9. Acessibilidade
• Dados do IBGE revelam que 6,2% da população brasileira tem algum
tipo de deficiência. (~12,4 milhões de pessoas)
• Dentre os tipos de deficiência pesquisados, a visual é a mais
representativa e atinge 3,6% dos brasileiros, sendo mais comum entre
as pessoas com mais de 60 anos (11,5%).
Fonte: http://www.ebc.com.br/noticias/2015/08/ibge-62-da-populacao-tem-algum-tipo-de-deficiencia
11. Acessibilidade
• O que fazer?
• Conheça as deficiências e como elas podem afetar o uso de aplicações
• Empresas especializadas
• Suporte de Sistemas Operacionais, HTML, iOS, Android, ...
• Testes de acessibilidades
• Usuários alpha, beta com deficiências
12. Internacionalização
• Que língua seus usuários falam?
• Aplicações são globais
• Sua aplicação suporta uma mudança de idioma?
• E escritas com diferentes direcionalidades?
13. Internacionalização
• O que fazer?
• Serviços de tradutores
• Bateria de testes em diferentes idiomas
• Testem as mensagens de erro
• Conheça o suporte das plataformas utilizadas
15. Baixa Conectividade
• Como sua aplicação se comporta no mundo real?
• Ambiente de desenvolvimento x mão do usuário
• 3G, Edge, GPRS...
• Conexão intermitente
• Não estamos mais programando apenas para computadores de mesa
16. Baixa Conectividade
• O que fazer?
• Não deixe sua aplicação travar
• Tratamentos de chamadas assíncronas: Promises, Futures
• Dê opção de cancelamento da requisição
• Realize testes com baixa conectividade
• Carregue os dados por partes
• O mais importante, antes
• Cache offline, salve para mais tarde
17. Baixa Conectividade
Enviar
A operação está
levando mais tempo
do que deveria.
Cancelar
Suas informações foram
salvas para serem enviadas
mais tarde.
EnviarEnviar
Salvando dados
Cancelar
18. Massa de Dados
O caso da página que levava 20 minutos para abrir
19. Massa de Dados
• Qual a ordem de magnitude da quantidade de dados sua aplicação
suporta?
• 10 registros, 100 registros, 10000 registros
• Se não há limites, quer dizer que há um limite e você não sabe qual é
20. Massa de Dados
• O que fazer?
• Além das dicas de Baixa Conectividade.
• Não comece otimizando.
• Esteja ciente da necessidade.
• Teste de carga com dados falsos.
• Questione quanto de dados determinada tela ou funcionalidade vai precisar
processar.
• Ninguém vai saber responder, então estime ordem de magnitude.
22. Refatoração
• Ninguém é perfeito na primeira iteração
• O mundo muda e os requisitos também
• Não existe código perfeito
• Não existe dono do código
23. Refatoração
• O que fazer?
• Revise o seu código
• Revise o código do parceiro
• Programe em pares
• Revise em pares
• Fique atento ao code smells
• Sugira mudanças
• Use ferramentas de análise de código, trace objetivos
• Abra tickets para futuros refatoramentos
25. Testes automatizados
• Quantos testes automatizados existem na sua aplicação?
• Prova que funciona
• Melhora seu design
• Documentação
• Traz paz de espirito durante o refatoramento
26. Testes automatizados
• O que fazer?
• Conheça as técnicas
• TDD
• Red-Green-Refactor
• Aplique no seu dia a dia
• Não precisa de aprovação gerencial
• O tempo usado na criação dos testes vai ser recuperado no futuro
28. Logs e Relatórios
• O que sua aplicação faz quando falha catastroficamente?
• Sua aplicação vai quebrar em produção
• O usuário vai fazer um fluxo inesperado
• A sua aplicação vai fechar na cara do seu usuário
• Falhe com elegância
29. Logs e Relatórios
• O que fazer?
• Tenha uma forma de habilitar criação de log
• Gere relatórios com os erros
• Tem que ser amigável
31. Privacidade
• Como sua aplicação trata os dados de seus usuários?
• Manipulamos dados sensíveis
• Ética e Responsabilidade são necessários
• Como a informação é enviada, recebida e armazenada?
• Você realmente precisa de todas essas informações?
• Como você armazena senhas? Como elas são recuperadas?
• Você realmente precisa da localização? E do acesso as fotos?
32. Privacidade
• O que fazer?
• Trabalhe perto da equipe de segurança da informação
• Criptografe dados sensíveis (ou melhor, nem guarde)
• Use embaralhadores de dados
• Seja claro quando pedir algum tipo de acesso: Porquê? Por quanto tempo?
• Tenha claro e sucinto a política de uso de dados sensíveis.
33. Conclusão
• Mundo real é mais complicado
• Sempre existirão concessões
• Planejamento de um projeto é um cabo de guerra
Perguntas?
Contato:
Email: jraposo@br.ibm.com
Twitter: @jamersonlima
Hinweis der Redaktion
Calculos de funções matemáticas
Relatórios
Uma caixinha no processo
Poucos privilegiados
Numero de linhas de codigo
Coisas com software hoje em dia
TV com update
Nespresso com conexão bluetooth
Carro com recall de update
Marcapasso hackeado
Numero de linhas de codigo
Coisas com software hoje em dia
TV com update
Nespresso com conexão bluetooth
Carro com recall de update
Marcapasso hackeado
Numero de linhas de codigo
Coisas com software hoje em dia
TV com update
Nespresso com conexão bluetooth
Carro com recall de update
Marcapasso hackeado
Não sou especialistas nos assuntos
Mas gerar discussão e trazer os especialistas
Não sou especialistas nos assuntos
Mas gerar discussão e trazer os especialistas
População envelhece & Adoção da tecnologia aumenta: Porcentagem tende a aumentar
Voce pode perder usuários que desenvolvem deficiencias permanentes ou temporárias
Voce pode perder usuários para concorrentes acessíveis
Sempre negligenciada nas estimativas, sempre no futuro
População envelhece & Adoção da tecnologia aumenta: Porcentagem tende a aumentar
Voce pode perder usuários que desenvolvem deficiencias permanentes ou temporárias
Voce pode perder usuários para concorrentes acessíveis
Sempre negligenciada nas estimativas, sempre no futuro
Pode aumentar letras?
Contraste de cor
Leitor de tela
Tags nas imagens
Maximo e guidelines
Aplicações globais não são que falam só inglês
Tradutores: não só pessoas que conheçam as línguas
Mobile permite ter várias línguas, permite identificar a direcionalidade da língua
Exemplo: Lider de venda de Smart TV, producao de aplicações
Linguas: Ingles e Japones
Aplicações globais não são que falam só inglês
Por pior que você ache seu ambiente de dev, o usuario sempre vai ser pior
Desktop com banda larga estável x Cabo de rede, wifi, conexão de dados
Falta de banda largar, no máximo 3g, normalmente edge
Conexao itermitente
Por pior que você ache seu ambiente de dev, o usuario sempre vai ser pior
Falta de banda largar, no máximo 3g, normalmente edge
Conexao itermitente
Uso de proxies
iOS permite selecionar a velocidade de conexão
Novos browsers possuem db local nativo
Exemplo: Sistema de gestão de ads, banners offlines, comunicacao sem travar
Por pior que você ache seu ambiente de dev, o usuario sempre vai ser pior
Falta de banda largar, no máximo 3g, normalmente edge
Conexao itermitente
Uso de proxies
iOS permite selecionar a velocidade de conexão
Novos browsers possuem db local nativo
Exemplo de sistema de gestão de tickets, dados fake, 5 a 20 min carregando uma página
Exemplo de sistema de gestão de tickets, dados fake, 5 a 20 min carregando uma página
Advinhar onde vai precisar ser otimizado é um tiro no pé
O começo do projeto muita coisa ainda está em definição
Mas sempre mantenha a preocupação no fundo da cabeça
Ninguem vai saber responder a não ser que seja uma app q substitui uma já online
Advinhar onde vai precisar ser otimizado é um tiro no pé
O começo do projeto muita coisa ainda está em definição
Mas sempre mantenha a preocupação no fundo da cabeça
Ninguem vai saber responder a não ser que seja uma app q substitui uma já online
Exemplo Europa Sprint com historia de refatoracao
Exemplo Europa Sprint com historia de refatoracao
Ferramentas de naálise de código
Não a toa vem depois de refatoramento
Não a toa vem depois de refatoramento
Amigável no sentido de que o usuário não deve fazer vários passos para conseguir enviar o log
Exemplo de várias apps que travam e perguntam se querem que envie relatório. Chrome?
Caso do Chaos Monkey da Netflix
Amigável no sentido de que o usuário não deve fazer vários passos para conseguir enviar o log
Exemplo de várias apps que travam e perguntam se querem que envie relatório. Chrome?
Caso do Chaos Monkey da Netflix
Caso do Uber capturando localizacao todo o tempo
Caso do Uber capturando localizacao todo o tempo
Escrever para leigo entender