como manter a qualidade do seu projeto sem perder a sua sanidade!

80
Como manter a qualidade do seu projeto sem perder a sua sanidade! Elton Minetto - @eminetto

Upload: elton-minetto

Post on 16-Apr-2017

845 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Como manter aqualidadedo seu projeto sem perder a sua

sanidade!Elton Minetto - @eminetto

Page 2: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Queproblemasos projetos enfrentam em 2016?

Page 3: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Para cada $1 bilhão investido nos EUA, $122 milhões são perdidos devido a falta de performance em projetos.(Source: PMI.org)

Page 4: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Menos de um terço de todos os projetos foram finalizados dentro do prazo e orçamento no último ano (2015)(Source: Standish Group)

Page 5: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Pressão para cumprir prazos irreais é a maior razão de código ser lançado antes de estar pronto.

81% dos desenvolvedores admitiram liberar código antes de estar pronto.

(Source: Gitlab 2016 Global Developer Report)

Page 6: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Como resolver esses problemas *?

Page 7: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Como resolver esses problemas *?— Metodologias

Page 8: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Como resolver esses problemas *?— Metodologias

— Ferramentas

Page 9: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Como resolver esses problemas *?— Metodologias

— Ferramentas

— Métricas

* IMHO

Page 10: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias

Page 11: Como manter a qualidade do seu projeto sem perder a sua sanidade!

(

Page 12: Como manter a qualidade do seu projeto sem perder a sua sanidade!

IterativoxInterativo

Page 13: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Iterativo se refere a ciclo, repetição. Uma iteração é um ciclo ou uma etapa de uma rotina maior.

Interativo se refere a relacionamento, comunicação. Uma interação é uma ação mútua, uma entidade agindo sobre a outra ou vice-versa.

Page 14: Como manter a qualidade do seu projeto sem perder a sua sanidade!

)

Page 15: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias ágeis "iterativas"

Page 16: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias ágeis "iterativas"— Scrum

Page 17: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias ágeis "iterativas"— Scrum

— Kanban

Page 18: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias ágeis "interativas"

Page 19: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias ágeis "interativas"— InnerSource

Page 20: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Metodologias ágeis "interativas"— InnerSource

— ConvDev

Page 21: Como manter a qualidade do seu projeto sem perder a sua sanidade!

InnerSource

InnerSource usa as lições aprendidas do desenvolvimento de software de código aberto e as aplica para a forma como as empresas desenvolvem software internamente. Para as empresas o InnerSource pode ser uma grande ferramenta para ajudar a quebrar silos, incentivar a colaboração interna, acelerar o on-boarding de novos engenheiros, e identificar oportunidades de contribuir para o mundo de código aberto.

Page 22: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

Page 23: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Comunicação

Page 24: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Comunicação

— Transparência

Page 25: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Comunicação

— Transparência

— Colaboração

Page 26: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Comunicação

— Transparência

— Colaboração

— Comunidade

Page 27: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Comunicação

— Transparência

— Colaboração

— Comunidade

— Meritocracia

Page 28: Como manter a qualidade do seu projeto sem perder a sua sanidade!

ConvDev

ConvDev (Conversational Development) é uma evolução natural do desenvolvimento de software. Ele incentiva a conversa entre grupos funcionais através de todo o processo de desenvolvimento de software, permitindo que os desenvolvedores possam manter um histórico de toda evolução em uma forma coesa e intuitiva. ConvDev acelera o ciclo de vida do desenvolvimento incentivando a colaboração e o compartilhamento desde a ideia até o lançamento em produção.

Page 29: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

Page 30: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Reduzir o ciclo de entrega, aumentando a efetividade

Page 31: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Reduzir o ciclo de entrega, aumentando a efetividade

— Monitorar o processo desde a ideia até o lançamento em produção

Page 32: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Reduzir o ciclo de entrega, aumentando a efetividade

— Monitorar o processo desde a ideia até o lançamento em produção

— As conversas devem fluir entre todos os estágios

Page 33: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Reduzir o ciclo de entrega, aumentando a efetividade

— Monitorar o processo desde a ideia até o lançamento em produção

— As conversas devem fluir entre todos os estágios

— Todos os envolvidos no projeto fazem parte da conversa

