O fenômeno da consumerização de TI está cada vez mais disseminado e influenciando os hábitos de uso da tecnologia. Os aplicativos móveis já fazem parte do nosso cotidiano e são extremamente úteis. Por exemplo, devido as minhas constantes viagens, uso um app chamado FlightRadar24 que me indica em tempo real a posição de cada aeronave em vôo. Com isso não preciso mais perguntar aos agentes da empresa aérea no portão de embarque se o vôo está atrasado. Eu sei onde ele está a cada momento. Além disso, eu escolho os aplicativos que quero usar e os baixo instantaneamente no meu smartphone ou tablet.
Por outro lado, estas experiências de uso com os aplicativos móveis potencializadas pela consumerização começam a criar novas expectativas nos usuários corporativos com relação às interfaces pouco intuitivos, poluídos e bastante complexos dos sistemas que são obrigados a usar no dia a dia. Além disso, no ambiente corporativo, ao contrário do mundo lá fora, o usuário não escolhe o aplicativo que quer usar e quando requisita uma nova funcionalidade tem que esperar por varias semanas ou meses. O usuário se pergunta diante da tela de um aplicativo tradicional: “porque esta aplicação não pode ser parecida com as apps do meu smartphone?”. Este é um novo desafio para os desenvolvedores.
O que isto vai demandar aos arquitetos e desenvolvedores? As novas aplicações precisam ser escritas com novos conceitos em mente. Primeiro tenderão cada vez mais a serem disponibilizadas em equipamentos móveis. Para isso, o paradigma do teclado-mouse tem que ser repensado (e isto vale para um desktop touch-screen) e o uso inteligente das potencialidades dos equipamentos móveis devem ser bem explorados nas aplicações corporativas. Algumas práticas pouco incentivadas hoje como um design visual elegante para a interface e validar a usabilidade antes de colocar o sistema no ar começam a despertar atenção. O conceito do projeto começa derivar em direção a um modelo “user-centric” e não mais direcionado apenas por uma longa lista de requerimentos funcionais. A exploração de multiplos e novas interfaces como reconhecimento e controle por gestos (Kinect) e “natural-language question answering” (Siri e Watson) passará a ser um aspecto importante do projeto.
Outras variáveis a serem consideradas são as que chamamos de “context-aware” e “location-aware”, ou seja, aplicações interagindo com o usuário no contexto e local onde ele se encontra naquele momento. Um exemplo pode ser a de um técnico de manutenção de elevadores que começa o dia com uma sequência de atendimento baseado em um roteiro mais eficiente e que é alterado continuamente devido às mudanças no contexto, como uma demora maior em determinado atendimento. O sistema sabe onde ele está a cada momento, sabe se o tempo estimado foi ultrapassado e interagindo com bases de dados do trânsito e demandas emergenciais dos clientes, pode, baseado em GPS, traçar dinâmicamente novas rotas. No varejo, aplicações voltadas aos clientes podem interagir com eles à medida que ele percorre as gondolas de um supermercado, ofertando produtos e gerando oportunidades de cross-selling.
Além disso, a aplicação poderá incluir no seu projeto a capacidade de monitorar seu próprio uso, de modo a gerar informações de sua utilização para seus projetistas. Na prática as aplicações modernas tenderão ser um contínuo “work-in-progress”, constantemente atualizadas. O modelo de SaaS permite isso, mesmo para nuvens privadas. Nestas, as aplicações estarão em lojas de aplicativos privadas e restritas aos funcionários da empresa e a eventuais parceiros de negócios e clientes. Não precisaremos esperar muitos meses para upgrades em pacotes como hoje. Um novo mundo.
E, por ultimo, o conceito de gamificação vai começar a entrar nos sistemas corporativos. Um pequeno resumo do conceito pode ser visto aqui. Sugiro também visitar o site http://enterprise-gamification.com/ para exemplos de casos de uso de gamificação em sistemas corporativos.
Bem, com todas estas mudanças, aparece o desafio da capacitação. Estamos falando de novos skills e muitos desenvolvedores e cursos universitários de computação não estão, na minha opinião, dando a devida atenção a estes claros sinais de disrupção nos projetos de desenvolvimento de software. Falamos de tecnologias de mobilidade, HTML5 versus aplicações nativas, novos conceitos de projetos de aplicações, design visual de interfaces, uso de bancos de dados NoSQL, questões como invasão de privacidade e outros, que ainda estão fora das salas de aula da maioria das universidades.
O desenvolvimento das novas aplicações móveis será feito pelas próprias empresas ou serão contratadas fora? As equipes de desenvolvimento de muitas empresas ainda não estão preparadas para criar estas aplicações. Na prática, o que vemos hoje, é que as aplicações inovadoras surgem em pequenas empresas e não nas grandes fábricas de software. Mas, à medida que as empresas adquirirem skills e tecnologia, como a Worklight da IBM, começaremos a ver desenvolvimento interno acontecer com maior frequência.
Mas, qualquer que seja o caminho, o fato é óbvio: existe muito espaço para profissionais de desenvolvimento que estejam capacitados a desenvolverem aplicações móveis inovadoras.