Reconhecendo as mentes por trás do desenvolvimento de software científico

Título: The Astropy Problem

Autores: Demitri Muna et al.

Instituição do primeiro autor: Center for Cosmology and AstroParticle Physics and Department of Astronomy, The Ohio State University, EUA

Status: disponível no arXiv [acesso aberto]

O artigo de hoje não é sobre ciência em si, mas sobre ferramentas que utilizamos fazendo ciência. Mais especificamente, sobre o reconhecimento e importância que (não) damos àqueles por trás de tais ferramentas. Ele se foca no Astropy, um pacote básico para astronomia na linguagem de programação Python, que é largamente utilizado pela comunidade. Os problemas encontrados pela Colaboração Astropy que são levantados neste artigo estendem-se a qualquer um envolvido em desenvolvimento de software para astronomia e, possivelmente, ciência em geral.

Uma Breve História do Astropy

Se você já escreveu um código em Python para ajudá-lo em uma tarefa em Astronomia, há uma boa chance de que ele comece com “import astropy“. Você provavelmente leu também artigos em que o Astropy é utilizado para processar e analisar dados. Se você por acaso tem um desses artigos por perto, cheque algo rapidinho: os autores citaram o artigo Astropy Collaboration et al. (2013) como referência? Se a resposta é não, este provavelmente não é o único caso. Tal artigo tem apenas menos de 600 citações, o que claramente não reflete sua importância para nossa comunidade. Mesmo que você não escreva nenhum código, você provavelmente deparou-se com dados que foram coletados, reduzidos ou analisados por códigos utilizando o Astropy.

Astropy é mais velho do que você pensa. As bases para a colaboração começaram em 1998 no Space Telescope Science Institute (STScI). IDL era a linguagem de programação mais popular em astronomia na época, mas estava sujeita a uma taxa de licença. STScI foi o primeiro a apontar o potencial que uma mudança de IDL para uma linguagem de programação moderna e grátis como Python traria. Na época, todo o desenvolvimento estava diretamente ligado a missões do STScI; qualquer generalização para outros telescópios tinha de ser argumentada. No início dos anos 2000, essa mudança para Python estava popularizando-se na comunidade. Muitas pessoas não tinham mais paciência com algumas das tarefas desatualizadas existentes; Python representava uma alternativa fácil e moderna.

Tal mudança não foi um esforço organizado inicialmente. Muitas pessoas estavam fazendo isso ao mesmo tempo e independentemente. Em um dado momento, Erik Tollerud, um estudante de pós-graduação na UC Irvine na época, percebeu que existiam quatorze pacotes independentes em Python para realizar transformações de coordenadas. Isso chamou atenção para a necessidade de um esforço coordenado de desenvolvimento, que em 2011 culminou no projeto Astropy. Ele incorporava muito do software desenvolvido no STScI mencionado acima, com algumas funcionalidades adicionais. Atualmente ele inclui manipulação de sistemas de coordenadas, tempo e datas, modelagem, suporte para arquivos FITS, ASCII e VO, cálculos cosmológicos, visualização de dados e muito, muito mais. Em suma, é uma ferramenta maravilhosa para suprir as necessidades diárias de um astrônomo.

O problema: quem está pagando por tudo isso?

Se o Astropy é tão maravilhoso, é claro que recebe bastante financiamento, certo? Errado. Não ganha nenhum. Exceto pelos esforços iniciais no STScI, ninguém mais foi pago por seu trabalho no Astropy. O desenvolvimento é liderado por estudantes de pós graduação e pós-docs, com algumas contribuições de alunos de graduação e professores, no seu tempo livre. Essa completa falta de financiamento de algo que atualmente é tão essencial para nossa comunidade, somado ao pouco reconhecimento na forma de citações, é algo que não deveria ser ignorado. O artigo de hoje busca levantar esse problema e propõe algumas potenciais soluções.

