Desenvolvimento de aplicativos para aplicativos inovadores

Conforme discutido em Democratizar dados com a invenção digital, os dados alimentam a maioria das inovações em toda a economia digital. Com base nessa analogia, os aplicativos são os postos de combustíveis e também a infraestrutura necessária para entregar esse combustível às mãos certas.

Em alguns casos, apenas dados são suficientes para orientar alterações suprir as necessidades do cliente. No entanto, mais comumente, as soluções para as necessidades do cliente exigem que os aplicativos moldem esses dados e criem uma experiência. Aplicativos inovadores se engajam e interagem com o usuário, fornecendo informações e diretrizes. Este artigo resume vários princípios que podem ajudar você a encontrar a solução de desenvolvimento de aplicativos correta, com base nas hipóteses a serem confirmadas.

Diagrama que mostra os elementos que podem ajudar um aplicativo que fornece uma experiência que atende às necessidades dos clientes.

Código compartilhado

Normalmente, equipes rápidas nas respostas a comentários dos clientes, alterações no mercado e oportunidades inovam melhor. O primeiro princípio de aplicativos inovadores é um elemento da mentalidade de crescimento: "Compartilhar o código". O compartilhamento de códigos convida diferentes perspectivas e contribuições e estimula a inovação. Portanto, o desenvolvimento de aplicativos deve começar com um repositório de códigos compartilhados.

Uma ferramenta amplamente adotada para gerenciar repositórios de códigos é o GitHub, que permite criar um repositório de códigos compartilhados rapidamente. Uma alternativa é o Microsoft Azure Repos, um serviço do serviço Azure DevOps que fornece para o seu projeto repositórios privados ilimitados, hospedados na nuvem. Para executar o controle de versão ao usar o Azure Repos, você pode escolher o Git, um tipo distribuído, ou o TFVC (Controle de Versão do Team Foundation), que é centralizado. Para obter mais informações sobre o Azure Repos, o Git e o TFVC, consulte a documentação do Azure Repos.

Cidadãos desenvolvedores

Desenvolvedores profissionais são importantes para a inovação. Quando se confirma a precisão de uma hipótese em escala, eles podem estabilizar a solução e prepará-la para escala. Infelizmente, os desenvolvedores profissionais podem ser poucos, e o desenvolvimento profissional pode elevar custos e tornar mais lenta a inovação.

Desenvolvedores cidadãos são usuários que criam novos aplicativos de negócios usando ambientes de desenvolvimento e runtime sancionados pela TI corporativa. O uso de desenvolvedores cidadãos pode ajudar a dimensionar esforços de desenvolvimento e acelerar testes de hipótese precoces. Essa estratégia é viável e eficaz quando hipóteses precoces podem ser validadas por meio de ferramentas como Power Apps, para interfaces de aplicativo, AI Builder, para processos e previsões, Power Automate, para fluxos de trabalho e Power BI para consumo de dados.

Observação

Quando se depende de desenvolvedores cidadãos para testar hipóteses, é aconselhável também contar com desenvolvedores profissionais que ofereçam suporte, verifiquem e orientem o trabalho. Os profissionais podem ajudar a desenvolver um design robusto que acelere o retorno sobre a inovação. Envolvendo desenvolvedores profissionais no momento certo, você pode realizar transições mais limpas posteriormente.

Experiências inteligentes

Experiências inteligentes combinam a velocidade e a escala de aplicativos Web modernos à inteligência de serviços cognitivos e bots. Individualmente, essas tecnologias podem ser suficientes para suprir as necessidades dos seus clientes. Quando combinadas corretamente, elas ampliam o espectro de necessidades que podem ser atendidas por meio de uma experiência digital, ajudando a conter custos de desenvolvimento de aplicativos.

Aplicativos Web modernos

Aplicativos Web modernos podem ser a forma mais rápida de atender às necessidades de clientes internos ou externos. As experiências que eles fornecem podem envolver os clientes rapidamente e permitir uma rápida evolução da solução.

