Cinco características indispensáveis às aplicações modernas

E como desevonvê-las em um cenário de TI deve ser responsiva, elástica e orientada a negócios?

Author Photo
8:45 pm - 31 de julho de 2014

O novo mundo digital e hiperconectado é um desafio e tanto
para as áreas de TI das empresas. 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 empondera os usuários, demandam um pensar
diferente de como a TI deve funcionar e desenvolver seus sistemas. O
atual conceito que predomina, da TI 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 rápidas 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 desenvolvê-las.

Considero que as
aplicações modernas devem ter algumas destas características:

a) Serem omnichannel ou desenvolvidas para que possamos usá-las em qualquer dispositivo, seja um desktop, um tablet
ou um smartphone. Devem também considerar que iremos usá-las a partir de diferentes
interfaces como mouse, touch ou voz.

b) Serem elásticas e para isso aproveitarem a
elasticidade típica do ambiente de computação em nuvem. Implica, por exemplo,
em terem mais ou menos usuários sem necessidade de passarem por upgrades de
software ou hardware.

c) 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…

d) Serem orgânicas 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.

e) 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 devem,
portanto, serem repensados para serem flexíveis e ágeis, 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, promover a
reengenharia da 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”.
 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. A estratégia de TI será parte integrante, ativa e capaz de alavancar
a estratégia de negócios da corporação.

 

(*) Cezar Taurion  é CEO da Litteris Consulting

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.