Série: Fundamentos de Engenharia de Software | Parte 1 de 19 > Ministrada na Universidade Potiguar (UnP) em 2010
Hoje ministrei a primeira aula de Engenharia de Software na Universidade Potiguar (UnP), e foi uma experiência marcante. Desde que fui convidado para preparar e liderar este curso, venho refletindo sobre como estruturar conteúdo que seja relevante para os estudantes — não apenas baseado no que aprendi durante minha graduação, mas também a partir de projetos reais e experiências na indústria.
Por que Engenharia de Software?
Minha ideia com essa primeira aula foi criar um ponto de partida claro: por que Engenharia de Software é necessária? O que estamos tentando resolver quando aplicamos engenharia ao desenvolvimento? Apresentei dados do Chaos Report para ilustrar como a maioria dos projetos ainda falha ou precisa de adequações severas, mostrando que saber programar não é o suficiente. Falamos sobre prazos estourados, escopos mal definidos, retrabalho, insatisfação e frustração. Tudo isso está presente no dia a dia de qualquer time — e entender a raiz desses problemas é o primeiro passo para evitá-los.
Questionando o Conceito de “Funcionar”
Ao longo da apresentação, provoquei os alunos com a pergunta: “Seu software funciona? Tem certeza?” A ideia era colocar em dúvida a noção de sucesso superficial, levando à reflexão sobre qualidade, manutenção, clareza, escalabilidade, satisfação do usuário e contexto de negócio. E, claro, falamos também de como software pode ser caótico, estressante e desorganizado — mas que não precisa ser assim.
Engenharia como Solução
Mostrei como a Engenharia de Software pode ajudar em aspectos como comunicação entre times, levantamento e refinamento de requisitos, estimativas realistas, controle de riscos, organização da produção e busca constante por qualidade. E enfatizei que isso não deve ser apenas preocupação de um gerente ou de quem lidera um projeto. Todos têm um papel: quem está aprendendo agora, quem está escrevendo as primeiras linhas de código, quem já está acostumado a programar — todos podem contribuir para que o processo seja mais sustentável, mais leve e mais eficaz.
Cronograma da Disciplina
Para isso, introduzi o cronograma da disciplina, que aborda desde os modelos clássicos de ciclo de vida até metodologias ágeis, passando por práticas como Scrum, XP, DDD, TDD, refatoração, arquitetura e testes. A ideia é oferecer uma visão equilibrada entre teoria e prática, sem negligenciar os desafios reais. Cada tema foi planejado para reforçar uma habilidade que fará diferença no mercado, e espero que cada aula seja uma oportunidade para os alunos evoluírem não só tecnicamente, mas como profissionais mais conscientes do seu papel em um time de desenvolvimento.
Nossa Rotina de Aula
Também compartilhei como será nossa rotina: blocos de conteúdo interativos, chamadas feitas de forma justa e transparente, momentos de keynote e debate, espaço para dúvidas e participação ativa. Quero que os alunos tenham espaço para falar, para discordar, para testar ideias. Uma aula só é boa quando os alunos estão pensando, não apenas ouvindo.
Como alguém que já passou por essa sala — mas do outro lado — espero poder ajudar essa nova turma a construir uma base sólida, entender a importância de métodos e práticas, e principalmente, a desenvolver software com responsabilidade e propósito.
A todos que tiverem sugestões ou comentários sobre a aula, estou aberto! Minha ideia é melhorar continuamente, assim como fazemos no desenvolvimento ágil.
Ensinar é, acima de tudo, um convite para pensar junto. Cada aula se torna uma conversa — ora sobre conceitos, ora sobre experiências, ora sobre aquilo que esperamos construir e por que isso importa.
Estou animado para continuar essa jornada com os alunos e ver como esses conceitos evoluem nas mãos deles.
Publicado após minha primeira aula como professor de Engenharia de Software na UnP, cheio de entusiasmo e gratidão pela chance de compartilhar e aprender ao mesmo tempo.
Navegação da Série
- Atual: Parte 1 - Por que Engenharia de Software? (Introdução)
- Próxima: Parte 2 - Domando a Complexidade
- Série completa: Por que Engenharia de Software? | Domando a Complexidade | Modelo Cascata | Modelos Evolucionários | Mentalidade Ágil | Scrum Produtividade | Ciclo Scrum | XP Qualidade & Coragem | XP Princípios & Práticas | XP na Prática | Domain-Driven Design | Requisitos & Testes | Testes de Software