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

Engenharia de Software Moderna: Uma Breve Introdução

Engenharia de Software Moderna: Uma Breve Introdução

Slides de palestra sobre Engenharia de Software Moderna

13beaa3b7239eca3319d54c6a9f3a85a?s=128

ASERG, DCC, UFMG

June 26, 2021
Tweet

Transcript

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

    Valente
  2. 2 Apresentação de ~30 minutos (relevância atual & áreas da

    ES) + Perguntas
  3. 3 No futuro, toda empresa será uma empresa de software

  4. 4 Instituições financeiras ...

  5. 5

  6. 6 “Quando colocamos o CTO como CEO, fica clara a

    importância que damos à tecnologia na empresa”
  7. 7 Indústria automobilística ...

  8. 8 100+ MLOC IEEE Spectrum, Junho 2021

  9. 9 Não são apenas bancos que estão se digitalizando (i.e.,

    transformando-se em empresas de software)
  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)
  11. Mais três aspectos 1. Paradoxo da área de TI 2.

    Trabalho remoto 3. Startups 11
  12. 12 (1) Paradoxo da área de TI (não só no

    Brasil)
  13. 13

  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

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

  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

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

  18. 18 (3) E também nunca houve tantas oportunidades para criação

    de empresas e startups na área!
  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/
  20. 20 Vamos então resumir:

  21. 21 Vamos então resumir: No futuro, existe uma boa chance

    de você ser um Engenheiro de Software!
  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
  23. 23 O que eu preciso para ser um excelente Engenheiro

    de Software?
  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
  25. Pré-requisitos ("a base") 1. Gostar de programar! 2. Saber programar

    ⇒ algoritmos e estruturas de dados! 25
  26. 26 Mas é muito importante também saber trabalhar em equipe

  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.
  28. 28 Resumindo: Hard skills Soft skills

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

    de Software
  30. Princípios e Práticas de ES • Processos • Requisitos •

    Projeto & Arquitetura • Testes & Manutenção • DevOps 30 https://engsoftmoderna.info
  31. (1) Processos • ES é um trabalho em equipe •

    Regras mínimas para evitar o caos ... 31
  32. Antigamente … Waterfall 32

  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%
  34. Ideia central: desenvolvimento iterativo 34

  35. (2) Requisitos • Pior desperdício: ficar anos fazendo um sistema,

    que o cliente depois não vai usar ... 35
  36. 36 Software é um produto Diferente do passado, quando software

    era criado para digitalizar processos internos e manuais
  37. 37 “Se eu tivesse perguntado para meus clientes o que

    eles queriam, a resposta teria sido um cavalo mais rápido” -- Henry Ford
  38. 38 Daí a importância de Design Thinking, MVPs, Testes A/B,

    etc
  39. (3) Projeto & Arquitetura • Assim como casas, etc, software

    tem uma estrutura 39
  40. (4) Testes & Manutenção • Código sem testes, é código

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

    ruim! 41
  42. 42

  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
  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
  45. Engenharia de Software Moderna em 1 slide 45

  46. 46 Obrigado! mail: mtov@dcc.ufmg.br web: https://engsoftmoderna.info twitter: @engsoftmoderna