Ferramentas do usuário

Ferramentas do site


v04n03:35

HOW TO

EDIÇÃO Dezembro 2011

Como Participar do Google Summer of Code

O Summer of Code é uma iniciativa da empresa Google, que busca incentivar a participação de estudantes em projetos de software livre. Mais de 4500 estudantes em todo o mundo já participaram desse programa, que continua crescendo. O estudante participante conta com o auxílio de um mentor, assinalado a ele pela instituição que mantém o projeto em que ele irá participar. Durante três meses o estudante irá desenvolver código para o seu projeto, mantendo contato com outros desenvolvedores, e se familiarizando com diversas tecnologias diferentes de desenvolvimento distribuído de programas. Além de vantagens em termos de networking e crescimento pessoal, o estudante também recebe remuneração atrativa.

O que é o Google Summer of Code

O Google Summer of Code (GSoC) é uma iniciativa patrocinada pela empresa Google, que oferece aos alunos universitários do mundo inteiro a oportunidade de trabalhar em projetos de software livre. Existem duas formas de participação: a primeira cabe às instituições que devem oferecer os projetos de software livre e os mentores que vão supervisioná-los; a segunda fica a cargo dos estudantes, que irão trabalhar em projetos (desenvolvidos por eles mesmos), sob orientação de mentores (escolhidos pela instituição). O Google Summer of Code começou em 2005, e logo no primeiro ano contou com 40 organizações e aproximadamente 400 estudantes. Tais números têm crescido ininterruptamente, e, na edição de 2011, aumentou para 150 organizações e mais de 1000 alunos. Cerca de 4500 estudantes e 3000 mentores já participaram dessa iniciativa em mais de 100 países1.

O programa acontece durante as férias de verão do hemisfério norte, compreendendo o período que vai do final de maio ao final de Agosto. A maioria dos estudantes participantes é dos cursos de graduação em Ciência da Computação e Engenharia da Computação. Entretanto, o programa não somente é aberto a outras áreas, como também e aberto a outros graus de instrução, tais como o Mestrado e o Doutorado. Testemunha dessa amplitude é o fato do GSoC contar, entre seus veteranos, alunos de ciências tão distintas como, por exemplo, a Biologia e a Engenharia de Minas.

O porquê de participar

O Google Summer of Code beneficia tanto os alunos quanto as instituições participantes, eventualmente gerando benefícios sociais, como a difusão de programas de código livre10. Os estudantes envolvidos ganham tanto tecnicamente quanto financeiramente. Do ponto de vista financeiro, cada estudante participante recebe 5.000,00 dólares pelo seu trabalho. Os benefícios pessoais, por outro lado, podem ser ainda mais importantes. Muitos dos estudantes selecionados puderam, pela primeira vez, participar de um projeto de código aberto graças a essa iniciativa3. Através do programa, os estudantes são expostos à situações reais que fazem parte do processo de construção de aplicações, como desenvolvimento distribuído, revisões de código e elaboração de licenças de software. Além disso, os estudantes tornam-se conhecidos nas comunidades de software aberto, algo que sem dúvida traz vantagens profissionais, como, por exemplo, contratos de trabalho.

As instituições participantes também se beneficiam do programa. Primeiro porque podem ter acesso a uma mão de obra entusiasmada e muitas vezes extremamente competente. Segundo porque têm a possibilidade de encontrar e eventualmente contratar profissionais cuja dedicação foi comprovada através de um projeto real. Nessa última direção, o programa pode ser visto como um estágio à distância, pois permite que estudante e instituição se conheçam melhor e avaliem a compatibilidade entre seus interesses de maneira mais profunda que uma entrevista de emprego.

Como participar

