Produtos digitais e antifragilidade

Criar produtos antifrágeis para ter negócios antifrágeis

Produtos digitais e antifragilidade
Photo by Bekky Bekks / Unsplash

A construção de produtos é uma arte que se alimenta de diversas disciplinas. É preciso entender de gente (quais situações geram angústias e frustrações), de tecnologia (quais ferramentas posso utilizar para aplacar esses sentimentos negativos) e de negócio (como posso fazer isso de maneira lucrativa), no mínimo.

Existem várias metodologias utilizadas durante o processo de criação destes produtos. A boa utilização destas ferramentas e processos podem acelerar a criação destes produtos, mas sua má utilização, com um foco excessivo nos detalhes do projeto por exemplo, podem impactar outras de suas características típicas, a relação dos produtos com o acaso, e enrigecer seu processo de criação. Vamos falar mais sobre isso a seguir, mas antes…

O que é design?

Para fins didáticos, vamos definir design como uma metodologia para solucionar problemas, é possível traçar alguns paralelos interessantes com o método científico. Afinal, ambos utilizam pesquisa, definição de hipóteses e a mensuração dos resultados para chegar a conclusões generalizáveis e com altas taxas de reprodução.

Porém, isso não é tudo. Como Paul Feyerabend argumenta em seu livro “Contra o método”, metodologias podem atuar de modo quase restritivo. Quando uma única metodologia ou uma série de metodologias pré-definidas tornam-se a única fonte de progresso, há um empobrecimento da construção intelectual. Galileu não seguiu o método científico para propor o modelo heliocêntrico do universo, mas os avanços para a ciência que surgiram a partir desta proposição são inegáveis, por exemplo.

E isso nos leva a duas das principais características do progresso na construção de produtos: a espontaneidade e a imprevisibilidade. Para garantir que os resultados sejam positivos, essas características não só devem ser levadas em consideração e incorporadas ao processo de criação dos produtos, é necessário que elas sejam ativamente estimuladas para obtermos melhores resultados.

O papel do acaso no progresso

Para ilustrar meu ponto sobre o acaso, decidi trazer os conceitos propostos por Nassim Nicholas Taleb, um dos maiores estudiosos sobre o assunto. Taleb é um ex-investidor de derivativos e estudioso das ciências do acaso. É responsável por termos como “Cisne Negro”, para denominar eventos com baixa proabilidade e alto impacto na nossa sociedade, e os conceitos de fragilidade, robustez e antifragilidade como veremos a seguir.

Para Taleb, sistemas frágeis são incapazes de suportar mudanças bruscas. Sistemas robustos chocam-se contra adversidades e permanecem inalterados. Já os sistemas antifrágeis são aqueles que utilizam contatos com erros e situações adversas em geral para se aprimorarem. Agora, a definição de “erro” varia de acordo com o contexto discutido: em sistemas financeiros, é a volatilidade, em sistemas imunológicos, o contato com agentes patogênicos, em sociedades e outros sistemas humanos, morte.

Em todos os casos, erros podem ser responsáveis por impactos negativos no curto prazo, mas as adaptações destes sistemas às situações citadas anteriormente tornam-os mais preparados para enfrentar novas situações adversas invariavelmente encontradas no futuro.

Software e fragilidade

Existem inúmeros exemplos da fragilidade em softwares ao longo da história. No ambiente de desenvolvimento Eclipse, um bug causado por um plug-in em uma simples biblioteca opcional foi responsável por crashar todo o sistema e torná-lo inutilizável (Eclipse bug 334466). Para evitar situações como essa, os times de qualidade, produto e desenvolvimento dedicam esforços desproporcionais a identificar potenciais problemas e corrigi-los antes do produto ir ao ar.

Isso é especialmente comum em empresas que atuam com o modelo waterfall (ou cascata) de desenvolvimento, e apesar de todo este esforço, a maior parte dos softwares produzidos hoje em dia continuam frágeis por uma série de motivos: a pressão financeira imposta pelas empresas em seus times de produtos resulta em códigos piores e mais propensos a erros, por exemplo, e a falta de documentação de projetos antigos, responsável por impactar negativamente a troca de informação entre as partes são dois fatores responsáveis por aumentar a fragilidade de produtos digitais. Outro motivo, e o mais impactante na minha opinião, é a forma como as empresas encaram seus erros.

Sistemas antifrágeis adoram erros. Empresas médias, não. O raciocínio até é compreensível: errar é caro. O tempo gasto para consertar problemas antigos poderia ser investido em novas features para seu produto, por exemplo. Algumas empresas acreditam que erros são um sinal de amadorismo. E o pior motivo: erros são imprevisíveis. É impossível saber quando e onde eles acontecerão. E a maior parte  das empresas odeia lidar com fatores além de seu controle.

