Guidelines: pesquisa aponta caminhos eficazes para desenvolvimento de softwares para blockchain

Autor da dissertação “Uma Análise das Ferramentas para Desenvolvimento de Software para Blockchain com Desenvolvedores Do Mercado”, Anderson Urbano é, agora, mestre em Engenharia de Software pela CESAR School. Formado em Engenharia da Computação pela UFPE, ele tem quatro anos de mercado e é engenheiro de Software do CESAR. Ele detalhou a pesquisa.

Aproximação com o tema
Devido às minhas próprias experiências como desenvolvedor e tendo experimentado a tecnologia blockchain e escrita de smart-contracts, fiquei com a percepção de que as ferramentas e plataformas que existiam poderiam não ser suficientes para o desenvolvimento de aplicações comerciais robustas e com grande número de usuários. A partir daí, comecei a pesquisar trabalhos acadêmicos e da indústria sobre o tema para ver se fazia sentido essa minha percepção, o que acabou me levando ao estudo que desenvolvi.

O desenrolar da pesquisa
No início, eu sabia que faria um trabalho na área de blockchain mas ainda não tinha um tema definido. Fiquei interessado no fenômeno das ICOs (Initial Coin Offerings), que é uma nova forma de levantar fundos para o desenvolvimento de projetos blockchain, uma espécie de pré-venda de tokens da plataforma para usuários iniciais. Isso vem sendo bastante utilizado e foi inclusive muito notado durante a última bolha das criptomoedas. Eu tinha interesse em estudar as ICOs, suas diferenças em relação ao que existia antes, vantagens e desvantagens mas acabei me afastando dessa temática por não ser tão ligado ao mundo da Engenharia de Software em mas, talvez, a disciplinas de Administração, Economia ou Direito.

Direcionamentos do mercado que nortearam a pesquisa
Dentre os trabalhos que eu encontrei, dois se destacaram por pesquisar a opinião de desenvolvedores reais trabalhando no dia-a-dia com blockcahin. Eles serviram de norte para o meu trabalho (inclusive na metodologia), mas tinham focos um pouco diferentes do meu. Um tinha interesse em mapear o perfil desses desenvolvedores (senioridade, experiências, expectativas, etc) e o outro buscava descobrir as práticas e processos de engenharia de software utilizadas por eles.

Solução entregue aos usuários
A maior utilidade da pesquisa ao meu ver é prover um panorama das ferramentas empregadas, hoje, para desenvolvimento blockchain e suas limitações para que sejam eventualmente superadas e que a tecnologia se torne mais adequada para a criação de soluções comerciais no mundo real.

Pontos de destaque descobertos na pesquisa
Foram várias descobertas interessantes. Por exemplo, ainda há falta em muitas plataformas blockchain de ferramentas comuns no desenvolvimento de software como debuggers, ou mesmo funcionalidades de edição de texto e refactoring. Um dos pontos mais preocupantes a meu ver é a necessidade de melhores ferramentas de teste. Blockchain tem a peculiaridade de que, uma vez liberada uma versão do software, é complicado aplicar atualizações e correções de erros pois depende da aceitação da nova versão pelos nós mineradores da rede. Isso torna mais essencial ainda um processo de testes robusto em etapas anteriores ao deploy.

Guidelines sugeridos pela pesquisa e suas funções
Os guidelines foram uma maneira de dar algumas ideias de melhorias de ferramentas existentes e guiar a criação de novas ferramentas. Eles incluem coisas como a utilização de linguagens de programação de propósito geral existentes em vez da criação de novas linguagens como a Solidity, a aplicação de testes formais de software quando possível, a utilização de plataformas com redes já consolidadas e suporte a redes simuladas e de testes.

Etapas posteriores
Talvez eu escreva um artigo em algum momento mas por enquanto não tenho planos de continuar o estudo. Algo que seria interessante de se fazer e até mencionei na minha seção de trabalhos futuros é a criação de um estudo posterior validando e ajustando os guidelines propostos, talvez em algum momento eu prossiga com essa ideia.

 

 

Rolar para cima
Rolar para cima

Onde estamos

Rua Bione, Cais do Apolo, 220, Recife - PE, 50030-390