Ensinar arquitetura de software é difícil. O tema é abstrato e é melhor compreendido vivenciando-o, o que requer escala adequada para compreender plenamente sua complexidade. Além disso, os alunos precisam praticar habilidades técnicas e sociais para se tornarem bons arquitetos de software. Para superar esses desafios de ensino, desenvolvemos o Curso de Arquitetura de Software Colaborativa. Neste curso, os participantes trabalham juntos para estudar e documentar um grande sistema de software de código aberto de sua escolha. No processo, toda a comunicação é transparente, a fim de promover um ambiente de aprendizagem aberto, e o resultado final é publicado como um livro online para beneficiar a comunidade de código aberto em geral.

Ministramos este curso durante os últimos quatro anos para turmas de 50 a 100 alunos cada. Nossa experiência sugere que: (1) os sistemas de código aberto podem ser usados com sucesso para permitir que os alunos ganhem experiência com os principais conceitos de arquitetura de software, (2) os alunos são capazes de fazer contribuições de código para os projetos de código aberto, (3) os integradores (arquitetos) de sistemas de código aberto estão dispostos a interagir com os alunos sobre suas contribuições, (4) trabalhar juntos em um livro conjunto ajuda as equipes a olhar além de seu próprio trabalho e a estudar as descrições arquitetônicas produzidas pelas outras equipes.