Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Como escolher uma stack para meu projeto?

Como escolher uma stack para meu projeto?

Vitor Mendrone

July 13, 2019
Tweet

More Decks by Vitor Mendrone

Other Decks in Technology

Transcript

  1. DECISÕES ERRADAS Todos os dias desenvolvedores iniciam projetos críticos com

    stacks baseadas em hype, desejos pessoais e percepções incorretas da realidade.
  2. NOSSA CARREIRA DEPENDE DISSO. Entregar produtos no prazo, ter uma

    ampla visão do negócio e entender os riscos de cada projeto.
  3. Todos os modelos estão errados. Box, George E. P.; Norman

    R. Draper (1987). Empirical Model-Building and Response Surfaces, p. 424, Wiley. ISBN 0471810339 https://en.wikipedia.org/wiki/All_models_are_wrong
  4. ... todos os modelos são aproximações. Essencialmente, todos os modelos

    estão errados, mas alguns são uteis.* * Tradução livre
  5. Algumas tecnologias são mais indicadas para problemas específicos. Ex.: Python

    para computações complexas ou Node para um chatbot. Qual problema você quer resolver?
  6. Uma ferramenta interna, não crítica, utilizada por poucos usuários e

    em um ambiente controlado, permite (muito) mais experimentações. Quem serão os usuários?
  7. Garanta que a tecnologia escolhida é capaz de suportar a

    carga de usuários em todas as frentes. Qual a estimativa de usuários?
  8. Por quanto tempo esse produto permanecera no ar? É apenas

    um teste de mercado? Uma campanha com data para acabar? Ou um produto com existência indefinida? Qual o ciclo de vida desse produto?
  9. Será necessário recrutar mais desenvolvedores ou investe em treinamentos para

    o time atualmente disponível? O time atual tem interesse na tecnologia escolhida? O time necessário para desenvolvimento está disponível?
  10. Considere que, durante o aprendizado, o time terá 1/10 da

    performance que poderia ter com uma linguagem ou paradigma já dominado por todos ou pela maioria. É necessário introduzir uma nova linguagem ou um novo paradigma?
  11. Considere que, caso seja necessário, esse desenvolvedor terá sua performance

    reduzida enquanto transfere conhecimento ao resto do time. Alguém no time já tem experiência utilizando essa stack?
  12. Pessoas entediadas podem optar por tecnologias ultra modernas, "hipsters" e/ou

    underground que tornam o recrutamento quase impossível. E entregar o projeto também. Você ou o time estão entediados?
  13. Duas coisas que você nunca deve fazer quando está irritado:

    usar !important e tomar decisões de stack. Você está irritado?
  14. Quanto mais importante ou crítico, menos espaço para riscos. Qual

    a importância do projeto na estratégia de negócios da empresa?
  15. Por mais semelhante que seja a proposta de produto, variações

    de ambiente como time e expertise não são emuláveis. Sua decisão se baseia apenas na stack do concorrente?
  16. É impossível garantir que as muitas variáveis envolvidas em um

    projeto serão novamente as mesmas. Sua escolha se baseia apenas em sua experiência com projetos anteriores?
  17. Nosso mercado muda rapidamente. Crie produtos modulares e sempre esteja

    preparado para mudanças. A stack é engessada?
  18. De preferência para licenças permissivas, que não limitam o tipo

    de produto/ projeto a ser construído. A licença é compatível com o negócio e o projeto?
  19. Cheque a quantidade e qualidade das respostas no Stack Overflow,

    issues no Github, livros, conferências, Meetups, artigos e cursos Existe uma comunidade ativa?
  20. Documentação é mais do que uma seção com um exemplo

    de uso. Procure documentações de API, guias para contribuição e faça um deep dive no código fonte. A documentação é compreensível?
  21. Procure evidências de que a biblioteca ou linguagem evoluiu ao

    longo do tempo e se possui mais de uma major version estável. Está em evolução?
  22. stackshare.io Stacks dos produtos mais populares do mundo com comentários

    dos membros do time. Diversos insights valiosos sobre downsides de diversas tecnologias.
  23. builtwith.com Menos preciso porém um bom aliado para identificar algumas

    das tecnologias de produtos não listados no stackshare.io
  24. Feito é melhor do que perfeito. Escolha a stack que

    te dê mais segurança de que terá sucesso em entregar o produto no prazo e com as características definidas no roadmap.