Mas quem deveria estar pagando? Funcionários da NASA dizem que seu dinheiro deve ir para projetos específicos, não pode ser utilizado para software genérico. Instituições acadêmicas afirmam que sua missão primária é educação, então eles não podem financiar desenvolvimento de software. Outras instituições científicas argumentam que sua responsabilidade é operar e manter os telescópios e arquivos de dados que já estão sob sua responsabilidade. Finalmente, projetos observacionais receberam dinheiro para fornecer dados, não para desenvolver software para a comunidade. Essas opiniões negativas são difundidas em astronomia. Em suma, nossa comunidade como um todo aparentemente decidiu que o Astropy e o desenvolvimento de software em geral não é algo que valha a pena financiar. No entanto, todos dependemos criticamente disso, de uma forma ou de outra. E não é barato, como você pode ver na Tabela 1. Quão absurdo é isso?

Tabela 1: algumas estatísticas do Astropy baseadas na versão v1.2, disponível no repositório em julho de 2016. Todos os repositórios na conta do GitHub foram incluídos, mas bibliotecas externas em C não foram consideradas. O custo e o esforço de desenvolvimento foram estimados utilzando o software SLOCCount, de David A. Wheeler.
Tabela 1: algumas estatísticas do Astropy baseadas na versão v1.2, disponível no repositório em julho de 2016. Todos os repositórios na conta do GitHub foram incluídos, mas bibliotecas externas em C não foram consideradas. O custo e o esforço de desenvolvimento foram estimados utilizando o software SLOCCount, de David A. Wheeler.

Além disso, as pessoas não apenas utilizam o Astropy como ele está, mas também existe expectativa de que ele continuará a ser desenvolvido, que mais tarefas serão adicionadas, bugs no código resolvidos e assim por diante. Parece que software é algo que simplesmente acontece, então esperamos que ele seja de graça. Contudo, os desenvolvedores investem seu tempo para isso, às custas de sua pesquisa e de sua taxa de publicação. Ainda assim, seus esforços em prol do Astropy não são usualmente considerados por comitês de seleção.

Possíveis soluções

Os autores apontam que financiamento deveria ser oferecido não apenas para manter os softwares atuais, mas também aqueles de que precisaremos no futuro. Deveríamos criar empregos que ofereçam estabilidade e bons salários a pessoas dispostas a trabalhar em desenvolvimentos de software. Alguns caminhos para atingir isso são sugeridos pelos autores. Um deles é uma taxa de adesão ao Astropy. Instituições pagariam uma taxa voluntária, cujo valor seria baseado talvez no número de usuários. Isso não requereria uma licença ou restrições ao uso do código, ou alteraria de qualquer maneira a maneira com que o Astropy é distribuído, apenas seria uma forma de cobrir coletivamente seus custos.

Outra opção é a criação de posições de desenvolvedor com dedicação exclusiva em projetos existentes, e futuros, uma vez que eles atinjam um certo patamar de financiamento. A ideia é que qualquer projeto com financiamento superior a um dado limiar deveriam contratar um desenvolvedor para trabalhar dentro do projeto, mas servindo de contato com o Astropy. Eles é claro trabalhariam em códigos beneficiando diretamente o projeto, mas tendo em mente que os códigos sejam adaptáveis para uso da comunidade.

Essas são apenas algumas das maneiras de contornar o chamado “problema do Astropy”, mas servem para mostrar que existem soluções fáceis. Nossa comunidade deveria estar levando-as em conta. Hoje, recebemos e mesmo esperamos grandes contribuições dos desenvolvedores de software científico sem apoio, compensação, plano de carreira ou mesmo reconhecimento. É consenso que nos faltam as ferramentas necessárias para analisar a grande quantia de dados disponíveis atualmente, então é claro que precisamos de pessoas dispostas a trabalhar em software que nos permita fazer isso. É sensato que a comunidade comece a recompensar esses esforços, além de respeitá-los, encorajá-los e possibilitá-los. O que você acha? Você tem outra sugestão para resolver o problema? Conte-nos nos comentários!

Nota: o artigo aqui discutido não é um artigo oficial ou oficialmente endossado pelo projeto Astropy; ele reflete apenas a opinião dos autores.


Original em inglês: Recognizing the minds behind scientific software, por Ingrid Pelisoli

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s