Em um post recente, Atravessando o abismo na educação de software, no site Communications da ACM, Armando Fox e David Patterson da Universidade de Berkeley falam sobre a tensão entre a educação universitária dos engenheiros de software e as expectativas atuais dos empregadores. Eles sugerem que a solução passa por ensinar aos estudantes o desenvolvimento ágil de aplicações em SaaS (Software como Serviço) usando ferramentas como Ruby on Rails.
A educação em engenharia e arquitetura de software nas universidades é muitas vezes considerada inadequada pelas empresas, porque os estudantes não aprendem como lidar com todo o ciclo do desenvolvimento de software, apenas partes dele. Fox e Anderson defendem que o desenvolvimento ágil de aplicações como serviço, na nuvem, pode ser uma boa abordagem para as salas de aula, pois estas ferramentas ajudam estudantes a ter experiência em todo o ciclo de desenvolvimento. A criação de aplicativos seriam, portanto, uma boa maneira de "motivar os estudantes, pois há vantagens em usar plataformas que permitem criar aplicativos relevantes e de qualidade".
O curso de software da universidade de Berkeley atualmente tem mais de 100 alunos, e sua primeira parte está disponível para mais de 50 mil estudantes online. Fox e Anderson chegaram às seguintes conclusões quanto às suas experiências no curso:
Usar o Agile para desenvolver aplicações SaaS utilizando ferramentas como Rails e implantar essas aplicações na nuvem, incentiva boas práticas de software. Os estudantes gostam, pois além de ganharem experiência útil na busca por estágios ou empregos, entregam código que funciona e é usado por pessoas além dos instrutores. Os professores gostam porque os estudantes realmente usam o que aprendem nas aulas, mesmo após a graduação, e têm a oportunidade de ver como grandes ideias da Ciência da Computação podem melhorar a produtividade.
Além disso, máquinas virtuais reduzem os aborrecimentos para professores e monitores, e o uso da nuvem permite a criação de trabalhos de programação mais interessantes para os alunos. E os trabalhos podem ter as notas avaliadas por ferramentas de testes e de avaliação de código, permitindo escalar o curso online para milhares de alunos.
Os leitores do artigo concordam com a abordagem. Em um comentário:
Também tenho recebido feedbacks muito positivos (da maioria dos estudantes e mesmo de alguns ex-estudantes que se juntaram ao curso). Os alunos gostam dos desafios de aprender ideias novas e relevantes, enquanto utilizam o material para praticar. Gostaria de agradecer ao autor por sua abertura e pelo compartilhamento de conhecimentos e o suporte técnico dado. As máquinas virtuais cedidas pelo curso economizam tempo valioso, que agora pode ser usado praticando e aprendendo ao invés de instalando e configurando.
Outro comentário reforça o elogio:
Parabéns pelo sucesso das aulas, do livro, artigos e vídeos. Gostaríamos que todos os estudantes de ciência da computação tivessem participado desse curso.
Como o post indica, o desenvolvimento ágil de pequenas aplicações é uma abordagem promissora para a educação em engenharia de software nas universidades.