“The best way to learn software maintenance is to actually maintain software.”
Uma disciplina diferente. Sem slides. Sem aulas teóricas. Sem exames. Só código real, problemas reais, e projetos open-source reais.
Durante 9 semanas, 16 estudantes da Universidade Lusófona mergulharam no código de projetos open-source reais — identificaram bugs, abriram issues, submeteram pull requests, e viram o seu trabalho aceite por maintainers de todo o mundo.
Os alunos desta edição contribuíram para os seguintes projetos open-source:
| Projeto | Repositório | Tecnologia | PRs aceites |
|---|---|---|---|
| Askimo | link | Kotlin | 4 |
| OWASP ZAP | link | Java | 1 |
| rustfs | link | Rust | 1 |
| github-copilot-api-vscode | link | TypeScript | 1 |
| osqa | link | Java | 1 |
| wger | link | Dart | 1 |
| Dataframe | link | Kotlin | 1 |
| luanti | link | C++ | 1 |
| pik | link | Rust | 1 |
| sodium | link | Java | 1 |
| damage-calc | link | TypeScript | 1 |
| drop-project | link | Kotlin | 5 |
Os alunos que tornaram isto possível:
“Nunca pensei que numa cadeira universitária ia ter conversas com maintainers de projetos usados por milhões de pessoas. É diferente de tudo o que aprendi até hoje, não há slides que ensinem isto.” — @miguel-baptista07
“Esta disciplina teve um impacto enorme na minha aprendizagem. O facto de não ser ensino tradicional, mas sim um trabalho hands-on em projetos open source reais, cativou-me imenso. Fez com que não só tivesse cada vez mais interesse em contribuir em mais projetos, como também vontade de estar presente numa aula de 5h30 todas as semanas.” — Filipe Monteiro
“Foi uma experiência diferente, que me permitiu aprender imenso, com liberdade para desenvolver projetos open source reais. Além disso, foi uma ótima oportunidade para conhecer melhor os colegas e o professor. Apesar dos desafios e dificuldades, cada momento foi muito gratificante e tornou o aprendizado ainda mais enriquecedor.” — Daniel Carvalho
“Noutras cadeiras aprendo a escrever código que ‘funciona’. Aqui aprendi a escrever código que ‘dura’ — com testes, validação defensiva, e preocupação com quem vai manter isto daqui a 3 anos. É uma mudança de mindset, não só de skill.” — @a22405291LourencoMadeira
“Uma disciplina fora do padrão, mas diria que o futuro das disciplinas deviam-se guiar por ela. Mais prática, menos teórica, mais divertida. Acho que foi a disciplina que mais me esforcei e que adquiri e consolei os conhecimentos. Apesar de ser muito trabalhosa, valeu cada esforço que fiz. E como contrapartida consegues desenvolver as tuas skills sociais e de escrita, o que é muito importante nos dias de hoje “ — Diogo Oliveira
“No início achei que esta cadeira não fazia sentido — ‘para que precisamos de aprender manutenção de código? Para isso serve LP2.’ Mas não é só sobre isso: é sobre aprender a colaborar num ambiente de trabalho real, saber pedir ajuda e saber ser ajudado. Melhorei bastante a minha comunicação e, no final, estou convicto de que esta cadeira é essencial para qualquer programador.” — Nsimba Tamaku
“Esta disciplina permitiu ter uma perspetiva mais abrangente do funcionamento e método de trabalho a nível empresarial no ramo da programação: prazos apertados, muitos erros, mais erros e a necessidade de implorar por ajuda aos colegas, achando que os erros dos mesmos são mais fáceis de resolver (e eles pensam o mesmo dos meus). Foi esta a dinâmica da disciplina que obrigou a uma grande adaptação e a um maior desenvolvimento da comunicação e do trabalho de equipa.” - Rodrigo Filipe
“No início achei a cadeira diferente e senti algum receio, principalmente por ser um formato a que não estava habituada. No entanto, à medida que fui acompanhando as aulas, consegui adaptar-me e comecei a gostar cada vez mais da experiência. Ao longo do tempo, percebi que aprendi bastante e senti claramente uma evolução no meu desenvolvimento, tanto a nível académico como pessoal.” — Nidhi Mogatlal
“Podemos dizer que esta cadeira está fora da caixa, tanto pelo formato, completamente diferente do que estamos habituados, como pelo trabalho que realizamos. Acho que é uma daquelas cadeiras que, mesmo depois de terminarmos o curso, vamos conseguir lembrar-nos de muitas coisas que ela nos proporcionou.” — Diogo Alves
“Tive medo de embarcar nesta aventura, mas em vão, pois aquilo que aprendi no âmbito desta cadeira foi extremamente valioso no que toca ao meu desenvolvimento pessoal e social, tornando-me assim, acredito eu, numa pessoa mais capacitada tanto a realizar tarefas, como a socializar com os meus colegas de modo a sermos mais produtivos.” — Rafael Magalhães
“Essa cadeira foi como aprender a voar enquanto se está no ar haha. Fomos apresentados a conceitos e práticas do ecossistema do desenvolvimento de software que para muitos eram novos durante a resolução de problemas, e penso que isso foi muito motivador para aprender e encarar os desafios.” — Guilherme Albuquerque
“Quando comecei esta disciplina estava muito nervoso e completamente perdido, porém ao longo das aulas fui habituando-me ao ritmo e aprendendo cada vez mais. Sinto que aprendi muito mais com esta disciplina do que com qualquer outra disciplina do curso.” - José Cardoso
” Esta disciplina permitiu contribuir para projetos open source e foi a experiência mais próxima que tive de trabalho real em engenharia de software. Abrir um PR, receber feedback de um maintainer, corrigir e voltar a submeter — é um ciclo que não se aprende em nenhum livro.” - Gonçalo Gonçalves
“No início senti-me completamente fora da minha zona de conforto, código que não conhecia, projetos grandes e sem instruções passo a passo. Mas foi precisamente isso que fez a diferença. Aprendi a investigar, a errar sem receio. No final, já não era apenas sobre programar, mas sim sobre pensar como um verdadeiro developer.” - Gonçalo Mendes
“O método único de ensino desta cadeira, que puxava pelo trabalho de equipa e pela autonomia e interação entre todos, tornou-me melhor programador e mostrou-me que todos conseguimos alcançar os nossos objetivos e fazer a diferença. Aprecio a troca de testes e exames por projetos open source e worklogs que realmente conseguem demonstrar o nosso esforço e conhecimento.” - Hugo Pereira
Laboratório de Manutenção de Software é uma disciplina da licenciatura em Engenharia Informática integrada no DEISI/Universidade Lusófona, idealizada e lecionada por Pedro Alves.
Feito com ❤️ e muito git push — Lisboa, 2026