Desenvolvimento Orientado a Qualidade

Preview:

Citation preview

Desenvolvimento orientado a qualidade

Huge

12 de maio, 2016

Isabella Silveira Front-End Developer @ Huge.

Front-End, Back-End, Agilee Integração Contínua.

1. Introdução

2. O que é qualidade de software?

3. Processo de desenvolvimento 4. Pilares 5. Conclusão

Agenda

Introdução.

Hoje em dia, a qualidade é um diferencial em tudo que

consumimos.

Mas como definir qualidade de software como um todo?

O que é qualidade de

software?

Produtos de software !=

produtos industrializados.

Processos de manufatura são lineares e repetitivos.

A inovação está por toda parte nos processos de desenvolvimento.

Definindo o software ideal.O que é qualidade de software?

Definindo o software ideal.

1. Eficiente.2. Escalável.3. Confiável.

Qualidade está intrinsecamente ligada ao valor de um produto.

Processo de desenvolvimento.

Processo de desenvolvimento.

1. Conceito.2. Implementação.3. Software final.

Stakeholders.Processo de desenvolvimento

Stakeholders.

1. Clientes.2. Usuários.3. Desenvolvedores.

Pilares.

Pilares.

1. Qualidade funcional.2. Qualidade estrutural.3. Qualidade de processo.

Qualidade funcional.Pilares

Consiste na eficiência do código, no quão bem a aplicação cumpre

o seu papel.

Usuários são os maiores interessados neste aspecto da aplicação.

“Mas o que define qualidade funcional?”

Qualidade funcional: 1. Cumprir com os requisitos.2. Ter poucos bugs.3. Ter boa performance.

4. Ter boa UX.

Qualidade funcional: 1. Cumprir com os requisitos.2. Ter poucos bugs.3. Ter boa performance.

4. Ter boa UX.

Sine qua non da qualidade funcional.

Qualidade funcional: 1. Cumprir com os requisitos.2. Ter poucos bugs.3. Ter boa performance.

4. Ter boa UX.

Bugs comprometem a confiabilidade do sistema.

Qualidade funcional: 1. Cumprir com os requisitos.2. Ter poucos bugs.3. Ter boa performance.

4. Ter boa UX.

Você conhece alguma aplicação boa e lenta?

Qualidade funcional: 1. Cumprir com os requisitos.2. Ter poucos bugs.3. Ter boa performance.

4. Ter boa UX.

Para os usuários, a aplicação basicamente se resume à interface.

Ferramentas e aliados.Qualidade funcional

Testes automatizados.

Load testing.

Security testing.

+

Qualidade estrutural.Pilares

Caracteriza a qualidade do código escrito; o quão bem ele é estruturado.

Desenvolvedores são o “público alvo”.

Qualidade estrutural:1. Código testável.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Qualidade estrutural:1. Código testável.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Funções limpas, claras e atômicas.Cada função lida apenas com uma responsabilidade.

Qualidade funcional: 1. Código testável.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Código manutenível.Sim, eu procurei essa palavra no Google.

O quão fácil é mudar o código sem introduzir novos bugs?

Qualidade funcional: 1. Código testável.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Funções e variáveis claras e explícitas.Isso facilita a compreensão e assimilação do código por novos desenvolvedores e acelera a implementação de novas features.

Qualidade funcional: 1. Código testável.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Código confiável e de rápida execução.

Qualidade funcional: 1. Cumpre com os requisitos.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Sem brechas de segurança, não deve permitir ataques ou SQL injections.

Qualidade estrutural:1. Código testável.2. Código sustentável.3. Código legível.

4. Código eficiente.

5. Código seguro.

6. Código escalável.

Design pattern e código modularizado.Permite a implementação de novas features em menos tempo e menor ocorrência de bugs e erros de regressão.

Ferramentas e aliados.Qualidade funcional

Análise de complexidade.

plato

Linters.

Refactoring.

Qualidade de processo.Pilares

É a qualidade do processo de implementação do produto.

Clientes e membros do projeto são os mais afetados.

Qualidade de processo:1. Respeitar prazos de entrega.2. Respeitar o orçamento original.3. Alinhamento entre a equipe.4. Processo de entrega consistente.

Qualidade de processo:1. Respeitar prazos de entrega.2. Respeitar o orçamento original.

3. Alinhamento entre a equipe.4. Processo de entrega consistente.

O software foi entregue no prazo estipulado?

Qualidade de processo:1. Respeitar prazos de entrega.2. Respeitar o orçamento original.

3. Alinhamento entre a equipe.3. Processo de entrega consistente.

O software foi entregue de acordo com o orçamento original?

Qualidade de processo:1. Respeitar prazos de entrega.2. Respeitar o orçamento original.

3. Alinhamento entre a equipe.4. Processo de entrega consistente.

Desenvolvedores e designers estarem em sintonia com o gerente de

projeto é fundamental.

Qualidade de processo:1. Respeitar prazos de entrega.2. Respeitar o orçamento original.

3. Alinhamento entre a equipe.4. Processo de entrega consistente.

Ponto chave da qualidade de processo.

Ferramentas e aliados.Qualidade de processo

Métricas ágeis.

Gráfico de Burndown.

Scrumboard.

Conclusão.

Equilíbrio é fundamental.

Qualidade agrega valor à sua aplicação.

Não sacrifique qualidade por desempenho.

Qualidade de software não é opcional.

Questions?

Get in touch./in/isabellasilveira

isilveira@hugeinc.com

@silveira_bells

/bella-silveira

Recommended