Page 34: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Princípios

— Reduzir o ciclo de entrega, aumentando a efetividade

— Monitorar o processo desde a ideia até o lançamento em produção

— As conversas devem fluir entre todos os estágios

— Todos os envolvidos no projeto fazem parte da conversa

— Toda a empresa pode contribuir com o processo

Page 35: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Benefícios

Page 36: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Benefícios

— Entregar mudanças menores e mais simples é mais eficiente

Page 37: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Benefícios

— Entregar mudanças menores e mais simples é mais eficiente

— Interações frequentes geram melhores coletas de informações

Page 38: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Benefícios

— Entregar mudanças menores e mais simples é mais eficiente

— Interações frequentes geram melhores coletas de informações

— Velocidade para responder às necessidades do mercado

Page 39: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Benefícios

— Entregar mudanças menores e mais simples é mais eficiente

— Interações frequentes geram melhores coletas de informações

— Velocidade para responder às necessidades do mercado

— Maior previsibilidade

Page 40: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Benefícios

— Entregar mudanças menores e mais simples é mais eficiente

— Interações frequentes geram melhores coletas de informações

— Velocidade para responder às necessidades do mercado

— Maior previsibilidade

— Maior senso de progresso

Page 41: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Ferramentas

Page 42: Como manter a qualidade do seu projeto sem perder a sua sanidade!

as que nós usamos...

Page 43: Como manter a qualidade do seu projeto sem perder a sua sanidade!

... hoje

Page 44: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Unit testing

Page 45: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Unit testing

— PHPUnit

Page 46: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Unit testing

— PHPUnit

— Karma

Page 47: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Unit testing

— PHPUnit

— Karma

— Jasmine

Page 48: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Unit testing

— PHPUnit

— Karma

— Jasmine

— Mocha

Page 49: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Continuous integration

Page 50: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Continuous integration

— Buildkite

Page 51: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Continuous integration

— Buildkite

— DeployBot

Page 52: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Code reviews

Page 53: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Code reviews

— Github/Bitbucket

Page 54: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Code coverage reports

Page 55: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Code coverage reports

— PHPUnit

Page 56: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Code coverage reports

— PHPUnit

— Codecov

Page 57: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Static analysis

Page 58: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Static analysis

— PHPCS

Page 59: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Static analysis

— PHPCS

— eslint

Page 60: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Static analysis

— PHPCS

— eslint

— Git hooks

Page 61: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Static analysis

— PHPCS

— eslint

— Git hooks

— Codacy

Page 62: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Performance tools

Page 63: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Performance tools

— Sentry

Page 64: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Performance tools

— Sentry

— xhprof

Page 65: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Performance tools

— Sentry

— xhprof

— Xdebug

Page 66: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Performance tools

— Sentry

— xhprof

— Xdebug

— New Relic

Page 67: Como manter a qualidade do seu projeto sem perder a sua sanidade!

DevOps tools

Page 68: Como manter a qualidade do seu projeto sem perder a sua sanidade!

DevOps tools

— Docker

Page 69: Como manter a qualidade do seu projeto sem perder a sua sanidade!

DevOps tools

— Docker

— shell script

Page 70: Como manter a qualidade do seu projeto sem perder a sua sanidade!

DevOps tools

— Docker

— shell script

— e mais shell script

Page 71: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Tasks

Page 72: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Tasks

— Trello

Page 73: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Tasks

— Trello

— Github Issues + Waffle

Page 74: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Métricas

Page 75: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Lead Time

A diferença entre o momento que a tarefa é criada e o momento que ela entra em seu estado final.

Page 76: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Cycle Time

A diferença entre o momento que a tarefa é considerada “em progresso” até o momento que ela entra em seu estado final.

Page 77: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Response Time

O intervalo de tempo desde a criação da tarefa e o início do trabalho.

Page 78: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Takt Time

É a quantia máxima de tempo que uma tarefa precisa ser entregue para satisfazer a demanda do projeto. O termo vem do alemão Taktzeit, onde Takt significa compasso, ritmo, pulso e Zeit significa tempo, período

Page 80: Como manter a qualidade do seu projeto sem perder a sua sanidade!

Contato

[email protected]://planrockr.comhttp://coderockr.comhttp://eltonminetto.net@eminetto