Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Como manter a
qualidade
do seu projeto sem perder a sua
sanidade!
Elton Minetto - @eminetto
Que
problemas
os projetos enfrentam em 2016?
Para cada $1 bilhão investido nos EUA, $122 milhões
são perdidos devido a falta de performance em projetos.
(Source: PMI.o...
Menos de um terço de todos os projetos foram
finalizados dentro do prazo e orçamento no último
ano (2015)
(Source: Standis...
Pressão para cumprir prazos irreais é a maior razão
de código ser lançado antes de estar pronto.
81% dos desenvolvedores a...
Como resolver esses problemas *?
Como resolver esses problemas *?
— Metodologias
Como resolver esses problemas *?
— Metodologias
— Ferramentas
Como resolver esses problemas *?
— Metodologias
— Ferramentas
— Métricas
* IMHO
Metodologias
(
Iterativo
x
Interativo
Iterativo se refere a ciclo, repetição. Uma iteração é um
ciclo ou uma etapa de uma rotina maior.
Interativo se refere a r...
)
Metodologias ágeis "iterativas"
Metodologias ágeis "iterativas"
— Scrum
Metodologias ágeis "iterativas"
— Scrum
— Kanban
Metodologias ágeis "interativas"
Metodologias ágeis "interativas"
— InnerSource
Metodologias ágeis "interativas"
— InnerSource
— ConvDev
InnerSource
InnerSource usa as lições aprendidas do
desenvolvimento de software de código aberto e as
aplica para a forma ...
Princípios
Princípios
— Comunicação
Princípios
— Comunicação
— Transparência
Princípios
— Comunicação
— Transparência
— Colaboração
Princípios
— Comunicação
— Transparência
— Colaboração
— Comunidade
Princípios
— Comunicação
— Transparência
— Colaboração
— Comunidade
— Meritocracia
ConvDev
ConvDev (Conversational Development) é uma evolução
natural do desenvolvimento de software. Ele incentiva a
conver...
Princípios
Princípios
— Reduzir o ciclo de entrega, aumentando a efetividade
Princípios
— Reduzir o ciclo de entrega, aumentando a efetividade
— Monitorar o processo desde a ideia até o lançamento
em...
Princípios
— Reduzir o ciclo de entrega, aumentando a efetividade
— Monitorar o processo desde a ideia até o lançamento
em...
Princípios
— Reduzir o ciclo de entrega, aumentando a efetividade
— Monitorar o processo desde a ideia até o lançamento
em...
Princípios
— Reduzir o ciclo de entrega, aumentando a efetividade
— Monitorar o processo desde a ideia até o lançamento
em...
Benefícios
Benefícios
— Entregar mudanças menores e mais simples é mais
eficiente
Benefícios
— Entregar mudanças menores e mais simples é mais
eficiente
— Interações frequentes geram melhores coletas de
i...
Benefícios
— Entregar mudanças menores e mais simples é mais
eficiente
— Interações frequentes geram melhores coletas de
i...
Benefícios
— Entregar mudanças menores e mais simples é mais
eficiente
— Interações frequentes geram melhores coletas de
i...
Benefícios
— Entregar mudanças menores e mais simples é mais
eficiente
— Interações frequentes geram melhores coletas de
i...
Ferramentas
as que nós usamos...
... hoje
Unit testing
Unit testing
— PHPUnit
Unit testing
— PHPUnit
— Karma
Unit testing
— PHPUnit
— Karma
— Jasmine
Unit testing
— PHPUnit
— Karma
— Jasmine
— Mocha
Continuous integration
Continuous integration
— Buildkite
Continuous integration
— Buildkite
— DeployBot
Code reviews
Code reviews
— Github/Bitbucket
Code coverage reports
Code coverage reports
— PHPUnit
Code coverage reports
— PHPUnit
— Codecov
Static analysis
Static analysis
— PHPCS
Static analysis
— PHPCS
— eslint
Static analysis
— PHPCS
— eslint
— Git hooks
Static analysis
— PHPCS
— eslint
— Git hooks
— Codacy
Performance tools
Performance tools
— Sentry
Performance tools
— Sentry
— xhprof
Performance tools
— Sentry
— xhprof
— Xdebug
Performance tools
— Sentry
— xhprof
— Xdebug
— New Relic
DevOps tools
DevOps tools
— Docker
DevOps tools
— Docker
— shell script
DevOps tools
— Docker
— shell script
— e mais shell script
Tasks
Tasks
— Trello
Tasks
— Trello
— Github Issues + Waffle
Métricas
Lead Time
A diferença entre o momento que a tarefa é criada e o
momento que ela entra em seu estado final.
Cycle Time
A diferença entre o momento que a tarefa é considerada
“em progresso” até o momento que ela entra em seu
estado...
Response Time
O intervalo de tempo desde a criação da tarefa e o início
do trabalho.
Takt Time
É a quantia máxima de tempo que uma tarefa precisa
ser entregue para satisfazer a demanda do projeto. O
termo ve...
Referências
O que é Lead time, Cycle Time e Reaction Time?
InnerSource Commons
InnerSource
Convdev
Diferença entre iterati...
Contato
eminetto@coderockr.com
http://planrockr.com
http://coderockr.com
http://eltonminetto.net
@eminetto
Upcoming SlideShare
Loading in …5
×

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

1,022 views

Published on

Tarefas, códigos, equipes, ferramentas, comunicação... Tudo isso pode tornar o dia a dia de um projeto algo caótico. Nestes slides apresento algumas boas práticas e lições que aprendemos no decorrer dos últimos anos gerenciando e criando software para clientes de diversos portes

Published in: Technology

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

  1. 1. Como manter a qualidade do seu projeto sem perder a sua sanidade! Elton Minetto - @eminetto
  2. 2. Que problemas os projetos enfrentam em 2016?
  3. 3. Para cada $1 bilhão investido nos EUA, $122 milhões são perdidos devido a falta de performance em projetos. (Source: PMI.org)
  4. 4. Menos de um terço de todos os projetos foram finalizados dentro do prazo e orçamento no último ano (2015) (Source: Standish Group)
  5. 5. 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)
  6. 6. Como resolver esses problemas *?
  7. 7. Como resolver esses problemas *? — Metodologias
  8. 8. Como resolver esses problemas *? — Metodologias — Ferramentas
  9. 9. Como resolver esses problemas *? — Metodologias — Ferramentas — Métricas * IMHO
  10. 10. Metodologias
  11. 11. (
  12. 12. Iterativo x Interativo
  13. 13. 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.
  14. 14. )
  15. 15. Metodologias ágeis "iterativas"
  16. 16. Metodologias ágeis "iterativas" — Scrum
  17. 17. Metodologias ágeis "iterativas" — Scrum — Kanban
  18. 18. Metodologias ágeis "interativas"
  19. 19. Metodologias ágeis "interativas" — InnerSource
  20. 20. Metodologias ágeis "interativas" — InnerSource — ConvDev
  21. 21. 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.
  22. 22. Princípios
  23. 23. Princípios — Comunicação
  24. 24. Princípios — Comunicação — Transparência
  25. 25. Princípios — Comunicação — Transparência — Colaboração
  26. 26. Princípios — Comunicação — Transparência — Colaboração — Comunidade
  27. 27. Princípios — Comunicação — Transparência — Colaboração — Comunidade — Meritocracia
  28. 28. 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.
  29. 29. Princípios
  30. 30. Princípios — Reduzir o ciclo de entrega, aumentando a efetividade
  31. 31. Princípios — Reduzir o ciclo de entrega, aumentando a efetividade — Monitorar o processo desde a ideia até o lançamento em produção
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. Benefícios
  36. 36. Benefícios — Entregar mudanças menores e mais simples é mais eficiente
  37. 37. Benefícios — Entregar mudanças menores e mais simples é mais eficiente — Interações frequentes geram melhores coletas de informações
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. Ferramentas
  42. 42. as que nós usamos...
  43. 43. ... hoje
  44. 44. Unit testing
  45. 45. Unit testing — PHPUnit
  46. 46. Unit testing — PHPUnit — Karma
  47. 47. Unit testing — PHPUnit — Karma — Jasmine
  48. 48. Unit testing — PHPUnit — Karma — Jasmine — Mocha
  49. 49. Continuous integration
  50. 50. Continuous integration — Buildkite
  51. 51. Continuous integration — Buildkite — DeployBot
  52. 52. Code reviews
  53. 53. Code reviews — Github/Bitbucket
  54. 54. Code coverage reports
  55. 55. Code coverage reports — PHPUnit
  56. 56. Code coverage reports — PHPUnit — Codecov
  57. 57. Static analysis
  58. 58. Static analysis — PHPCS
  59. 59. Static analysis — PHPCS — eslint
  60. 60. Static analysis — PHPCS — eslint — Git hooks
  61. 61. Static analysis — PHPCS — eslint — Git hooks — Codacy
  62. 62. Performance tools
  63. 63. Performance tools — Sentry
  64. 64. Performance tools — Sentry — xhprof
  65. 65. Performance tools — Sentry — xhprof — Xdebug
  66. 66. Performance tools — Sentry — xhprof — Xdebug — New Relic
  67. 67. DevOps tools
  68. 68. DevOps tools — Docker
  69. 69. DevOps tools — Docker — shell script
  70. 70. DevOps tools — Docker — shell script — e mais shell script
  71. 71. Tasks
  72. 72. Tasks — Trello
  73. 73. Tasks — Trello — Github Issues + Waffle
  74. 74. Métricas
  75. 75. Lead Time A diferença entre o momento que a tarefa é criada e o momento que ela entra em seu estado final.
  76. 76. Cycle Time A diferença entre o momento que a tarefa é considerada “em progresso” até o momento que ela entra em seu estado final.
  77. 77. Response Time O intervalo de tempo desde a criação da tarefa e o início do trabalho.
  78. 78. 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
  79. 79. Referências O que é Lead time, Cycle Time e Reaction Time? InnerSource Commons InnerSource Convdev Diferença entre iterativo e interativo Gerenciando projetos com Github Issues e Waffle.io
  80. 80. Contato eminetto@coderockr.com http://planrockr.com http://coderockr.com http://eltonminetto.net @eminetto

×