Adoptar, estender ou fazer: necessitamos mesmo de mais uma framework?

Ricardo Caetano, CTO na Opensoft, explica que antes de começar qualquer projecto de software deve ser feita uma avaliação às necessidades da especificidade do negócio, tendo em conta os objectivos, grau de complexidade e volumetria.

Ricardo Caetano, CTO da Opensoft

Ricardo Caetano, CTO da Opensoft

A framework é uma peça importante no desenvolvimento de software, uma vez que disponibiliza um conjunto de bibliotecas, ferramentas e processos de trabalho que permitem ao programador implementar funcionalidades complexas de forma mais célere e sem necessitar de repetir trabalho.

Hierarquicamente, a framework situa-se no ponto em que muito do trabalho “pesado” já foi feito, mas ainda há espaço e flexibilidade para adaptar componentes ou alterar o seu comportamento, permitindo a resolução de um desafio específico associado ao desenvolvimento de um projecto de software.

Assim, uma framework permite pensar de forma mais clara sobre um problema e, idealmente, ajuda a  resolvê-lo. Tudo isto sem  impor limitações sobre o resultado pretendido, uma vez que permite ao programador adaptá-la ao seu projecto.

Adoptar, estender ou fazer?

A adopção de uma framework como forma de trabalho comum em várias equipas e projectos permite a cristalização de conhecimento acerca da framework e, consequentemente, a partilha desse conhecimento na organização ou com terceiros. Com este processo, verificam-se ganhos de eficiência e eficácia.

Geralmente, a maior parte dos projectos de software adoptam uma ou mais frameworks, até porque não é comum encontrar um problema que exija a criação de uma framework de raiz. Além disso, desenvolver uma framework de raiz exige um investimento elevado e uma equipa dedicada ao projecto durante um período considerável.

A opção de estender uma framework ocorre quando se verifica que existe uma necessidade partilhada por vários projectos e que as frameworks disponíveis não a endereçam com a abrangência desejada. A grande vantagem é que permite dar um avanço considerável às equipas de projecto, uma vez que já está assegurada a integração dos componentes, a documentação, as ferramentas necessárias e os testes para novos tipos de utilização.

Dificuldades na criação/extensão de uma framework

A framework tem de ser encarada como um produto, onde os clientes são os vários projectos, equipas e programadores que a utilizam. Esta só cria valor se for utilizada em vários contextos, caso contrário, corre o risco de ficar excessivamente presa a um problema ou domínio particular.

É importante ter uma visão clara do que se pretende atingir, mas também é necessário ter consciência de que é muito difícil conseguir generalizar os problemas que a framework endereça logo à primeira tentativa. O tempo permite que se disponibilizem novas versões mais completas e que integram o feedback recebido dos programadores e equipas que utilizam a framework.

Há certezas sobre a utilização de uma nova framework? Como qualquer produto, não se pode garantir que terá clientes. Se as necessidades do público-alvo forem bem conhecidas e o produto lhes der resposta, a probabilidade de adopção será mais elevada, o que permitirá evoluir o produto através do feedback dos utilizadores e, consequentemente, extrapolar para mais cenários de utilização. Com base nesse pressuposto, é importante dar foco à documentação, produção de material de formação, desenho do conceito de produto e, claro, uma boa divulgação.

Como evoluir a framework

A utilização de tecnologias recentes e a constante actualização são um fator crítico para qualquer framework. Os clientes são sobretudo programadores que têm uma necessidade elevada de actualização, por isso a framework deve conseguir acompanhar essa necessidade, utilizando ela própria tecnologias recentes ou emergentes.

A evolução serve também para endereçar questões de segurança e de performance. No entanto, ao longo do processo, é imperativo assegurar sempre a compatibilidade de versões ou facilitar a sua conversão, para que seja simples aos utilizadores actuais também evoluírem os seus projectos.

É importante também não esquecer a evolução da framework. Uma das hipóteses é a incorporação de mais componentes para endereçar novos cenários de negócio e, eventualmente, escalar para SaaS, por exemplo.

Conclusão

Antes de começar qualquer projecto de software deve ser feita uma avaliação às necessidades da especificidade do negócio, tendo em conta os objectivos, grau de complexidade e volumetria. Além disso, devem ser estudadas as opções já disponíveis em SaaS ou Plataforma e feita uma análise exigente que inclua custo, escala e performance.

Se o resultado dessa análise for o desenvolvimento de software, é sempre conveniente considerar a utilização de uma ou mais frameworks. No entanto, se o domínio de negócio é bastante específico, pode fazer sentido a criação de uma framework, mas é fundamental assegurar que se detém os recursos necessários ou acesso a um parceiro com esse tipo de mestria.

Ricardo Caetano, CTO na Opensoft




Deixe um comentário

O seu email não será publicado