O novo mundo digital e hiperconectado é um desafio e tanto para as áreas de TI. A convergência das ondas tecnológicas, como CAMS (Cloud Computing, Analytics/Big Data, Mobile e Social Business) e o processo de consumerização que emponderam os usuários, demandam um pensar diferente de como a TI deve funcionar e como desenvolver seus novos sistemas. O atual conceito que predomina, da área de TI ser a responsável end-to-end por todas as demandas de tecnologia da empresa está caminhando rápido para a obsolescência.
A velocidade das mudanças e até mesmo disrupções que o cenário de negócios coloca diante das empresas faz com que a velocidade de resposta do atual modelo tecnológico e organizacional de TI se mostre inadequado. O modelo que adotamos hoje mostra-se lento demais nas respostas. É um modelo criado para um cenário que já não representa o cenário competitivo atual. Por outro lado, a pressão por respostas rapidas aumenta de forma crescente pelo simples fato que cada vez mais os valores dos negócios do mundo físico (átomos) se deslocam para o mundo digital (bits). A informação sobre os produtos passa a valer tanto ou mais quanto os próprios produtos físicos.
Das várias transformações que a TI deve sofrer, vamos debater neste texto uma, muito importante: como serão as aplicações deste novo mundo e como desenvolve-las. Mas, como serão estas aplicações? Considero que as aplicações modernas devem ter algumas destas características:
- Serem omnichannel ou sejam, desenvolvidas para os seus usuários usa-las em qualquer dispositivo, seja ele um desktop, um tablet ou um smartphone. Devem também considerar que os usuários podem usar diferentes interfaces como mouse, touch ou voz.
- Serem elásticas e para isso aproveitarem a elasticidade típica do ambiente de computação em nuvem. Implica, por exemplo, em ter mais ou menos usuários sem necessidade de passar por upgrades de software ou hardware.
- Serem uma plataforma ou “ API-oriented”. Desta forma os usuários poderão acrescentar funcionalidades desenvolvidas por eles ou por terceiros. Muitos usuários estão cada vez mais conhecedores de tecnologia e podem eles mesmos desenvolverem ou contratarem externamente novas e especificas funcionalidades para aumentar a amplitude da aplicação. E já estão cansados de ouvir “não” da área de TI…
- Serem orgânicos ou evoluírem de forma gradual e constante. É bem diferente do modelo atual que agrupa as atualizações para serem implementadas em longos intervalos de tempo entre cada versão. A aplicação moderna deve ser altamente componentizada e cada componente pode ser atualizado de forma contínua, sem afetar os demais componentes.
- Serem contextuais ou inteligentes suficientes para identificarem o contexto de onde e como o usuário pretende usá-la. É a inserção do conceito de Big Data na arquitetura das aplicações.
Esta nova arquitetura reflete mudanças nos processos de desenvolvimento e operação. Começa a fazer todo o sentido o conceito de DevOps ou entrega contínua, com aumento da colaboração e eliminação de barreiras burocráticas entre desenvolvimento e operações. TI passa a ser o responsável apenas pelas plataformas, serviços e sistemas “core” (além das funções básicas como segurança, disponibilidade, etc), e com isso possibilita a distribuição do desenvolvimento pelos usuários. O elo de ligação deste processo de co-criação são as APIs.
O stack de software muda do cenário atual end-to-end nas mãos da TI para um cenário onde a base é desenvolvida pela TI (core systems e o middleware, que passa a ser as APIs) com os sistemas na ponta, que tocam os usuários, desenvolvidos por todos, alguns pela TI e outros (provavelmente a maioria) pelos próprios usuários ou parceiros de negócio. A arquitetura cliente-servidor é, portanto, transformada para uma arquitetura baseada em APIs. As APIs devem ser tratadas como produtos de software e gerenciados como tal, com seus projetos e equipes responsáveis.
Esta mudança arquitetônica implica em uma mudança cultural. A TI passa a assumir um papel de orquestrador e entre outras novas funções aparece a de articulador e incentivador de comunidades de desenvolvedores que criarão novas aplicações em cima das APIs. Claro que não é possível termos uma transição estilo “Big bang”, mas sim uma evolução gradual, onde vai-se aos poucos se conseguindo maturidade nos conceitos e vivência de criação de APIs e comunidades de desenvolvedores externos.
A própria organização de TI deve passar por uma profunda reformulação. Ela é hoje estruturada para operar em setores distintos como desenvolvimento e operação, cada uma com suas próprias práticas e métodos. As metodologias atuais muitas vezes criam barreiras entre os setores, burocratizando a passagem de bastão da aplicação de um setor para o outro. Na verdade, elas foram feitas para otimizarem as atividades de cada setor isoladamente. Os processos e a organização de TI deve, portanto, ser repensada para ser flexível e ágil, sem barreiras burocráticas. Os processos criados para sistemas complexos e monolíticos, com os upgrades agrupados não são adequados para uma TI baseada em entrega contínua. Um modelo a pensar é reestruturar a organização em células multifuncionais, responsáveis pelo processo end-to-end de módulos da aplicação. Os sistemas passam portanto de monolíticos a modulares, com equipes multifuncionais responsáveis por cada módulo. Conceito de DevOps por excelência…
As barreiras são grandes. Existe o ceticismo, existe a carência de expertise em novos conceitos e, claro, existe o paradigma atual, arraigado em vinte ou mais anos de desenvolvimento e operação no modelo atual. Os CIOs por sua vez, tem o imenso desafio de, simultaneamente reengenheirar sua TI para desenvolver as novas e modernas aplicações ao mesmo tempo que mantém os sistemas legados.
Como começar? Sugiro desenhar a futura organização de TI e a arquitetura dos sistemas da próxima geração, fazer um diagnóstico (assessment) da situação atual, tanto em termos de tecnologia, como organização e expertise, e a partir daí iniciar o processo de transformar a própria TI. Os CIOs devem compreender o potencial de ruptura da consumerização e do CAMS e entender a importância da API Economy (para saber mais da API Economy recomendo ler o paper “A survey of the API Economy” em http://www.cutter.com/content-and-analysis/resource-centers/agile-project-management/sample-our-research/apmu1306/apmu1306.pdf. Um CIO não pode mais ignorar estes conceitos, pois não são puramente aspectos tecnológicos, mas essenciais aos negócios da corporação. Dentro de poucos anos um CIO que desconheça e não tenha colocado em prática uma estratégia de CAMS, DevOps e APIs terá grandes dificuldades de se manter no cargo…
Resumo da ópera, a nova TI deverá ser responsiva, elástica e orientada a negócios. Tecnologia passa a ser apenas o meio com que realiza as demandas dos usuários, não um fim em si mesmo. Não terá mais sua estratégia de TI mas será parte integrante, ativa e alavancadora da estratégia de negócios da corporação.
[Crédito da Imagem: Aplicações Modernas – ShutterStock]