Adição de inteligência

Fica sempre mais fácil para desenvolvedores profissionais e cidadãos adicionar recursos de aprendizado de máquina e de IA a aplicativos que ajudem a atender às necessidades do cliente e a criar uma experiência interativa. Alguns exemplos desses recursos são:

  • Conversão de fala em texto
  • Texto em fala
  • Visual computacional
  • Pesquisa visual
  • IA preditiva

Os inovadores devem estar alertas para aproveitar esses recursos na criação de uma experiência interativa e moderna.

Bots

Um bot é um aplicativo de IA para conversa, que fornece aos usuários uma experiência que remete à sensação de trato pessoal, e não com um aplicativo de computador convencional. Os usuários conversam com um bot usando texto, cartões interativos e fala. Uma interação de bot pode variar de perguntas e respostas rápidas, como uma reserva para um jantar, a uma conversa sofisticada que forneça acesso a serviços com o uso de inteligência.

Os bots podem executar as mesmas tarefas que outros tipos de software: ler e gravar arquivos, usar bancos de dados e APIs e realizar tarefas computacionais normais. O que torna os bots únicos é o uso de mecanismos geralmente reservados à comunicação entre seres humanos. Os bots são muito semelhantes aos aplicativos Web modernos, residindo na Internet e usando APIs para enviar e receber mensagens. O que um bot oferece varia muito dependendo do tipo de bot. Um software de bot moderno baseia-se em um conjunto de tecnologias e ferramentas para fornecer experiências cada vez mais complexas em uma ampla variedade de plataformas. No entanto, um bot simples pode apenas receber uma mensagem e ecoá-la para o usuário com muito pouco código envolvido.

Soluções nativas de nuvem

A arquitetura nativa de nuvem permite adotar mudanças rápidas e executar aplicativos resilientes e escalonáveis com mais facilidade. Aplicativos nativos de nuvem normalmente são construídos com o uso de contêineres, microsserviços, serviços gerenciados, funções sem servidor e programação baseada em evento. Normalmente, as soluções nativas de nuvem usam entrega contínua para reduzir o tempo de comercialização.

Uma solução nativa de nuvem permite que equipes de desenvolvimento centralizadas mantenham o controle da lógica de negócios sem a necessidade de soluções monolíticas e centralizadas. Cria também uma âncora para orientar a consistência entre as entradas de desenvolvedores cidadãos e experiências modernas. Por fim, as soluções nativas de nuvem fornecem um acelerador de inovação, liberando desenvolvedores cidadãos e profissionais para inovar com segurança e um mínimo de bloqueadores.

Inovar usando soluções existentes

Muitas hipóteses do cliente podem ter melhor entrega com o uso de uma versão modernizada de uma solução existente. Isso pode acontecer quando a atual lógica de negócios se aproxima da satisfação das necessidades do cliente.

A maioria das formas de modernização, inclusive a refatoração, está incluída na metodologia das Migrações no Cloud Adoption Framework. Essa metodologia orienta as equipes de adoção da nuvem no processo de migração de um acervo digital para a nuvem. O guia de migração do Azure fornece uma abordagem simplificada da mesma metodologia, adequada a um pequeno número de cargas de trabalho ou mesmo a um único aplicativo.

Depois que uma solução é migrada e modernizada, pode ser usada de várias formas para criar soluções de aplicativo novas e inovadoras para atender às necessidades do cliente. Por exemplo, desenvolvedores cidadãos podem testar hipóteses, ou desenvolvedores profissionais podem criar experiências inteligentes ou soluções nativas de nuvem.

Estender uma solução existente