Instituições participam do programa submetendo propostas de trabalho. Cada organização participante possui um administrador responsável por submeter os projetos de sua instituição. Um comitê formado por funcionários da empresa Google seleciona quais dessas instituições poderão ser financiadas. O Google também informa às organizações quantos estudantes elas poderão selecionar, porém a decisão final de quais estudantes serão aceitos no programa cabe às organizações. O critério para escolha do número de estudantes alocados leva em consideração itens como popularidade e abrangência da organização, bem como sua capacidade de manter os estudantes como participantes do projeto após o término do programa5.

Estudantes participam do Summer of Code submetendo propostas para as organizações selecionadas. Essas propostas normalmente são relacionadas às idéias de trabalhos previamente apresentadas pelas instituições. As propostas submetidas pelos estudantes são classificadas pelas organizações alvo, e recebem um mentor designado pela mesma. Muitas instituições exigem que os alunos submetam suas propostas para listas de discussão dos desenvolvedores do projeto, a fim de que elas possam ser examinadas e discutidas pelos membros da lista.

Como escolher uma instituição

É possível ter uma idéia das organizações que participarão do programa pela lista das organizações que participaram em anos anteriores6. Estudantes tendem a escolher as instituições com as quais eles tenham mais afinidade, em termos profissionais ou pessoais. Esse tipo de afinidade advém do uso constante de programas de código aberto, seja na vida prática ou em projetos de pesquisa acadêmica. Por exemplo, um aluno que trabalha com otimizações de código para o LLVM tende à submeter propostas para essa ferramenta. Um estudante pode submeter projetos para instituições diferentes, embora ele possa participar de somente um projeto. A fim de efetuar uma boa escolha, recomenda-se que o estudante busque entrar em contato com membros da comunidade almejada, com os possíveis mentores, e com ex-participantes daquela instituição. Nesse caso, vale a pena investir tempo conhecendo melhor a missão, tamanho e abrangência de cada instituição de interesse. Finalmente, espera-se que estudantes venham a trabalhar com um projeto que lhe desperte entusiasmo, pois um dos objetivos do programa é que esses estudantes se tornem desenvolvedores ativos dos projetos que participaram.

Como escolher um projeto

Geralmente as organizações participantes mantêm uma página sobre idéias anteriormente propostas junto ao programa. Esse é um ótimo canal para encontrar idéias para as próximas edições. Espera-se que o estudante demonstre seu interesse expondo suas idéias junto às listas de discussão, ou outros canais apropriados, da comunidade escolhida. Nesse caso, o estudante será orientado pelos demais membros dessa comunidade sobre como formular uma proposta de trabalho. O estudante não precisa, necessariamente, submeter uma proposta relacionada a algum a idéia previamente definida pela organização. Boas idéias para projetos podem ser também encontradas em blogs ligados à comunidade, em suas listas de discussão ou junto às ferramentas de rastreio de bugs. Em alguns casos, uma possível solução para o problema já foi discutida, mas tendo baixa prioridade, ainda não foi implementada.

Como maximizar a chance de aceitação

Existem algumas formas de aumentar a chance da proposta ser aceita. A melhor maneira, nesse caso, é o estudante já participar da comunidade de seu interesse, tendo submetido patches para os programas em que se propõe a trabalhar. O estudante comprova, assim, sua experiência e dedicação. Outra maneira de melhorar as chances de aceitação consiste em conversar com os possíveis mentores quando da elaboração da proposta de trabalho, pois, em última instância, serão esses que escolherão as propostas aceitas. Finalmente, a participação em listas de discussão é extremamente recomendável. Submetendo a sua proposta à lista, o estudante tem a oportunidade de receber críticas e comentários dos mais variados tipos, podendo, assim, melhorar o conteúdo de seu texto.

Como tornar o projeto útil academicamente

O Google Summer of Code é aberto não somente aos estudantes de graduação, mas também aos alunos de programas de mestrado e doutorado. Nesse caso, é possível que os alunos interessados possam trabalhar em temas relacionados ao seu tópico de pesquisa. Para que tal possa ser feito, é importante que o aluno possa contar com o apoio de seu orientador acadêmico. O orientador pode, por exemplo, contribuir com idéias para projetos, e revisar a proposta que será submetida.

