Definição de funcionalidades e uso de metodologias ágeis

Na construção de um projeto, é essencial ter uma lista clara de funcionalidades e requisitos técnicos para orientar o desenvolvimento. Ao mesmo tempo, definir as funcionalidades de um projeto é uma etapa crucial para garantir que as expectativas sejam atendidas e que o resultado final seja satisfatório 

Workshop de definição de funcionalidades com Metodologias ágeis
Workshop de definição de funcionalidades com Metodologias ágeis

Optamos em nosso projeto por trabalhar de forma colaborativa e utilizar metodologias ágeis, para criar uma lista dinâmica de recursos e requisitos. Essa lista será constantemente revisada e atualizada ao longo do projeto, mas serve como um ponto de partida para identificar os pontos iniciais do projeto e avaliar as suas necessidade de infraestrutura e equipe técnica. Além disso, facilita priorizar os itens, uma vez que recursos e tempo são limitados. [1]

A metodologia ágil é conveniente porque permite avaliar os recursos desejados e focar nas prioridades. É comum, durante o desenvolvimento, perder o foco e se afastar dos objetivos iniciais. Por isso, é importante voltar aos eixos do projeto e definir as funcionalidades que realmente importam. Optamos por trabalhar de forma colaborativa e utilizar como framework o Scrum, para criar uma lista dinâmica de recursos e requisitos.

A dinâmica de trabalho com metodologias ágeis

O uso de métodos ágeis tem ganhado destaque, pois essa metodologia reconhece a impossibilidade de dar conta de todas as demandas e priorizam as mais importantes. Dessa forma, é possível criar níveis de especificações, limitando o escopo do projeto e evitando que ele se torne demasiadamente complexo. Outra vantagem é permitir pensar o projeto a partir de camadas de funcionalidades, evitando que os erros se propaguem, não impactado as outras camadas do projeto.

Ao definir as especificações, é importante ter em mente o que já está documentado, evitando interpretações equivocadas. O desenvolvimento de camadas sistêmicas, demandar clareza sobre o que se espera de cada uma delas, evitando conflitos e garantindo a harmonia do conjunto

A dinâmica que usamos partiu da descrição objetiva, feita por cada membro do grupo, das funcionalidades que pretendemos, buscando explicitar cada recurso que queremos ver implementado, usando post-its em uma parede. Depois, olhamos em conjunto para as funcionalidades, buscando agrupar os iguais, parecidos ou que dialoguem com a mesma temática. 

Por fim, priorizamos os requisitos, com um conjunto de cartas de baralho que simbolizam pontos (10, 7, 3 e 1), alocando as cartas conforme a funcionalidade que pareceu a cada um a mais interessante. 

Aspectos críticos do uso de Inteligência Artificial

Em projetos que envolvem o desenvolvimento de IA, é comum a dúvida sobre a integração com outras plataformas, tornando a definição das APIs que serão utilizadas um ponto crucial. A questão da escolha das APIs, sejam elas comerciais ou de plataformas públicas, é uma decisão que deve ser tomada com base nas necessidades específicas do projeto, mas também de forma crítica. Isso porque a escolha das APIs pode ter um impacto significativo na forma como o sistema funciona, reforçando hierarquias vigentes, ao reproduzir os sistemas hegemônicos,  no desenvolvimento de projetos de IA. 

Essa hegemonia, que implica a dicussão dos mecanismos de produção social do datacolinismo, via o que chamamos de darwinismo social dos dados, se expressa, por exemplo , na tendência a das buscas retornarem bibliografia em língua inglesa e autores melhores posicionados em rankings acadêmicos. 

Uma possibilidade que aventamos para contornar, em parte, esse problema, é superpor várias APIs, privilegiando no dataset os bancos de dados públicos brasileiros, como o Scielo e o Banco Nacional de Teses. Ao superpor várias APIs, podemos promover a clusterização das respostas, fomentando a crítica dos resultados, pois permitimos que o usuário do sistema tenha acesso às respostas de buscas de diferentes plataformas. 

Esse trabalho é também de natureza pedagógica e é importante para criar uma camada de inteligência que permita ao usuário fazer uma curadoria, selecionando aqueles resultados que são mais relevantes para suas necessidades e visualizando os impactos da modelagem dos dados nas respostas dadas pelas buscas, compreendendo melhor o funcionamento do sistema e fazendo escolhas mais informadas.

[1] Texto redigido pelo ChatGPT, elaborado a partir das notas da reunião do projeto temático Fapesp LinCar, realizada no dia 18/04/2023, com a presença de: Bruno Moreschi, Dalton Martins, Giselle Beiguelman, Paula Perissinotto, Priscila Arantes, Renata Perim. Edição final: Giselle Beiguelman