A história da colaboração entre Mconf e BigBlueButton

Contamos em um artigo anterior um pouco sobre a história da Mconf. Se você ainda não leu (leia! 😅), este é um breve resumo: no final de 2010 foi criado um projeto de pesquisa dentro da UFRGS chamado Mconf, financiado pela RNP (a Rede Nacional de Ensino e Pesquisa). Deste projeto nasceu um sistema de webconferência que utilizava como base o sistema de código aberto BigBlueButton. Com o tempo o projeto evoluiu (e muito!), construímos uma empresa com base nos frutos desse projeto e nos integramos cada vez mais com a equipe do BigBlueButton.

Este artigo conta como iniciou e como mantemos até hoje um ótimo relacionamento com a equipe de desenvolvedores do BigBlueButton, um software de código aberto que possui desenvolvedores em diversos locais do mundo. Essa história já tem 8 anos e mostra como diferentes equipes conseguem colaborar mesmo estando distantes geograficamente e pertencendo a diferentes instituições, cada uma com seus objetivos e metas. Algo que só se tornou possível devido à natureza código aberto do produto que estávamos criando.


Nossa história de cooperação com o BigBlueButton começou muitos anos atrás, no início de 2011. Aliás, ainda antes, no final de 2010, já tínhamos ouvido falar da ferramenta. Foi em meados de novembro de 2010 que tivemos a tarefa de definir como seria o projeto Mconf: devíamos criar uma ferramenta completamente nova ou utilizar alguma ferramenta já existente para solucionar o nosso problema? O foco do projeto era criar uma solução de comunicação via áudio e vídeo que funcionasse na web e em dispositivos móveis.

Tínhamos muitas dúvidas. Criar uma aplicação desktop (mais uma), um plug-in para navegadores ou uma solução totalmente dentro do navegador? Vídeo em HD funcionaria no navegador? A solução seria P2P ou teria um servidor central? Como suportar dispositivos móveis? Lembre-se que era 2011 e que a tecnologia evolui cada vez mais rápido. Naquela época as pessoas já falavam em HTML5, mas era algo ainda muito distante. Adobe Connect era um dos líderes do mercado, que utilizava um cliente totalmente baseado em Flash (a única forma confiável de usar áudio e vídeo em um navegador na época). O Google já brincava de Hangouts (que ainda tinha outro nome), mas fazia tudo via um plug-in próprio que o usuário precisava instalar. Para dar uma perspectiva histórica ainda melhor, 2011 foi o ano do lançamento do primeiro release do WebRTC, o node.js ainda era uma dúvida (quem acreditaria em JavaScript no servidor?) e havia apenas três anos que o primeiro dispositivo Android havia sido lançado.

Imagem da interface do BigBlueButton em 2010. O projeto tem esse nome pelo seu objetivo de ser tão fácil de usar quando “apertar um grande botão azul”.

Estudamos diversas ferramentas existentes na época e, após cerca de dois meses, ficou claro que o mais adequado seria utilizar o BigBlueButton. Essa decisão foi baseada em diversos fatores, mas os que mais pesaram foram a qualidade e estabilidade que o software já possuía na época e a comunidade que havia sido construída em volta dele. Enviávamos dúvidas para a lista de e-mails e as respostas vinham muito rápido! Esse é um aspecto muito importante quando você está decidindo que aplicações utilizar como base do seu projeto. Uma decisão mal feita na época poderia colocar em risco a continuação do projeto e talvez nem estivéssemos aqui hoje. 😰

Chegamos a considerar criar uma aplicação totalmente nova baseada em HTML5 e, como provavelmente seria necessário, plug-ins para os navegadores. Decidimos não ir por esse caminho pois o trabalho que essa solução daria na época possivelmente tornaria o projeto inviável, além de não ser uma boa aposta a longo prazo. E, afinal, por que criaríamos algo totalmente novo se existia uma ótima solução aberta com a qual poderíamos colaborar?

Muitas conversas, testes e validações fizeram parte deste período do projeto. Apesar do BigBlueButton ser baseado na tecnologia Flash (da qual queríamos fugir), sua qualidade e, principalmente, o comprometimento e a motivação da equipe nos levaram a selecioná-lo. No longo prazo, boas pessoas por trás de um projeto valem muito mais do que pequenas diferenças técnicas. Isso estava ainda mais em evidência pelo fato de que os criadores do BigBlueButton fundaram uma empresa para trabalhar de forma dedicada com a solução, chamada Blindside Networks. Ou seja, eles estavam totalmente investidos no projeto.

Outas soluções de código aberto que consideramos na época foram o DimDim e o OpenMeetings. O primeiro foi abandonado ainda em 2011, enquanto o segundo é ainda hoje uma solução alternativa (na nossa opinião, inferior ao BigBlueButton).


