O advento dos smartphones e dos tablets impulsionaram de forma explosiva o uso da mobilidade pelos usuários e empresas. E em consequência, a mobilidade tornou-se uma das tecnologias de ruptura que mais desafiam os CIOs. Pela velocidade com que as tecnologias de mobilidade evoluíram, o iPhone é de 2007 e o iPad de 2010, a maioria das empresas de software e os setores de TI das empresas ainda não conseguiram extrair todo o seu potencial. Aliás, explorar a mobilidade significa que todas as ondas tecnológicas devem ser exploradas. Os dispositivos móveis permitem criar novas experiências de mobilidade, a exploração de algoritmos e dados (big data) possibilita criar um maior engajamento com os clientes, que naturalmente já vivem em um contexto de compartilhamento e sociabilidade (plataformas sociais) e tudo isso provido por um ambiente de alta elasticidade que é a computação em nuvem. Neste contexto a mobilidade permite criar sistemas de engajamento (systems of engagement) entre clientes, parceiros de negócio e os funcionários da empresa. São sistemas, que por sua natureza, são bem diferentes dos atuais sistemas corporativos ou systems of records. Os systems of engagement podem ser vistos como uma camada adicional aos systems of records, que basicamente operam o ambiente transacional das empresas.
O cerne dos sistemas de engajamento são os apps. Estão se tornando o principal ponto de contato dos clientes com as empresas. Sua adoção tem sido explosiva. Estima-se que em 2016 será alcançada a marca de 300 bilhões de downloads por ano. O segredo do seu sucesso é que toda a sua complexidade está escondida dos usuários, ao contrário dos atuais sistemas cliente-servidor onde o usuário interage com parte significativa da complexidade interna dos sistemas.
Estamos vivenciando hoje um processo de transformação dos apps voltados exclusivamente aos usuários finais, que podemos chamar de primeira geração, onde operam ações isoladas dos sistemas corporativos, como chamar um táxi ou validar as condições de trânsito, para uma segunda geração, onde muitas destas ações serão integradas aos sistemas corporativos. Não que os apps voltados aos usuários finais vão desaparecer, pelo contrário, veremos ainda muita inovação, mas os apps corporativos vão se popularizar explosivamente. Neste contexto os apps começarão a ser vistos não apenas como ferramentas de produtividade individual mas chegarão ao nível de impulsionadores ou mesmo serem responsáveis por novos modelos de negócio das empresas, criando novos serviços ou produtos. Sim, um smartphone não é apenas um dispositivo para achar um táxi, mas uma tecnologia de alto poder transformacional.
Entretanto, este explosivo crescimento demandada pelo contexto dos apps gera um imenso desafio para as empresas: falta de expertise e capacitação para o desenvolvimento destes novos systems of engagement. Conceitos como DevOps, arquitetura baseada em serviços de APIs , user-experience centric design, evolução dos apps baseados no modelo MVP (Minimum Viable Product) são pouco conhecidos pela maioria do staff de desenvolvimento das corporações.
Este novo cenário implica que os arquitetos de software devem olhar os apps de outra forma, não como apêndices aos seus sistemas corporativos, mas como parte central de sua estratégia de criação de sistemas mais modernos. Passam a ser componentes críticos dos sistemas corporativos. Bem, antes de mais nada, na minha opinião, os apps não devem ser vistos como aplicações em miniatura ou uma mera variação de uma aplicação existente que roda em um dispositivo móvel. Apps são apps, um novo tipo de programas. Assim, desenvolver apps implica em profundas mudanças nos atuais processos de desenvolvimento de sistemas.
Uma comparação com os sistemas atuais mostra um diferença muito ampla. Na concepção dos sistemas atuais, como os ERPs, coloca-se o máximo de funcionalidades possíveis. Quanto mais funcionalidades, mais completo e mais “vendável” torna-se o sistema. Claro que o sistema torna-se mais complexo, com upgrades em ciclos demorados (agrupam-se as atualizações para serem fornecidas em pacotes de upgrades), eleva-se o custo de manutenções e sua operação torna-se cada vez mais complexa e custosa. E muitas vezes na prática vemos o fenômeno de “overcapacity” quando o numero de funcionalidades ultrapassa a necessária para as demandas dos clientes. E estes, claro, questionam o custo das manutenções por funcionalidades que pouco ou nada agregam ao seu negócio.
Apps implicam em simplicidade. Não que sejam simples em suas entranhas, mas a complexidade é oculta dos usuários. Ora, porque o conceito embutido nos apps, simplicidade, não pode ser aplicado aos sistemas corporativos? No mundo dos apps ao invés de adicionarmos mais funcionalidades ao sistema, cria-se uma coleção de novos apps, que podem atuar em conjunto, mas preservando sua simplicidade. Um exemplo da diferença conceitual entre o atual modelo (“velha escola” ) e o modelo da simplicidade poder vista comparando-se o Word e o Evernote. E esta comparação pode ser aplicável a praticamente a qualquer sistema.
Outra característica embutida no conceito dos apps é que eles por definição são baseados no processo de design “ people-centric” e não “process-centric”. No “ process-centric” o foco é o processo e não se considera quem é o usuário a cada momento. Por exemplo, um ERP automatiza um determinado processo e mesmo se diferentes usuários, com diferentes funções na execução do processo o usam, são tratados da mesma forma. No conceito “ people-centric” a pessoa e sua função, ou o contexto em que ele está operando o serviço é que conta. Para isso, claro, é necessário que o app utilize todo o seu potencial tecnológico, como geolocalização, acesso a informações contextuais (Big data e Social) e assim por diante. O processo “ people-centric” considera o onde e o como do engajamento do usuário com o app.
Talvez a diferença principal seja que no processo atual o propósito do sistema seja definido pelo conjunto de funcionalidades. Quanto mais funcionalidades mais usuários o usarão, embora cada um use apenas parte destas funcionalidades. No “people-centric” é o oposto. Existe um propósito único para o app e o usuário o utiliza dentro do conceito de onde e como pretende utilizá-lo.
Provavelmente as futuras arquiteturas de sistemas corporativos serão baseadas em serviços ofertados via APIs e com sistemas de engajamento gravitando em torno. Um caso interessante de evolução de sistemas corporativos, baseados em muitos destes conceitos, é o Fiori da SAP. Cada usuário usa um app especifico, de acordo com suas necessidades. No background roda o ERP.
Apps, APIs, DevOps, MVP e “ people-centric” provavelmente serão o paradigma de desenvolvimento nos próximos anos. Enfim, ainda temos um longo caminho pela frente, embora a ser percorrido rapidamente e creio que todos nós que estamos envolvido com arquitetura e desenvolvimento de sistemas devemos começar (aliás, já deveriamos) estar buscando criar estas novas soluções de negócios. Sim, o mundo será dos apps…
[Crédito da Imagem: Apps – ShutterStock]