Estender uma solução é uma forma comum de modernização. Esse pode ser o caminho mais rápido para a inovação quando os contextos a seguir forem verdadeiros para a hipótese do cliente:

  • A lógica de negócios existente satisfaz ou se aproxima da satisfação das necessidades do cliente.
  • Uma experiência aprimorada, e não uma nova, atende melhor às necessidades dos clientes.
  • A lógica de negócios exigida pela solução MVP (produto mínimo viável) foi centralizada, geralmente por meio de um design de n camadas, serviços Web, API ou microsserviços. Essa abordagem consiste em envolver a solução existente em uma nova experiência hospedada na nuvem. No Azure, essa solução provavelmente estaria no Serviço de Aplicativo do Azure.

Reconstruir uma solução existente

Se uma solução existente satisfizer ou se aproximar da satisfação das necessidades do cliente, mas não puder ser facilmente estendida, talvez seja necessário refatorá-la. Nessa abordagem, o aplicativo é migrado para a nuvem. Após essa migração, partes dele são modificadas ou duplicadas, como serviços Web ou microsserviços, e implantadas em paralelo com a solução existente. A solução paralela baseada em serviço pode ser tratada como solução estendida. Essa solução simplesmente envolve a solução existente com uma nova experiência hospedada na nuvem. No Azure, essa solução provavelmente estaria no Serviço de Aplicativo do Azure.

Cuidado

A refatoração ou a rearquitetura de soluções ou a centralização da lógica de negócios pode disparar rapidamente uma perturbação técnica demorada, em vez de uma fonte de valor para o cliente. Esse é um risco para a inovação, especialmente no início da confirmação de hipóteses. Com alguma criatividade no design de uma solução, deve haver um caminho para o MVP que não exija a refatoração de soluções existentes. É prudente atrasar a refatoração até que a hipótese inicial possa ser confirmada em escala.

Inovações de modelo operacional

Além das abordagens inovadoras modernas para o desenvolvimento de aplicativos, houve inovações notáveis nas operações dos aplicativos. Essas abordagens geraram muitos movimentos organizacionais. Um dos mais proeminentes é o modelo operacional de centro de excelência em nuvem. Quando totalmente operacionais e maduras, as equipes de negócios têm a opção de fornecer seu próprio suporte operacional para uma solução.

O tipo de modelo de gerenciamento operacional de autoatendimento encontrado em um centro de excelência em nuvem permite controles mais rígidos e iterações mais rápidas no ambiente da solução. Essas metas são atingidas transferindo-se o controle operacional e a responsabilidade para a equipe de negócios.

Se você estiver tentando dimensionar ou suprir a demanda global por uma solução existente, essa abordagem poderá ser suficiente para confirmar uma hipótese do cliente. Depois que uma solução é migrada e discretamente modernizada, a equipe de negócios pode dimensioná-la para testar várias hipóteses. Normalmente, elas envolvem coortes de clientes preocupados com desempenho, distribuição global e outras necessidades prejudicadas pelas operações de TI.

Reduzir a sobrecarga e o gerenciamento

Quanto maior for a necessidade de manutenção em um aplicativo ou uma solução inovadora, mais lenta será a iteração desse aplicativo ou dessa solução. Isso significa que você pode acelerar a inovação reduzindo o impacto das operações na largura de banda disponível.

Para se preparar para as muitas iterações necessárias à oferta de uma solução inovadora, é importante pensar com antecedência. Por exemplo, minimize as cargas operacionais no início do processo preferindo opções sem servidor. No Azure, as opções de aplicativo sem servidor podem incluir o Serviço de Aplicativo do Azure ou contêineres.

Em paralelo, considere as opções de dados de transação sem servidor no Azure, que também podem reduzir a sobrecarga. O catálogo de produtos do Azure fornece opções de banco de dados que hospedam dados sem a necessidade de uma plataforma de dados completa.

Próximas etapas

Dependendo da hipótese e da solução, os princípios descritos neste artigo podem ajudar na criação de aplicativos que satisfaçam às definições de MVP e envolvam os usuários. A seguir estão os princípios para capacitação da adoção, que oferecem formas de entregar o aplicativo e os dados aos clientes com mais rapidez e eficiência.