Nossa primeira interação com os desenvolvedores do BigBlueButton foi em 2011. Tínhamos como um dos objetivos do projeto ter um cliente para dispositivos Android e o BigBlueButton não tinha nenhum na época, ele funcionava apenas em navegadores em desktops. Então, no primeiro ano do projeto, começamos a desenvolver esse cliente.

Foi bastante complexo. O Android ainda estava começando, criar aplicações de áudio e vídeo, que utilizassem a câmera e o microfone do dispositivo era muito complicado. Depois de alguns meses chegamos à primeira versão da aplicação, que divulgamos na lista de e-mails de desenvolvedores do BigBlueButton.

Uma das primeiras versões do cliente para dispositivos Android, que teve reconhecimento no blog do BigBlueButton.

Já tínhamos entrado em contato com os outros desenvolvedores antes através da lista de e-mails, mas em geral apenas fazendo perguntas. A divulgação do cliente Android imediatamente chamou atenção dos desenvolvedores. Fred Dixon, o gerente do projeto, entrou em contato já querendo conversar conosco para trocar uma ideia sobre o nosso projeto.

Isso é bastante comum nas comunidades de software livre: se você constrói algo e contribui para a comunidade, você terá a atenção dos membros dessa comunidade. Nossa presença nas listas de e-mails e nossa contribuição inicial através do cliente Android garantiram o início da colaboração que duraria anos.

Nessa época, nossa (pequena) equipe já trabalhava diretamente com outras melhorias no BigBlueButton. Ainda em 2011 contribuímos com o primeiro módulo de agrupamento de vídeos e com a primeira versão do bloco de notas da aplicação. Foram essas contribuições e a nossa proximidade com a equipe do BigBlueButton que fizeram com que o Felipe Cecagno fosse selecionado para fazer parte dos desenvolvedores oficiais do BigBlueButton menos de 1 ano depois de termos começado o projeto. Agora era oficial, estávamos infiltrados no time. 😅


Um ano e muito trabalho depois, no final de 2012 aconteceu o primeiro de uma série de eventos que se tornaram marcos para o desenvolvimento do BigBlueButton. Em dezembro de 2012 a equipe de desenvolvedores decidiu se reunir para o que seria o primeiro BigBlueButton Summit. O local escolhido foi a cidade de Ottawa, no Canadá, pois é lá que moram e trabalham os criadores do BigBlueButton.

Felipe Cecagno, Fred Dixon, Jesus Federico e Richard Alam. Primeiro Summit em um dos dias mais frios do inverno Canadense.

Este foi o primeiro dos, atualmente, 13 Summits que já aconteceram! Esses eventos duram uma semana e é um momento onde todos os principais envolvidos com o desenvolvimento do BigBlueButton se reúnem em um mesmo local para discutir o futuro do projeto e desenvolver novas ideias. Funciona de forma similar a um hackaton, onde os participantes se dividem em equipes, cada uma focada em um projeto diferente, e trabalham durante a semana inteira para chegar a uma versão inicial do seu projeto, um MVP.

Os Summits nem sempre tiveram a mesma dinâmica. Com o tempo os envolvidos foram aprendendo o que funcionava e o que não funcionava e o formato do evento foi evoluindo. O segundo, que aconteceu em abril de 2013, já teve uma agenda mais elaborada e organizada. Foi uma semana de trabalho que culminou em uma apresentação para a comunidade no último dia. Essa foi a primeira vez que fizemos uma apresentação do Mconf para a comunidade do BigBlueButton. Nossa primeira apresentação internacional. 😄

O terceiro evento também foi um marco importante, pois foi o primeiro evento que aconteceu no Brasil! A cooperação entre as equipes estava tão grande que conseguimos trazer o pessoal para cá. Á partir de então, passaram a acontecer dois Summits por ano, um no Canadá (nas cidades de Ottawa ou Toronto) e um no Brasil (em Porto Alegre).

O time de desenvolvedores que participa desses eventos não é só formado pelas equipes do Mconf e BigBlueButton (através da Blindside Networks). Outras empresas e instituições também participam. As principais são: iMDT, Seneca College, HostBBB, iCES Corporation e Riadvice.

Momentos de alguns dos últimos Summits.

Esses eventos se tornaram marcos muito importantes para a comunidade do BigBlueButton. Mesmo nós que desenvolvermos um sistema de comunicação online, sabemos que é muito difícil substituir os efeitos positivos que um evento presencial pode trazer. Ter toda a equipe na mesma sala interagindo durante uma semana inteira é algo muito positivo para o projeto. Esse tipo de prática é inclusive recomendada pelo Basecamp, uma empresa conhecida por ter times distribuídos (mais detalhes no livro REMOTE). Além disso, alguns anos atrás as equipes começaram a se reunir remotamente (utilizando o próprio BigBlueButton) em encontros semanais para atualização rápida das atividades, outra prática que ajuda na conexão entre os times.

