2.2. Crowdsourcing
2.2.6. Projetos de software crowdsourcing mediados por plataformas
Projetos de software crowdsourcing somente podem ser executados a partir da presença dos quatro elementos fundamentais do crowdsourcing, isto é, o cliente, a plataforma, a multidão e a tarefa. Para que a plataforma execute seu papel no processo é fundamental que possua processos adaptados ou específicos para o desenvolvimento de software. Esses processos devem abordar, em algum momento, as fases no processo de desenvolvimento de software, entre as quais, destacam-se a “Especificação de software”, “Desenvolvimento de software”, “Validação de Software” e, por fim, a “Evolução do Software”.
A Figura 6 mostra um modelo genérico de um típico projeto de software crowdsourcing onde todo o processamento, desde a entrada até a saída, é gerenciado por alguma plataforma. Este modelo, de maneira ampla, pode ser descrito dessa forma: o cliente solicita à plataforma o desenvolvimento de um software, a plataforma organiza as tarefas e as atividades para o desenvolvimento do software e as delega para o trabalhador
na multidão executá-las, a plataforma gerencia esse processo e entrega o software pedido ao cliente.
Figura 6:Modelo genérico de software crowdsourcing através de plataformas.
Existem plataformas que cobrem todas fases, ou atividades, do ciclo de vida de projetos de software crowdsourcing, apesar disso, há aquelas que possuem apenas uma dessas fases/atividades.
A Tabela 7 apresenta uma relação de algumas plataformas indicando o nome da plataforma, bem como, em qual fase/atividade a plataforma se enquadra no que tange ao desenvolvimento de projetos de software crowdsourcing. Pode ser observado na
Tabela 7, a fase do ciclo de vida “Validação de software” que contém a atividade de
testes de software é aquela que possui o maior número de plataformas quando comparada a outras fases/atividades. Isso demonstra, de certa forma, que a área de testes de software crowdsourcing tem recebido atenção tanto pela comunidade científica, quanto pelos proprietários de plataformas de testes de software [110].
Tabela 7: Plataformas para projetos de software crowdsourcing
Nome da Plataforma Fase ou atividade do Ciclo de Vida do software Utest Testes Passbrains Testes 99tests Testes TestBirds Testes BugFinders Testes WeDoLogos Projeto 99Desing Projeto DesignCrowd Projeto CrowdREquire Requisitos CrowdSpring Projeto GetACoder Codificação
Entretanto, existem plataformas que podem executar projetos de software crowdsourcing cobrindo todas as fases/atividades do ciclo de vida de um software. São alguns exemplos dessas plataformas a Topcoder, a UpWork e a AppStori. Estas plataformas são descritas a seguir.
a) Topcoder
Inaugurada em abril de 2001, a plataforma TopCoder23 é, de acordo com Schenk e
Guittard [63], uma das principais plataformas para projetos de software crowdsourcing no mundo, reunindo, profissionais e amadores que realizam tarefas comerciais e que competem entre si visando, também, uma compensação financeira. A Figura 7 mostra a evolução dos usuários cadastrados na Topcoder, com destaque ao forte crescimento a partir do ano de 2012, fato esse que pode ter acontecido após a mudança de gestão e venda da Topcoder, em setembro de 2013, para a Appirio24. Em 2018, Topcoder já consta
com aproximadamente 1,2 milhões de membros25. O Facebook, como comenta Li [66],
entre tantas outras grandes organizações, por exemplo, é cliente dessa plataforma.
Figura 7:Evolução do crescimento dos usuários cadastrados na Topcoder.
A plataforma Topcoder oferece os serviços organizados em categorias de desafios divididos em: Desafios, Desafios de Desenvolvimento, Desafios de Data Science e Programação Competitiva. Quem gerencia a plataforma é a própria proprietária da
23 http://www.topcoder.com 24 https://appirio.com/ 25 https://www.deccanherald.com/business/we-are-banking-digital-drive-our-growth-668438.html - 200.000,00 400.000,00 600.000,00 800.000,00 1.000.000,00 1.200.000,00 1.400.000,00 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020
Usuários
empresa. Informações relevantes como requisitos do sistema, cronograma, orçamento e outras, são negociados pela organização diretamente com o cliente. Cada tarefa possui um escopo e é composta por requisitos técnicos que definem o comportamento esperado daquele componente e as interfaces necessárias para integrar esse componente com as demais partes do sistema. Como no desenvolvimento tradicional de software, o processo no Topcoder de acordo com Lakhani et al. [26] abrange todas as fases do ciclo de vida sendo que para cada uma dessas fases do ciclo de vida, uma chamada pública é realizada. A chamada pública é composta por seis tarefas: publicação, registro, submissão, revisão, recurso e vencedor [102].
A Figura 8, apresenta a relação entre o processo e a chamada pública. A seguir, uma breve descrição das seis fases da chamada pública.
1. Publicação do projeto na plataforma, constando como algumas informações como pagamento pela realização do projeto, prazos, entre outros.
2. Registros por parte dos interessados, feito durante o prazo de inscrição definido para este projeto. Após esse período, o candidato deve enviar uma proposta para a implementação da tarefa.
3. Os trabalhadores apresentam a implementação da proposta anterior, conforme o prazo definido.
4. As submissões são avaliadas por revisores. Avançam para etapa seguinte apenas as aprovadas.
5. Se a submissão for aprovada pelos revisores, ela é avaliada para identificar o índice de qualidade das soluções desenvolvidas, seguindo aspectos previamente definidos. Os trabalhadores podem solicitar revisão da avaliação realizada. 6. Após a passagem por estas etapas, o trabalho melhor avaliado recebe o
pagamento. O segundo colocado pode, e depende da competição, receber um percentual do valor definido para o projeto. O cliente recebe apenas a melhor solução.
Fonte: [25]
Figura 8: Etapas e fases do TopCoder
Merece destaque o desenvolvimento de software pela plataforma Topcoder, pois, conforme Howe [16] p. 11 “Os programas Topcoder têm uma média de 0,98 bug a cada mil linhas de código. O padrão do setor é 6”. O autor comenta ainda sobre a manifestação de um cliente da plataforma: “Uma empresa tradicional teria designado seis ou sete desenvolvedores para o projeto e levaria mais de um ano para concluí-lo. Nós terminamos em pouco mais de cinco meses”. Dadas as características apresentadas, a plataforma Topcoder coloca-se, atualmente, como principal referência em projetos de software crowdsourcing, como destacam Yang et al. [35].
b) UpWork
A plataforma de crowdsourcing UpWork, anteriormente conhecida como “oDesk” pode ser utilizada para o desenvolvimento de software além de outras tarefas de designers, de tradução, de profissionais de marketing, de vendas e finanças. O funcionamento básico da plataforma inicia com a publicação de um projeto com a descrição do trabalho, objetivos, resultados esperados, habilidades desejadas e o prazo de entrega. O responsável do projeto recebe inscrições de candidatos qualificados para a realização da tarefa. Os candidatos, previamente cadastrados, possuem um perfil com informações pessoais e profissionais, como histórico de trabalho, habilidades, feedbacks de clientes, competências linguísticas e de comunicação, valor da hora trabalhada, total de projetos trabalhados, e, total de horas trabalhadas.
Na plataforma, avaliações, pontuações e comentários de outros solicitantes, auxiliam no processo de seleção dos candidatos para a realização da tarefa. Além disso, uma
ferramenta da plataforma monitora os trabalhadores a cada dez minutos. A plataforma paga os clientes apenas por trabalhos aprovados. No momento a plataforma recebe cerca 10% de cada pagamento feito ao trabalhador. Não foi possível identificar, em detalhes, o processo de desenvolvimento de software utilizado pela plataforma, todavia, conforme indicado no site26 da plataforma, todas as atividades de desenvolvimento de software são
oferecidas com destaque.
c) AppStori
A plataforma de crowdsourcing AppStori pode ser utilizada para desenvolvimento de software bem como para Crowdfunding. Essa plataforma tem como objetivo possibilitar o financiamento de uma proposta e estimular a discussão e o surgimento de ideias para novos aplicativos para smartphones e futura disponibilização na loja de aplicativos Apple Store.
A Figura 9, adaptada de Wu et al. [15], descreve o funcionamento da plataforma.
Figura 9: Processo de Desenvolvimento da AppStori.
Basicamente, o processo de desenvolvimento na AppStori inicia com a criação de uma proposta de projeto. Essa proposta é composta pela especificação dos recursos do aplicativo, bem como a receita que se espera após a conclusão do projeto. O orçamento do projeto. Esta proposta será revisada e avaliada por um conselho de revisores, cujo objetivo
é garantir a qualidade dos projetos disponibilizados. Após esse conselho, definirá se a proposta tornar-se-á um projeto, ou não.
Caso seja aprovado, o projeto é disponibilizado na plataforma para ser financiado. Após a equipe faz a divulgação do projeto para atrair os recursos financeiros da multidão. A plataforma oferece ferramentas de gestão do projeto. Se o projeto atingir o valor solicitado, 7% do total da arrecadação é destinado para a plataforma. Segundo Wu et al. [15] a AppStori diferencia-se das demais plataformas crowdsourcing, pelo fato de que não há competição por parte dos participantes. Nessa plataforma, a equipe de desenvolvimento é responsável pela mobilização da multidão e arrecadar os fundos necessários para o financiamento do projeto.