Desafios ensino de TI em tempo de pandemia — O Futuro é Colaborativo

LAPPIS
4 min readJul 7, 2020

--

As mudanças constante na indústria de software, das práticas e metodologias já impõem desafios ao ensino da Engenharia de Software e outros cursos de TI.

Como

  • Desenvolver habilidades que técnicas e não técnicas necessários aos profissionais de TI?
  • Promover educação empreendedora/Inovadora ?
  • Como aproximar a sala de aula do mercado?

Para ilustrar esses desafios, vejamos o ensino de DevOps/Entrega Contínua, tema atual da Engenharia de Software. Abaixo são os conceitos/habilidades necessário para um profissional que queira atuar em projetos que exigem Entrega Contínua, conhecido como DevOps (Retirado do artigo “A Survey of DevOps Concepts and Challenges”)

Como apresentar esses conceitos, práticas, técnicas o mais próximo do exigido pelo mercado? Engenharia de Software envolve tanto o ensino de conceitos técnicos e algoritmos (estrutura de dados, banco de dados, testes, automações), quanto conceitos não técnicos (gestão de equipe/projeto, elicitação de requisitos, engenharia de produto). Esses conceitos são relacionados entre si e formam um sistema complexo. Gestão de projeto e pipeline de deploy automatizado tem impactos diretos na entrega contínua de software. Como apresentar esses conceitos e o impacto em um projeto de software é complexo e desafia o modelo tradicional de ensino, composto por aulas expositivas e desenvolvimento de funcionalidades em um escopo controlado. Tem-se falado muito sobre metodologias de ensino alternativos para resolver esses problemas, como metodologias ativas, e salas invertidas. Porém, a indústria de software lança continuamente novas ferramentas, novos frameworks e novos conceitos que desafiam educadores a usarem ferramentas e técnicas adotadas no mercado. O desafio da pandemia é garantir o desenvolvimento dessas habilidades de forma forma remoto (como acompanhar e dar feedback nesse contexto?)

A realidade é: o professor NÃO é mais detentor do conhecimento!

Tem muita informação e material de excelente qualidade na internet, e o futuro é colaborativo. O professor tem assumido cada dia mais o papel de coach no processo de aprendizagem, e advogando (advocate) uma cultura de colaboração. No contexto da pandemia, são necessários novos instrumentos de acompanhar o desenvolvimento do aluno, avaliar de forma clara e objetiva.

Adote Open Source como instrumento pedagógico!

As disciplinas MDS/EPS são disciplinas orientadas a projeto, do curso de graduação na Universidade de Brasília (UnB), e adotam Open Source desde 2013. Inspirada no LabXP, ofertado na USP, a disciplina executa o ciclo de projeto de software, no qual os alunos aplicam conceitos teóricos apresentados em sala de aula em um projeto de software open source. Os times ágeis, são formados por alunos recém saídos de orientação a objeto e alunos que já foram exposto a disciplinas mais avançadas, como requisitos de software e arquitetura e com experiência prévia em projetos. Os times executam práticas ágeis, lean, e de comunidades de software livre, passando pelas fases de iniciação, elaboração, de construção, até a fase de entrega/transição. A cada sprint de uma semana, revisam, planejam, alocam e documentam as atividades relacionadas ao projeto. Todas as funcionalidades implementadas devem estar de acordo com a arquitetura proposta, critérios de aceitação, qualidade de código, e cobertura de testes acima de 90%. Os repositórios devem seguir as boas práticas de comunidades de software livre, com licença, código de conduta, readme, templates de issues/Pull Requests, “gitpage com a documentação do produto/projeto. Durante a disciplina, deve-se projetar, e implementar um pipeline de deploy automatizado, uso de docker e pelo menos dois ambientes (homologação e produção). Enquanto os alunos da disciplina MDS aprendem sobre modelos de processo, metodologia ágeis, práticas de desenvolvimento de software e trabalho em equipe, a equipe de EPS aprendem sobre Engenharia de Produto, que aborda desde gestão de projeto (gestão orientada a dados), inovação e concepção de produto (oceano azul), e práticas DevOps (conteinerização, automação, pipeline stages, ambientes). Assim, o aluno tem uma vivência prática e teórica nos conceitos relacionados a DevOps e entrega contínua. A figura abaixo mostra os commits por grupo, ao longo do tempo, evidenciando os benefícios do uso de open source (todos os projetos disponíveis), e cultura de colaboração.

Alguns elementos da cultura de comunidades Open Source são fomentadas na disciplina:

  • Padrões de Comunidade Open Source de Documentação
  • Fórum de ideias aberto onde as comunidades se reúnem para resolver problemas ou desenvolver novas tecnologias
  • Desenvolvido de forma descentralizada e colaborativa
  • Trabalho que vai além da produção de software
  • Revisão por colaboradores
  • Transparência
  • Colaboração aberta

Algumas lições aprendidas valem a pena mencionar:

  • Desenvolver uma cultura de colaboração em sala de aula é fundamental
  • Encorajar times a experimentar novas tecnologias e ferramentas para garantir inovação e melhoria contínua da disciplina.
  • Encorajar mentoria — tanto de monitores quanto de membros da indústria local
  • Uso de open source é importante para a construção de portfólio do aluno
  • Dar nota para os alunos que ajudarem o material didático da disciplina — tanto com tutoriais quanto textos resumidos, quanto revisão e atualização do material — https://fga-eps-mds.github.io/mdseps.github.io/

Pelo uso de praticas ágeis e cultura e boas práticas de software livre, essa disciplina é facilmente executada de forma remota, assincrona, sem perder o caráter de colaboração e a qualidade das interações.

Mais informações sobre a disciplina:

https://github.com/fga-eps-mds

Contato:

caguiar@unb.br

--

--

LAPPIS

O Laboratório Avançado de Produção, Pesquisa & Inovação em Software (LAPPIS) da Universidade e Brasília (UnB) Campus Gama (FGA) — https://lappis.rocks