$30 off During Our Annual Pro Sale. View Details »

Engenharia de Software Moderna: Uma Breve Introdução

Engenharia de Software Moderna: Uma Breve Introdução

Slides de palestra sobre Engenharia de Software Moderna

ASERG, DCC, UFMG

June 26, 2021
Tweet

More Decks by ASERG, DCC, UFMG

Other Decks in Education

Transcript

  1. Engenharia de Software Moderna:
    Uma Breve Introdução
    Prof. Marco Tulio Valente

    View Slide

  2. 2
    Apresentação de ~30 minutos
    (relevância atual & áreas da ES)
    + Perguntas

    View Slide

  3. 3
    No futuro, toda empresa será
    uma empresa de software

    View Slide

  4. 4
    Instituições financeiras ...

    View Slide

  5. 5

    View Slide

  6. 6
    “Quando colocamos o CTO como CEO, fica clara a
    importância que damos à tecnologia na empresa”

    View Slide

  7. 7
    Indústria automobilística ...

    View Slide

  8. 8
    100+
    MLOC
    IEEE Spectrum, Junho 2021

    View Slide

  9. 9
    Não são apenas bancos que estão
    se digitalizando
    (i.e., transformando-se em empresas de software)

    View Slide

  10. A maior empresa de táxi, não tem carros
    10
    A maior empresa de hospedagem, não tem hotéis
    O maior varejista, não têm lojas
    O maior cinema, não tem salas
    Inspirado em artigo de Tom Goodwin (http://tcrn.ch/1DI138A)

    View Slide

  11. Mais três aspectos
    1. Paradoxo da área de TI
    2. Trabalho remoto
    3. Startups
    11

    View Slide

  12. 12
    (1) Paradoxo da área de TI
    (não só no Brasil)

    View Slide

  13. 13

    View Slide

  14. 14 https://www.em.com.br/app/noticia/emprego/2021/02/09/interna_emprego,1236287/localiza-oferece-30-mil-bolsas-gratuitas-para-formacao-de-desenvolvedores.shtml

    View Slide

  15. 15
    Nunca houve tanta vaga para Engenheiros
    de Software!

    View Slide

  16. 16
    https://www.correiobraziliense.com.br/euestudante/trabalho-e-formacao/2021/05/4926392-apagao-na-area-de-ti-sobram-vagas-mas-falta-mao-de-obra.html

    View Slide

  17. (2) Muitas das vagas são para trabalho remoto
    17 https://about.gitlab.com/company/team

    View Slide

  18. 18
    (3) E também nunca houve tantas
    oportunidades para criação de empresas e
    startups na área!

    View Slide

  19. 1. C6, São Paulo
    2. CargoX, São Paulo
    3. Conta Azul, Joinville
    4. Creditas, São Paulo
    5. Estapar, São Paulo
    6. Guiabolso, São Paulo
    7. Hurb, Rio de Janeiro
    8. MadeiraMadeira, Curitiba
    9. Neon, São Paulo
    10. Nuvemshop, São Paulo
    11. Olist, Curitiba
    12. RecargaPay, São Paulo
    13. Solinftec, Araçatuba
    14. Superlógica, Campinas
    15. Take Blip, BH/SP
    16. Tembici, São Paulo
    17. UOL, São Paulo
    1. 99, São Paulo
    2. Nubank, São Paulo
    3. Movile, Campinas
    4. Gympass, São Paulo
    5. Loggi, São Paulo
    6. Quinto Andar, São Paulo
    7. Ebanx, Curitiba
    8. Wildlife, São Paulo
    9. Loft, São Paulo
    10. VTEX, São Paulo
    SP: 22
    PR: 3
    RJ: 1
    MG: 1
    SC: 1
    Unicórnios Quase Unicórnios
    Fonte: https://www.infomoney.com.br/negocios/startups-bilionarias-veja-quais-serao-os-proximos-17-unicornios-brasileiros/

    View Slide

  20. 20
    Vamos então resumir:

    View Slide

  21. 21
    Vamos então resumir:
    No futuro, existe uma boa chance de
    você ser um Engenheiro de Software!

    View Slide

  22. Ou outro nome do mercado ...
    FullStack Developer
    Frontend Developer
    Backend Developer
    Mobile Developer
    Tech Leader
    Arquiteto de Software
    Analista de Sistemas
    Analista de Requisitos
    22
    Analista de Qualidade
    Analista de Testes
    Product Owner
    Scrum Master
    Agile Coach
    Gerente de Projetos
    Gerente de Produtos
    CTO

    View Slide

  23. 23
    O que eu preciso para ser um
    excelente Engenheiro de Software?

    View Slide

  24. O que eu preciso para ser um excelente ES? (resumo)
    24
    Fundamentos de
    Programação
    Engenharia de Software
    Fundamentos
    Prática
    Soft Skills Negócios

    View Slide

  25. Pré-requisitos ("a base")
    1. Gostar de programar!
    2. Saber programar ⇒ algoritmos e estruturas de dados!
    25

    View Slide

  26. 26
    Mas é muito importante também saber
    trabalhar em equipe

    View Slide

  27. 27
    Soft Skills são importantes!
    João Eduardo Montandon, et al. What Skills do IT Companies look for in New Developers? A Study with Stack Overflow Jobs.
    Information and Software Technology, 2020.

    View Slide

  28. 28
    Resumindo:
    Hard
    skills
    Soft
    skills

    View Slide

  29. 29
    Por fim, precisa dominar conceitos e
    práticas de Engenharia de Software

    View Slide

  30. Princípios e Práticas de ES
    ● Processos
    ● Requisitos
    ● Projeto & Arquitetura
    ● Testes & Manutenção
    ● DevOps
    30
    https://engsoftmoderna.info

    View Slide

  31. (1) Processos
    ● ES é um trabalho em equipe
    ● Regras mínimas para evitar o caos ...
    31

    View Slide

  32. Antigamente … Waterfall
    32

    View Slide

  33. Hoje: métodos ágeis
    33
    Fonte: Surveying the Impacts of COVID-19 on the Perceived Productivity of Brazilian Software
    Developers. SBES 2020
    Ágil = 87%

    View Slide

  34. Ideia central: desenvolvimento iterativo
    34

    View Slide

  35. (2) Requisitos
    ● Pior desperdício: ficar anos fazendo um sistema, que o
    cliente depois não vai usar ...
    35

    View Slide

  36. 36
    Software é um produto
    Diferente do passado, quando software era criado
    para digitalizar processos internos e manuais

    View Slide

  37. 37
    “Se eu tivesse perguntado para meus clientes
    o que eles queriam, a resposta teria sido um
    cavalo mais rápido”
    -- Henry Ford

    View Slide

  38. 38
    Daí a importância de
    Design Thinking, MVPs, Testes A/B, etc

    View Slide

  39. (3) Projeto & Arquitetura
    ● Assim como casas, etc, software tem uma estrutura
    39

    View Slide

  40. (4) Testes & Manutenção
    ● Código sem testes, é código ruim!
    40

    View Slide

  41. (4) Testes & Manutenção
    ● Código sem testes, é código ruim!
    41

    View Slide

  42. 42

    View Slide

  43. "Testes de unidade são amplamente usados no Google. Todo
    código de produção deve ter testes de unidade"
    "No Facebook, engenheiros são responsáveis pelos testes de
    unidade de qualquer código novo que eles desenvolvam."
    "Código sem testes é código ruim"
    -- Michael Feathers
    43

    View Slide

  44. (5) DevOps
    ● Código só gera $$$ quando é liberado
    44
    Precisa ser integrado,
    revisado, testado,
    empacotado, etc
    Continuous deployment at Facebook and OANDA. ICSE 2016

    View Slide

  45. Engenharia de Software Moderna em 1 slide
    45

    View Slide

  46. 46
    Obrigado!
    mail: [email protected]
    web: https://engsoftmoderna.info
    twitter: @engsoftmoderna

    View Slide