Imagine um software que muda e cresce de acordo com as necessidades do usuário. A indústria de SaaS pode se adaptar a esta nova forma de fabricar produtos?
Imagine que você está sentado em sua estação de trabalho, com o café na mão; você abre uma planilha do Excel e começa a trabalhar alguns números para um relatório que deve estar pronto até o final do dia. Você se lembra de um novo algoritmo sobre o qual leu recentemente e que é perfeito para o tipo de análise que você tem em mente. Porém, há um problema: o Excel não tem uma função para esse algoritmo.
Você poderia codificar manualmente, com certeza, ou poderia aproveitar os serviços SaaS, abrir seu assistente do Bing e perguntar se ele poderia editar o código-fonte do Excel para adicionar uma nova funcionalidade. Depois de alguns segundos pesquisando na web e alguns minutos escrevendo o novo código e compilando tudo, você tem seu novo Excel com uma nova função só para você. Bem-vindo à era do software maleável.
Se esse exemplo parece algo saído de um romance de ficção científica, é porque realmente é. O número de desafios envolvidos em fazer algo assim funcionar é gigantesco, mas não intransponível. E embora ainda estejamos a décadas de ver algo tão sofisticado, aposto que começaremos a ver algumas implementações de IA realmente interessantes em relação à personalização de software no curto prazo.
A ideia de software customizado não é novidade, seja mudando a estética, ou ajustando/modificando o software para atender às nossas necessidades, ou criando uma interface que prioriza a acessibilidade. Mas isso é como mudar a cor e os bancos do seu carro. No final, você está apenas se adaptando para ter conforto, mas o chassi e o motor subjacentes permanecem inalterados.
O Paradigma do Software Tradicional
Quase todo software moderno é baseado em uma única suposição: “os designers sabem o que é melhor”. Isso, por si só, não é uma coisa ruim. Afinal, gastamos trilhões de dólares em pesquisas para entender a melhor forma de desenvolver software para nossos usuários. Existem centenas, senão milhares, de livros e workshops sobre UI, UX, GUI e outros tópicos relacionados à experiência do usuário.
Vamos falar um pouco sobre as estruturas mais populares para desenvolvimento front-end. Angular e React, ambos apoiados por grandes corporações (Google e Meta), são construídos desde o início para fornecer flexibilidade incrível aos desenvolvedores e, com criatividade suficiente, podem permitir que você crie um aplicativo da Web personalizado e poderoso.
Exceto que, como qualquer outro framework na face da terra, Angular e React são ambos teimosos e quanto mais você se desvia do padrão do framework, mais dores de cabeça você está trazendo para sua vida. Isto é especialmente relevante no desenvolvimento Angular. A maioria dos desenvolvedores optará pelo caminho de menor resistência, moldando sua visão de como a estrutura espera que você construa o aplicativo. Mais uma vez, não é uma coisa ruim por si só, considerando quanto pensamento e planejamento foram necessários para a construção dessas estruturas.
Agora, adicione outra solução testada ao longo do tempo à sua pilha de tecnologia, algo como Bootstrap ou Bulma, e você terá uma página da web bonita e útil que se parece com qualquer outro aplicativo da Web no mercado. Por um lado, isso é legal porque os usuários já sabem o que esperar. Depois de ver uma navBar, você verá todas elas. Por outro lado, espero que você tenha uma boa ideia para potencializar seu produto, porque sua estética não chama a atenção de ninguém.
Não quero parecer um desenvolvedor com superioridade moral – muito pelo contrário, na verdade. Serei o primeiro a admitir que sou parte do problema. É fácil cair na mentalidade de “o desenvolvedor sabe o que é melhor”. Aqui estão alguns dos motivos:
- Falácia dos custos irrecuperáveis: A maioria de nós gastou décadas e milhares de dólares estudando e aprendendo como codificar, construir aplicativos e criar experiências de usuário. Neste ponto, defendemos inconscientemente a nossa posição de poder, dizendo a nós mesmos que sabemos o que é melhor.
- Abordagem de tamanho único: Como diz o ditado, você não pode agradar a todos, então o que você faz quando tenta atingir o público mais amplo possível? Você segue a norma, o tipo de serviço mais comum que vai agradar ao maior número de pessoas. Infelizmente, isso também significa não considerar os valores discrepantes.
- Perseguição de tendências: Quando vemos o sucesso de alguém, é a coisa mais comum do mundo querer um pedaço dessa torta. Basta olhar para Hollywood e como a Marvel forçou todos a tentarem impulsionar seu próprio universo cinematográfico. As tendências são sinais de onde a cultura está se movendo e, para ser sincero, desenvolvedores e investidores são tão suscetíveis ao FOMO (medo de perder) quanto qualquer usuário comum.
É muito fácil, na verdade. Temos acesso aos dados, lemos e ouvimos os principais insights do setor e vemos como os produtos de sucesso fazem isso. É óbvio que somos nós que realmente sabemos como se faz. E quando a TI fica repleta de tickets porque as pessoas não entendem nossos sistemas? São apenas usuários sendo usuários.
E esse talvez seja o maior culpado por trás dessa mentalidade de “eu sei o que é melhor” – as ideias tóxicas que nós, desenvolvedores, temos em relação aos usuários. Sim, temos uma imagem melhor de um software; sim, entendemos as limitações; sim, temos de estabelecer expectativas para evitar requisitos que estejam a um passo de “transformar chumbo em ouro, por favor”. Mas a perspectiva é tudo, e por vezes estamos tão dentro de nós mesmos que não conseguimos ver como a visão externa pode mudar os nossos paradigmas para melhor.
A alternativa: software maleável
Software maleável é um conceito cunhado por Philip Tchernavskij em seu doutorado de 2019. tese. Esta abordagem visa aumentar o poder dos comportamentos de adaptação existentes, permitindo aos utilizadores separar e recombinar a sua interface. Software maleável envolve interfaces que permitem aos usuários reorganizar, adicionar ou remover elementos na granularidade de elementos individuais da UI.
Além disso, software maleável poderia, em teoria, servir como filosofia base para construir aplicações que sejam dimensionadas e alteradas de acordo com os desejos do usuário.
Como qualquer desenvolvedor ou qualquer pessoa que tenha contratado um desenvolvedor de software para um grande projeto pode dizer, o software tende a ficar inchado com o passar do tempo. Dê uma olhada no Twitter. O que antes começou como um aplicativo simples para compartilhar suas ideias em 120 caracteres ou menos, tornou-se uma hidra complicada: compartilhamento de vídeos, histórias semelhantes ao Instagram, espaços, marcas de seleção azuis e marcas de seleção douradas. Algumas dessas funções permanecem até hoje, enquanto outras surgiram e desapareceram, como o produto mais recente do Google.
Embora inchaço não seja a mesma coisa que crescimento, esses dois conceitos estão profundamente correlacionados. O Excel não era o monstro que é hoje no início, mas à medida que adicionamos mais e mais funcionalidades, o software cresceu em complexidade e acabamos com o mamute que temos hoje.
Agora, não se trata de não saber quando parar. Para se manterem competitivas no mercado atual, as empresas estão tentando fornecer uma solução que governe todas elas (desculpem o Senhor dos Anéis trocadilho), o que é extraordinário para quem já faz parte da comunidade, mas um verdadeiro inferno para os recém-chegados.
Sejamos honestos. A primeira vez que você abriu uma planilha do Excel, provavelmente você se sentiu sobrecarregado com a quantidade de opções, e só depois de horas e horas de sofrimento e procurando tutoriais é que você descobriu como fazer algo que levaria alguns minutos se você apenas sabia onde procurar.
Como ex-psicólogo e cientista de dados, fui um grande usuário do SPSS da IBM, um fantástico software de estatística que possui todas as ferramentas analíticas que você possa imaginar. Então, por que mudei para Python e R? Primeiro, porque gosto das minhas soluções open source e, segundo, porque queria ter mais liberdade para vincular a minha análise de dados a outras funcionalidades.
Mas terceiro, e mais importante, porque eu não queria navegar em quatro menus para obter as médias de algumas das minhas variáveis. Com Python, preciso apenas de algumas linhas de código que posso reutilizar conforme desejar. Às vezes, preciso apenas de uma análise descritiva rápida, sem a confusão de ter que abrir um aplicativo pesado.
Esse é um caso de uso para software maleável: ser capaz de alterar e adaptar a interface para atender às minhas necessidades como analista de dados. Mas há mais. Nos últimos anos, tem havido uma tendência crescente de explorar como os usuários poderiam escrever seus próprios aplicativos, adicionando funcionalidades e escalonando-os conforme acharem adequado. Isso também faz parte da filosofia maleável.
Conheço biólogos, sociólogos, psicólogos e matemáticos, e todos temos uma coisa em comum: todos precisamos de software para realizar nosso trabalho. Mas o tipo de testes que realizo são diferentes daquilo que um biólogo ou um sociólogo precisa. Então, e se em vez de ter um software com todas as ferramentas, tivéssemos um software básico ao qual poderíamos adicionar funcionalidades conforme a necessidade?
Como Kay escreveu em 1984“Agora queremos editar nosso ferramentas já que editamos nossos documentos anteriormente.” É simples. Em vez de ter o “novo Facebook” ou o “antigo Facebook”, poderíamos construir “minha experiência no Facebook” e, com a conectividade que temos hoje, os usuários poderiam compartilhar seus modelos, da mesma forma, a comunidade de cervejeiros caseiros cresce à medida que as pessoas compartilham suas receitas.
Claro, existe o elefante gigante na sala: como fazemos isso? É aqui que a violação da alfabetização digital surge. Personalização significa que, em algum momento, teremos que dar instruções a um computador – coordenadas, condicionais – então, como podemos alcançar essa pedra filosofal do design de software? Ironicamente, a resposta pode estar onde menos esperamos.
Os videogames são software maleável?
Admito, sou gamer e aproveitaria qualquer oportunidade para falar de jogos, mas neste caso é um exemplo fantástico. Durante décadas, os videogames forneceram ferramentas para os usuários mexerem e brincarem, dando origem à chamada comunidade modding. Embora isso tenha mudado de alguma forma nas últimas décadas, a personalização ainda está enraizada no DNA dos jogos.
Deixe-me contar a história de uma das maiores franquias da história dos videogames, League of Legends, um MOBA gratuito onde equipes de 5 jogadores competem entre si, tentando destruir a base adversária. Hoje League of Legends é uma franquia multimídia que vale milhões.
De origens humildes, a ideia por trás do jogo, que é League of Legends, começou como um mapa personalizado para o jogo Warcraft 3. A comunidade pegou as ferramentas de modding do jogo e criou uma experiência nova e única, bem diferente do jogo original. e que criou um gênero totalmente novo.
Parte da popularidade do World of Warcraft (o rei dos MMORPGs com uma vida útil de mais de 15 anos) é o quão personalizável ele é. Com algumas habilidades em Lua, você pode construir e alterar a interface da maneira que desejar. Alguns dos complementos criados pela comunidade foram tão perturbadores que a Blizzard (a empresa por trás do jogo) foi forçada a mudar suas APIs e banir algumas das ferramentas.
E mesmo sem modificação, a maioria dos jogos tem opções para alterar o layout da GUI, como o jogo é controlado e sua aparência. Você quer ter uma experiência de 120 FPS? Ou prefere jogar a 30 FPS com gráficos realistas? Cabe a você, jogador, escolher quais opções gráficas deseja ativar e desativar para obter a experiência ideal.
Então, aqui estão duas lições para aprender: Primeiro, podemos criar opções e controles deslizantes, bem como interfaces gráficas flexíveis que nossos usuários podem usar dentro de certas restrições. Além disso, podemos criar APIs fáceis de usar para a comunidade brincar e construir software melhor maleável.
E depois há a terceira opção: IA. À medida que a IA melhora, um usuário pode nem precisar saber como codificar para criar sua interface perfeita ou adicionar uma funcionalidade ao seu software. Basta passar as instruções para uma interface semelhante ao ChatGPT e deixar a IA fazer sua mágica.
O que tudo isso significa para SaaS?
O conceito de software maleável, tal como concebido por Philip Tchernavskij, pode ter implicações de amplo alcance para o desenvolvimento de software, incluindo a forma como abordamos o Software como Serviço (SaaS) e a terceirização de SaaS. Basicamente, o software maleável visa capacitar os usuários a modificar e adaptar suas interfaces, alterando, adicionando ou removendo elementos conforme necessário. Ao extrapolar esta filosofia, podemos imaginar um futuro onde as aplicações serão projetadas para evoluir e escalar de acordo com os desejos e requisitos dos usuários. Mas como isso poderia potencialmente perturbar o atual modelo SaaS?
Experiência de usuário personalizada
Uma das principais maneiras pelas quais o software maleável pode perturbar o SaaS é remodelar fundamentalmente a experiência do usuário. Hoje, muitos aplicativos SaaS são essencialmente soluções que servem para todos. Eles possuem um conjunto de recursos e funções, e os usuários devem adaptar seus fluxos de trabalho e processos às restrições do software. No entanto, com software maleável, a dinâmica do poder muda. Os usuários podem modificar e moldar o software para atender às suas necessidades e preferências exclusivas. Isso poderia levar a uma experiência de usuário muito mais personalizada, resultando em maior satisfação e retenção do usuário.
Escalabilidade e Adaptabilidade
As empresas de SaaS muitas vezes enfrentam desafios com a escalabilidade de SaaS à medida que adicionam mais recursos e capacidades ao seu software para atender às diversas necessidades dos clientes. Isso geralmente resulta em software complexo e inchado que pode ser difícil de navegar e entender, principalmente para novos usuários. Software maleável, entretanto, poderia fornecer uma solução para esse problema, permitindo que os usuários adicionassem ou removessem recursos com base em seus requisitos específicos. Isso significa que o software pode ser dimensionado e adaptado em sincronia com as necessidades dos usuários, reduzindo a complexidade e o inchaço desnecessários.
Colaboração e Comunidade
O software maleável também poderia promover um sentimento mais forte de comunidade entre os usuários. À medida que os usuários personalizam e adaptam seu software, eles podem ficar inclinados a compartilhar seus “modelos” ou personalizações com outras pessoas. Isto poderia resultar num ecossistema colaborativo onde os utilizadores partilham, emprestam e desenvolvem o trabalho uns dos outros. Tal ecossistema poderia impulsionar a inovação e o envolvimento dos utilizadores, resultando num ambiente SaaS mais rico e dinâmico.
Democratização do Desenvolvimento
Atualmente, o desenvolvimento de novos recursos ou modificações em aplicativos SaaS está principalmente nas mãos do fornecedor de software. No entanto, um software maleável poderia democratizar esse processo, colocando as ferramentas de modificação e personalização diretamente nas mãos dos usuários. Isto se alinha com a tendência crescente de desenvolvimento cidadão, onde usuários não técnicos podem criar ou modificar aplicativos usando plataformas de baixo ou nenhum código.
Desafios e Considerações
Embora o software maleável apresente muitas oportunidades interessantes, ele também apresenta alguns desafios e considerações. Por exemplo, pode haver possíveis problemas relacionados à segurança, controle de qualidade e suporte ao usuário. Se os próprios usuários modificarem e personalizarem o software, poderá ser difícil para o fornecedor garantir que o software permaneça seguro e funcione corretamente. Além disso, fornecer suporte ao usuário pode se tornar mais complexo se cada usuário trabalhar com uma versão exclusiva e personalizada do software.
Além disso, a lacuna na literacia digital pode representar um desafio. Embora alguns usuários possam aproveitar a oportunidade de modificar e personalizar seu software, outros podem achar isso assustador ou opressor. Portanto, será crucial que os fornecedores de SaaS desenvolvam ferramentas e recursos intuitivos e fáceis de usar para apoiar os utilizadores neste processo.
Concluindo, o conceito de software maleável poderia provocar uma mudança significativa no cenário SaaS. Ao colocar mais controle nas mãos dos usuários, isso poderia levar a uma experiência de usuário mais personalizada e flexível, promover a colaboração e a comunidade e democratizar o processo de desenvolvimento. No entanto, estes benefícios devem ser equilibrados com os potenciais desafios em torno da segurança, do controlo de qualidade, do apoio ao utilizador e da literacia digital.
Fonte: BairesDev