20 anos de agilidade no desenho, desenvolvimento e evolução de soluções digitais resolveram ou criaram um grande problema?, provoca Silvio Meira; cientista-chefe da TDS aponta 15 medidas para reduzir os riscos do seu projeto
A cultura ágil surgiu há pouco mais de 20 anos com a promessa de dinamizar os processos em alinhamento com a valorização do capital humano e hoje está plenamente estabelecida no ambiente corporativo. Mas, apesar dos resultados positivos na gestão de projetos, há quem identifique um sério risco para as organizações (e para a sociedade) caso ela não seja desenvolvida com método.
Uma das pessoas a alertar para essa questão é Silvio Meira, cientista-chefe da TDS Company, que, em conjunto com Vinícius Garcia, também cientista da TDS, tem desenvolvido uma reflexão a respeito dos – como eles chamam – 3 As: Agilidade, Arquitetura [de software] e Apocalipse. Em março, o assunto foi debatido na TDC Connections, maior evento relacionado a desenvolvimento de software no Brasil.

A combinação entre agilidade e arquitetura de software é uma das fundações principais das organizações, mas a inobservância de determinados princípios pode trazer no médio prazo [meses, até] o colapso do que foi desenvolvido em décadas.
“Nos últimos 25 anos, escrevemos uma sociedade em código. Acredito que poucas pessoas pararam para pensar nos impactos filosóficos, sociais e econômicos disso. O código está presente desde o lançamento de um foguete até a uma simples maquininha de pagamento de um vendedor na rua. E agora o próximo passo é termos robôs escrevendo boa parte dos códigos. São fatores que reservam implicações dramáticas para a humanidade se não lidarmos com a combinação de agilidade e arquitetura, pois potenciais problemas não irão atingir apenas uma ou outra organização, mas toda a sociedade”, alerta Silvio Meira.
AGILIDADE E CÓDIGO: COMO COMBINÁ-LOS?
Um processo ágil deve ser descentralizado [comunicação realizada entre os agentes sem a influência de um mediador] e distribuído [decisões sendo tomadas não apenas no núcleo
da gestão, mas nas bordas das organização, onde os problemas estão]. Durante a pandemia, um terceiro fator foi introduzido no agile: a assincronia, que passou a ser quase uma norma nos projetos de construção colaborativa.
“Escrever um código sob tais condições não é nada trivial. Desenhar código é desenhar pensamento, imaginar e descobrir possibilidades, transformá-las em realidade concreta. É, em última instância, influir diretamente no comportamento das pessoas”, diz Silvio.
Esse conjunto de fatores é um processo de criação de uma cultura, de um espírito de inovação e criatividade que deve ser perseguido pelas lideranças de qualquer organização.
AGILIDADE E A TOMADA DE DECISÃO
O cientista Heinz von Foerster já falou que só podemos decidir sobre o que é indecidível, pois todo o resto é cálculo e os cálculos não são decisões. Decisões são, portanto, um dos grandes problemas “insolúveis” das organizações e geradoras de novos problemas que demandarão mais decisões. Uma organização, em síntese, é um sistema de tomada de decisões.
Estudos indicam que um grande problema das organizações é reduzir o tempo de tomada de decisão. Quando a latência das decisões é de menos de uma hora, a taxa de sucesso dos projetos é de 68%. A cifra cai paulatinamente à medida que este tempo avança. Em cinco horas, por exemplo, a taxa de sucesso cai para 18%.
A metodologia ágil ataca justamente este nervo central e consequentemente o mais estratégico ao promover:
- Flexibilidade e adaptabilidade para responder rapidamente a mudanças;
- Tempo-para-o-mercado mais rápido, com respostas ágeis às mudanças;
- Mais colaboração e comunicação;
- Melhor qualidade nas respostas dadas aos problemas; e
Cliente mais satisfeito com os ciclos de desenvolvimento mais rápidos.
DESAFIOS
Para Silvio Meira, um resultado potencial da má gestão das metodologias ágeis é a falha em priorizar considerações arquiteturais de longo prazo, uma vez que a o desenvolvimento rápido e a interação da agilidade pode levar a dúvidas técnicas e a decadência, além de erosão arquitetônica. Nos grandes negócios, a situação é ainda mais delicada devido à complexa cultura organizacional e falta de distribuição real de poder.
O cientista elenca 15 pontos essenciais para superar esses desafios e evoluir os projetos com redução dos riscos inerentes.
- Documentação: O risco de perder informação no ciclo de vida do projeto ágil é alto e acontece com uma frequência muito longe do ideal. É preciso criar um conjunto de performances associadas à preservação e evolução da informação;
- Acúmulo de débito técnico no ciclo de vida do projeto: durante a evolução, cria-se um frenesi de funcionalidades que acumulam problemas não resolvidos e irão colapsar na hora de escalar o serviço ou produto;
- Visão de futuro: priorização excessiva para o curto prazo é um problema. É preciso trabalhar estrategicamente a viabilidade do negócio no longo prazo através de constantes revisões e atualizações;
- Revisar, testar e observar o uso do código pelos clientes: é preciso garantir que a entrega contínua e frequente de um projeto ágil seja de qualidade;
- Coesão: código fragmentado ou redundante dificulta a integração e consistência da base;
- Evolução da arquitetura: iterações frequentes e entrega contínua sem foco na arquitetura resultará em software radioativo. O time de desenvolvedores deve continuamente revisar a arquitetura e os padrões de design;
- Visão estratégica: sem ela, priorizar entrega rápida levará o software a não atender as necessidades de longo prazo;
- Estabelecer requisitos estruturais: flexibilidade, adaptabilidade e mudanças constantes pode levar a um looping de retrabalho. É preciso escolher o que não vai mudar e cumprir esta decisão;
- Foco no time: não valorizar as pessoas que atuam no negócio pode acarretar perda de conhecimento e expertise institucional ao longo do tempo. O time precisa ter estabilidade, carreiras claras e empoderamento na tomada de decisão;
- Implementação inconsistente entre times: criar padrões, estabelecer documentação clara, investir e treinamento e suporte são fundamentais para evitar problemas de integração e defeitos em longos ciclos de vida;
- Obsolência técnica: entrega rápida sem atualizações e manutenção regulares de tecnologia resultará em software impossível de manter, obrigando-o a ser reescrito, o que elevará os custos;
- Controle de custos: Orçamento fluido sem a devida atenção pode tornar o desenvolvimento caro e levar o projeto ao colapso. É essencial tomar medidas de controle, como revisões e atualizações períodicas do orçamento;
- Feedback do usuário: Testes, pesquisas, grupos focais, prioridade para design e UX em todo o processo são formas de validar a solução proposta pelo software;
- Segurança da informação: Negligenciar estruturalmente a segurança de dados é uma receita para desastres que podem inviabilizar o projeto. Segurança deve ser tratada “by design” de forma crítica, com modelagem de ameaças e treinamento do time; e
- Agilidade não é religião. Não deve ser tratado como um dogma. São princípios que norteiam o desenvolvimento de software. É, antes de tudo, flexível e adaptável.