Outubro 2018

Danielle Teixeira Oliveira

Guia de um bom desenvolvimento

por uma analista de requisitos

Danielle Teixeira

Engenheira da Computação por formação, Esp. Dispositivos Mobile e Analista de Requisitos por afinidade

danielleteixeira.eng@gmail.com

  • https://medium.com/lfdev-blog
  • https://www.meetup.com/pt-BR/GDG-Lauro-de-Freitas/
  • https://www.facebook.com/GdgLF
  • Objetivo

  • Ciclo de desenvolvimento

  • Desenvolvimento ruim

  • Armadilhas

  • Dicas de Prevenção

  • Conclusão

  • Referências

Agenda

Objetivo

 

Substituir velhos hábitos de desenvolvimento Usar boas práticas no processo de desenvolvimento de software para não cair em suas próprias armadilhas.

O que queremos como desenvolvedores?

 

Estamos sempre procurando formas
de ganhar tempo e otimizar processos

#Ciclo Desenvolvimento

No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento.

Origem dos erros

  • Não planejamento do escopo
  • Sem time no projeto
  • Prazos curtos
  • Requisitos não mapeados
  • Ausência de protótipo validado
  • Cliente não é envolvido no desenv. do projeto
  • Homologação do sistema é suprimida
  • Procastinação
  • Ambiente não escalável
  • Uso anti-Pattern

Projetos falham?

Projetos não falham. Pessoas falham.

Como não cair em armadilhas?

Com boas práticas de software

Técnicas identificadas como as melhores para  realizar uma determinada tarefa.

O que é ótimo, porque aí podemos usar nosso
tempo no que realmente importa

#Boas práticas

Benefícios 

  • Redução do Ciclo de Desenvolvimento do Software;
  • Permite uma aplicação mais tolerante a falhas;
  • Melhora manutenibilidade;
  • Entregar o produto mais funcional.

#Prevenção: Levantar requisitos

#Prevenção: Levantar requisitos

  • Entrevistas, brainstorms, workshops ... etc
  • Trace o escopo do projeto;
  • Envolva usuário final;
  • Documente;
  • Valide e teste
  • Codifique

#Prevenção: Levantar requisitos

  •  
    • RF01 - validar campo de email;
    • RN02 - Ao clicar no campo de senha, animar coruja;
    • RNF03 - Requisitos de portabilidade. o sistema deverá rodar em qualquer plataforma.

Web?

#Prevenção: Mapear cenários

Mobile?

Embarcado?

#Prevenção: Mapear cenários

Game?

Storyboard: Aborde cenários considerando sequências de cenas, personagens, sons entre outros, proporcionando aos designers a simular situações do projeto.
 

#Prevenção: Faça o protótipo

alta fidelidade
 

baixa fidelidade
 

Média

fidelidade
 

#Não uso de requisitos

  • Baixa qualidade;
  • Retrabalho;
  • Escopo indefinido;
  • Problemas de usabilidade;
  • Insatisfação do cliente;
  • Ciclo de manutenção maior;
  • Vulnerável a falhas e invasões.
  • Processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software.

Iterativo

Incremental

#Prevenção: Seja Ágil

#Prevenção: Modelagem BD

Normalização

  • Evita redundância desnecessária  permitindo fácil acesso às informações;
  • Evita anomalias no banco.

#Prevenção: Modelagem BD

Armadilha

Boa prática

#Prevenção: Querys BD

Armadilha

Boa prática

Com * o SGBD gasta muito tempo percorrendo todos os campos

SELECT * FROM tabelaX
SELECT COLUNA_A, COLUNA_B FROM tabelaX

#Prevenção: Querys BD

UNION

O SGBD não consegue otimizar cláusulas de join ligadas por OR. Neste caso é mais eficiente ligar os conjuntos de resultados por UNION.

SELECT a FROM tab1, tab2 
WHERE tab1.a = tab2.a 
OR tab1.x = tab2.x
SELECT a FROM tab1, tab2 
WHERE tab1.a = tab2.a 
UNION SELECT A FROM tab1, tab2	
WHERE tab1.x = tab2.x

OR

são eliminadas as linhas duplicadas

Armadilha

Boa Prática

#Prevenção: Versionamento

  • Controlar histórico
  • Marcar  e resgatar versões estáveis
  • Ramificar o projeto
  • Segurança
  • Multiplataforma

#Prevenção

Reuso de Software

#Prevenção: Reuso

  • Motor
  • Câmbio
  • Transmissão
  • Rodas
  • Opcionais
  • Cor

Customização em massa


 

#Prevenção: Reuso

É melhor criar um carro novo do zero, ou a partir de uma
plataforma já existente?


 

#Prevenção: Como customizar em massa?

  • ​Definir uma Plataforma

• Partes que podem ser reutilizados em mais
de um produto
• chassis, suspensão, motor, transmissão,
etc.


 

#Prevenção: Reuso

  • Múltiplas instâncias idênticas de um mesmo projeto são produzidas em massa, ao invés de individualmente;


 

Economias de Escala

#Prevenção: Reuso

  • Múltiplos projetos similares, porém distintos, são produzidos em massa, ao invés de individualmente


 

Economias de Escopo

#Prevenção: Reuso

  • GPS


 

O produto

#Prevenção: Padrões de Projeto

  • Documenta boas soluções para problemas recorrentes
  • Reuso de conhecimento anterior documentados em boas práticas
  • Obtidas através de experiências de sucesso na indústria de software

Gang of Four

#Prevenção: Framework a modinha

#Prevenção: Framework a modinha

Escolha

#Conclusão

  • Mapear Necessidades
  • Planejar o projeto
  • Prototipar e validar
  • Envolva cliente/usuário do início ao final
  • Divida as tarefas em ciclos
  • Olho no orçamento e tempo
  • Desenvolva
  • Escreva testes

Onde aprender mais?

Eventos

  • GDG Lauro de Freitas
    • Front Day - 20/10
    • Flutter Study Jam 24/11
      • https://www.meetup.com/pt-BR/GDG-Lauro-de-Freitas/
  • DevFest Feira- 08/12
    • https://gdgfsa.github.io/devfest2018/

Muito obrigada!!!

danielleteixeira.eng

dannyserena

danielleteixeira

Made with Slides.com