É importante compreender também a forma como cada um destes conceitos existe e como se relacionam. No contexto de produtos digitais, fragilidade é um espectro, permeando em maior ou menor escala todas as etapas de um projeto. É impossível construir um produto digital sem nenhum resquício de fragilidade, mas é possível (e necessário) fazer um esforço para minimizar tais impactos, enquanto a robustez se apresenta de maneira ortogonal. Um software pode pode ser robusto em sua manutenção mas antifrágil ao desenhar especificações ou pode ser rígido na defesa de um design frágil.

Por que não construir produtos robustos?

A solução aparentemente óbvia para as falhas apontadas em sistemas frágeis é aumentar sua robustez. Apesar desta ideia fazer sentido a princípio (sistemas robustos realmente têm menores taxas de erro quando comparados com sistemas frágeis), quando observamos a construção de sistemas robustos, seus problemas tornam-se evidentes.

Reuniões de revisão de código com horas de duração, receio na hora de propor novas features, tornando o produto menos inovador e listas de requisitos cada vez mais complexas: quando 10 linhas de código ou a reorganização dos elementos de uma tela resolveriam um problema, mas pelo menos 10 horas de discussão seriam necessárias para implementar essas mudanças, isso é um sinal claro de que as tentativas de aumentar a robustez de um produto digital atingiram um patamar nocivo.

Temos certeza de que apesar de todos estes esforços, erros continuarão a existir, mas com algumas outras consequências indesejadas em seu caminho: desenvolvedores pressionados pelas expectativas irreais de PMs e executivos, cansados pelo excesso de trabalho infrutífero e um menor ROI para a empresa. Reaproveitando um conceito do Marshall Goldsmith, as features responsáveis pelo sucesso de seu produto até hoje não são as mesmas features responsáveis pela sua expansão no mercado.

E quanto mais tempo é dedicado a impedir erros de surgirem, menos tempo é dedicado a identificar novas oportunidades de expansão e capitalizar em cima destas.

Como criar produtos antifrágeis?

Se a fragilidade é um problema real no campo dos produtos digitais e a busca por robustez é cara e ineficiente, a alternativa é estimular a antifragilidade durante todo o processo de ideação, criação e manutenção dos produtos. Mas, claro, isso não é algo fácil, já que transformações culturais são processos delicados. Os maiores resultados derivam de mudanças no modo de ver erros e na maneira de lidar com as incertezas. A velocidade dessas transformações deriva, principalmente, da cultura da equipe responsável pelo desenvolvimento do produto em questão. Para fomentar essas transformações e, consequentemente, aumentar a antifragilidade de seus produtos, trouxemos algumas dicas acionáveis:

  • O design de soluções assume uma postura reducionista na maior parte dos casos: a crença de que qualquer sistema, independente de sua complexidade, pode ser reduzido em elementos essenciais e compreendido como a soma de suas partes. Sistemas complexos, no entanto, são mais que a soma de suas partes: a interação entre os componentes e o ambiente externo é responsável pelo surgimento de características despercebidas a princípio. Reconhecer, e aceitar, a impossibilidade de ter todas as informações necessárias para tomar uma decisão a prova de erros é o primeiro passo na jornada para a construção de produtos antifrágeis.
  • Independência em diversas frentes é essencial na construção de sistemas antifrágeis. Um bom exemplo é o teste do ônibus: se algum membro da sua equipe for atropelado por um ônibus (ou sofre algum acidente igualmente trágico), o processo de desenvolvimento é impedido como um todo? Assegurar o compartilhamento de conhecimento entre todos do time é importantíssimo para garantir um ambiente antifrágil. Quando uma mudança abrupta acontece na equipe de desenvolvimento de uma empresa imersa em um ambiente antifrágil, existe uma queda momentânea na moral e na velocidade do desenvolvimento, por exemplo, mas quando o conhecimento sobre o projeto até agora é devidamente compartilhado, as perspectivas trazidas por alguém externo podem identificar falhas até então despercebidas ou desenhar novas oportunidades difíceis de serem identificadas por membros imersos desde o início do desenvolvimento.
  • Interagir de maneira constante e intensa com os usuários de seu produto (representando o ambiente externo de sistemas complexos) pode trazer inúmeros benefícios a seu produto. Inevitavelmente, falhas serão encontradas, features serão utilizadas de maneiras diferentes do esperado e você identificará demandas até então despercebidas. Para se beneficiar destes feedbacks da melhor maneira possível, é necessário assegurar que as falhas identificadas pelo usuário não impactem sua experiência de maneira extremamente negativa, como falhas capazes de inutilizar seu aplicativo, por exemplo, aceitar que a percepção dos usuários sobre seus produtos é, no mínimo, tão importante quanto a sua. Faça as correções necessárias, implemente modificações rapidamente e entre em contato novamente com seus usuários, tanto para informá-los destas modificações quanto para coletar novos feedbacks.

Inscreva-se Product Oversee

Textos todas às quartas 7h45 na sua caixa de entrada.
faleconosco@productoversee.com
Inscreva-se