Outro ponto positivo desses encontros de uma semana é permitir que os participantes saiam da sua rotina tradicional e foquem em desafios diferentes por um curto período de tempo. Mesmo os projetos que acabam não sendo desenvolvidos até o fim têm potencial de trazer boas ideias que podem ser aproveitadas e também de motivar os participantes (desenvolvedores costumam gostar de testar e "brincar" com novas tecnologias, linguagens de programação etc).

Esses eventos são patrocinados pelas empresas participantes e também pela Fundação BigBlueButton. Em 2010, o BigBlueButton anunciou seu objetivo de criar esta fundação para suportar o desenvolvimento do software e da comunidade, nos moldes utilizados por outras ferramentas de código aberto, como a Mozilla. Ela foi criada alguns anos depois e hoje ajuda com diversas questões burocráticas e com os encontros de desenvolvedores. Desde 2013 a Mconf é uma das empresas membro da fundação.

Vale também citar o fato de que com essa parceria com empresas de fora do Brasil conseguimos fazer com que um evento legal acontecesse aqui no Brasil. Nossa realidade é muito diferente da realidade do Canadá, onde a maioria dos outros integrantes estão. Mesmo assim, sempre que eles vieram pra cá adoraram conhecer o Brasil e desfrutar das coisas legais que temos aqui.


Toda essa história nos trouxe ao momento atual. Hoje nossa colaboração com a equipe do BigBlueButton já está bastante sólida e o modelo de colaboração estável: reuniões, Summits, fundação.

Nos últimos anos nossas contribuições têm sido maiores do que as antigas (você pode encontrar em diversos artigos no blog do BigBlueButton falando sobre as antigas). Estamos integrados na construção do novo cliente baseado em HTML5 e não mais Flash (para a felicidade de muitos 🙏), principalmente com o desenvolvimento de toda a infraestrutura de vídeo e áudio por trás dele. Isso envolve muito trabalho com servidores de mídia, protocolos de comunicação como o WebRTC e o SIP e todos os problemas que você pode imaginar ao tentar colocar áudio e vídeo nativamente em múltiplos navegadores, sistemas operacionais e dispositivos (e.g. deve funcionar no Firefox no Windows em um PC e também no Safari em um iOS em um iPhone). Compartilhar áudio e vídeo nativamente na web com HTML5 ainda é um dos maiores desafios de ferramentas que usam HTML5, principalmente quando é em tempo real e para grupos grandes de pessoas. Não é nada fácil! 😅

Exemplo de uma conferência no novo cliente HTML5. No desktop à esquerda e em um celular à direita.

Além disso, trabalhamos em diversas outras frentes: evolução da plataforma para utilização de containers (Docker e Kubernetes), melhorias na API (que ainda é um pouco velhinha mas está evoluindo), o eterno API Mate, testes de carga, evoluções do cliente HTML5 tanto no lado do cliente quanto no lado do servidor etc.


Esses são os principais desafios atuais, mas não os únicos. O tempo e a evolução das tecnologias de compartilhamento de áudio e vídeo na internet trouxeram muitos competidores para o BigBlueButton, alguns deles com a capacidade de levantar milhões de dólares de financiamento para construir suas ferramentas. Mas nenhum tem sua base construída sobre um software de código aberto e, muito em função disso, nenhum conseguiu criar uma comunidade como a do BigBlueButton.

Isso é algo que mais e mais empresas e pessoas estão dando valor atualmente (vide a compra do GitHub pela Microsoft) e é algo que não se constrói da noite para o dia. É preciso muita dedicação (e tempo) para mostrar que um software aberto e gratuito tem capacidade de competir com soluções proprietárias e angariar entusiastas e usuários que acreditem nisso e queiram ser parte de uma comunidade. Ao mesmo tempo, desenvolvedores estão cada vez mais utilizando e apostando em ferramentas de código aberto. Colaborar com projetos de código aberto não só ajuda o projeto e os usuários das ferramentas mas é também ótimo para o seu currículo. Inclusive, empresas estão cada vez mais considerando o GitHub dos desenvolvedores no processo de seleção, ou seja, suas contribuições são o seu currículo.

O BigBlueButton tem atualmente cerca de 12 anos de vida. O Mconf, 8 anos. São mais de 20 mil commits, 3500 forks e 90 contribuidores no seu repositório no GitHub. Foi traduzido pela comunidade para mais de 90 linguagens e tem um dos módulos mais usados no Moodle (mais de 6 mil sites o utilizam atualmente). É um projeto de impacto global.

Hoje, mais do que utilizadores do BigBlueButton, somos uma empresa que constrói suas ferramentas e serviços em cima dele e contribuí grande parte do que desenvolve de volta para a comunidade. Gostamos muito de ser parte e de termos ajudado a construir essa que podemos chamar de maior comunidade de webconferência de código aberto do mundo.