Como organizar a proposta

Uma proposta deve descrever de maneira clara o que será implementado, assim como o interesse do estudante nesse projeto. Como a seleção das propostas costuma ser disputada, é interessante que os alunos descrevam, de forma convincente, a razão pela qual eles se consideram aptos a realizar a tarefa proposta. Estudantes devem apresentar currículo acadêmico e profissional de forma concisa, listando experiências com as tecnologias relacionadas ao projeto, bem como com outros projetos de código livre. Em alguns casos, a instituição de interesse possui um padrão para submissão de propostas. Para a submissão propriamente dita, a empresa Google disponibiliza um aplicativo web, Melange2, que recebe as propostas submetidas on-line.

Como é o processo de participação

Caso a proposta de trabalho seja aceita, o estudante é notificado e a etapa de integração junto à organização se inicia. Essa etapa, que precede a codificação propriamente dita, tem por objetivo incentivar o estudante a conhecer melhor a comunidade para a qual ele irá contribuir: as pessoas que trabalham no seu projeto, os canais de discussão desse, os padrões de escrita de código e o funcionamento do repositório a ser utilizado. Algumas organizações mantêm páginas web criadas especialmente para ajudar os novatos em um projeto (e.g. a Mozilla mantém a página wiki JavaScript:New to Spider Monkey7).

Após o período de integração, se inicia oficialmente a etapa de codificação da proposta. Durante essa etapa o estudante deve fornecer à organização, em especial ao seu mentor, um relatório de progresso periódico. Algumas organizações definem um local específico (blog, wiki,etc) onde o relatório deve ser publicado, enquanto outras deixam a escolha de tal canal a critério do estudante

Durante a etapa de codificação é exigido dos mentores e estudantes o preenchimento de dois questionários de avaliação do progresso obtido. O primeiro estará disponível aproximadamente no meio da etapa, e o segundo ao final do programa. Os questionários são de preenchimento obrigatório e em caso de não preenchimento, o estudante pode ser desqualificado do programa e, por consequência, perde o direito à bolsa. Ao final do programa, o estudante também deve enviar o código produzido para o repositório especificado pela empresa Google para o projeto.

Conversas com o mentor

O mentor é o principal ponto de comunicação entre o estudante e a organização, mas a comunidade pode ser de grande ajuda durante o projeto. As dúvidas e problemas devem ser esclarecidos o quanto antes, pois o desenvolvimento distribuído é difícil por natureza. Não ter alguém para discutir pessoalmente uma idéia ou uma dificuldade pode atrasar o progresso do projeto. A comunicação via email nem sempre é rápida, por isso ser proativo na comunicação é imprescindível.8

Datas Importantes

A empresa Google disponibiliza todo ano um calendário para o programa (e.g. calendário da edição 20119), através do Google Calendar, contendo todas as datas importantes. O calendário também está disponível em outros formatos (XML,ICAL,HTML) para ser importado por outros softwares

Recursos

Sobre os autores

Igor Rafael é aluno do Programa de Mestrado em Ciência da Computação da UFMG, tendo graduado-se Bacharel em Ciência da Computação nessa mesma universidade. Durante a sua graduação Igor trabalhou como engenheiro de software, programando principalmente em Java, C e C++.
Fernando Magno é professor do Departamento de Computação da Universidade Federal de Minas Gerais. Fernando é doutor em ciência da computação pela University of Califórnia, Los Angeles, mestre e bacharel em ciência da computação pelo DCC/UFMG. É Editor Associado da SBC Horizontes, coluna How To.


Esta é uma publicação eletrônica da Sociedade Brasileira de Computação – SBC. Qualquer opinião pessoal não pode ser atribuída como da SBC. A responsabilidade sobre o seu conteúdo e a sua autoria é inteiramente dos autores de cada artigo.
v04n03/35.txt · Última modificação: 2020/09/22 02:27 (edição externa)

Ferramentas da página