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

Artesanato de Software

Artesanato de Software

Palestra sobre o manifesto do Artesanato de Software realizada internamente na empresa.

Avatar for Ricardo Lima

Ricardo Lima

August 17, 2018

Other Decks in Technology

Transcript

  1. Manifesto do Artesanato de Software • Não apenas software em

    funcionamento, mas software de excelente qualidade • Não apenas responder a mudanças, mas agregar valor de forma constante e crescente • Não apenas indivíduos e suas interações, mas uma comunidade de profissionais • Não apenas a colaboração do cliente, mas parcerias produtivas Fonte: http://artesaniadesoftware.com.br/ Para atingir os objetivos à esquerda, os que estão à direita são indispensáveis.
  2. Software de Excelente Qualidade A Engenharia de Software nunca teve

    muito sucesso em medir a qualidade de software comercial. O Artesanato de Software então traz uma nova abordagem para qualidade, aprendendo com erros de prática do artesanato a mais tempo, identificando assim padrões e princípios.
  3. Software de Excelente Qualidade Qualidade não tem medo do Tempo

    Não importa a quantidade de requisitos previamente levantados e sim que pelo menos faça o que ele foi projetado para fazer. Qualidade então é proporcional ao tempo que o produto continua a atender a necessidade do usuário.
  4. Software de Excelente Qualidade Qualidade em Software Software de qualidade

    é o que está apto de receber mudanças facilmente, aumentando a sua vida útil.
  5. Software de Excelente Qualidade Software é Código Talvez a documentação

    mais importante do software é o código. Código de qualidade gera software de qualidade!
  6. Software de Excelente Qualidade Rigidez Sistema rígido gera modificações rígidas.

    Modificações em cima de modificações... Melhor investir tempo em desenvolver um software bem feito agora para não sofrer mais a frente.
  7. Software de Excelente Qualidade Fragilidade A modificação de um componente

    causa mau funcionamento em outro aparentemente não relacionado, causando também incertezas em qualquer outra mudança no software e colocando tudo por água abaixo, fazendo perder confiança na qualidade e competência do profissional.
  8. Software de Excelente Qualidade Inseparabilidade Um sistema inseparável é um

    sistema que não pode ser dividido em componentes reutilizáveis. Esse sintoma indica que atalhos que cruzam componentes foram tomados, provavelmente devido à pressão para entrega. **
  9. Software de Excelente Qualidade Opacidade “Não estou entendendo nada desse

    código.” Código difícil de entender, gera mais tempo para realizar manutenção!
  10. Software de Excelente Qualidade Código Bom Software bem codificado não

    gera problemas conforme os citados anteriormente.
  11. Software de Excelente Qualidade Legibilidade Você é espelho do que

    você codifica. Código simples e direto, qualquer outro dev vai entender e modificar sem consultar o autor original. “Olha lá, olha só, olha esses raios de luz que saem desse código lindo!"
  12. Software de Excelente Qualidade Flexibilidade Nada de código rígido. Existem

    razões únicas para mudar, então que essa mudança seja feita apenas onde precisa ser feita.
  13. Software de Excelente Qualidade Independência Código bom não é inseparável.

    Ou seja, pode ser dividido em componentes independentes e reutilizáveis, facilitando atualizações e evitando dependências externas.
  14. Agregar Valor de Forma Constante O objetivo do desenvolvedor é

    entregar valor em forma de software para o cliente.
  15. Agregar Valor de Forma Constante Atenção ao Detalhe Concentração é

    essencial para observar detalhes que possam ser essenciais para o software. O artesão, quando sob pressão, nunca se apressa. “Vamos transformar café em código.”
  16. Agregar Valor de Forma Constante Banhar a Ouro Atenção e

    foco nos detalhes tem que ser policiados. Nada de desperdiçar tempo em detalhes que também não fazem tanta diferença. O artesão tem que atuar na realidade, novas técnicas só poderão ser aplicadas quando de fato necessárias.
  17. Agregar Valor de Forma Constante Artesão, não Artista Nada de

    luxo ou desperdício. O artesão valoriza código limpo, claro e flexível na semântica, como por exemplo aproximar a nomenclatura usada no código e a linguagem de negócio.
  18. Agregar Valor de Forma Constante Estimativas e Compromissos Nada de

    prometer o que não é possível e se necessário dizer Não!
  19. Agregar Valor de Forma Constante Ritmo Sustentável Mantenha o ritmo…

    devagar e sempre é aceito! O Artesão saberá manter o ritmo de desenvolvimento e saberá o hora de descansar.
  20. Comunidade de Profissionais O Artesão de software gosta de se

    aperfeiçoar diariamente e isso inclui contato humano, ou seja, compartilhar erros e acertos com outros artesãos.
  21. Agregar Valor de Forma Constante Compartilhamento de Conhecimento Quem ensina,

    aprende duas vezes! Aprender com mestre e praticar diariamente. Participar de meetups, eventos e palestras colabora com futuros artesões.
  22. Agregar Valor de Forma Constante O Modelo Medieval de Aprendizado

    O Artesanato de Software valoriza o modelo medieval Aprendiz / Mestre. “O verdadeiro discípulo é aquele que supera seu mestre.”
  23. Agregar Valor de Forma Constante Reputação e Não Mais Certificação

    Compartilhar conhecimento e construir uma reputação! Ter certificação não te faz um Mestre Artesão, seu portfólio sim! Um artesão cria uma reputação trabalhando constantemente em comunidade.
  24. Ser mais que um codificador Ser um Artesão de Software

    não é somente codificar no “modo” automático uma tela com regras de negócios definidas, mas também colocar parte de si naquele software, é saber que você está ajudando a melhorar a vida de dezenas ou milhares de pessoas. Claro que se envolver de forma mais dedicada a fim de trazer melhor qualidade no software demandará mais tempo, porém o resultado será gratificante!
  25. Ser um bom codificador leva tempo e experiência Estagiário, Júnior,

    Pleno, Sênior, Zeus, Thor, Odin, Adonias…. Qualquer um pode ser um Artesão de Software! MAS...
  26. Como ser um Artesão de Software? 1. Codando muito e

    de forma correta 2. Conhecer e aplicar os princípios como SOLID 3. Domine as ferramentas que serão utilizadas 4. Evoluir hábitos além de codificar, tais como TDD, Integração Contínua, DevOps, etc. 5. Desenvolver habilidades comportamentais, como aprender a trabalhar em time, comunicação e outras.
  27. Práticas que podemos adotar • Se permitir aceitar desafios continuamente

    • Adotar, mesmo de que forma ajustada dentro do nosso processo, uma metodologia ágil • Ser auto gerenciável e trabalhar como um time • Comentar código! • Code Review - O level 99 revisa o código do level 5, 10, 20… • Programação em pares • Nada de gettype! ◦ “Testes são para testar as regras de negócio e não a p**** do código!” - Vitão • Lembrar que que não entregamos apenas um sistema, mas sim valor de negócio