Partilhar via


Desenvolvimento de aplicações para aplicações inovadoras

Como discutido em Democratize data with digital invention, os dados alimentam a maioria das inovações em toda a economia digital. Com base nessa analogia, as aplicações são os postos de abastecimento e a infraestrutura necessária para colocar esse combustível nas mãos certas.

Em alguns casos, os dados por si só são suficientes para impulsionar a mudança e atender às necessidades dos clientes. Mais comumente, porém, as soluções para as necessidades dos clientes exigem que os aplicativos moldem os dados e criem uma experiência. Aplicações inovadoras envolvem e interagem com o usuário, fornecendo informações e orientações. Este artigo resume vários princípios que podem ajudá-lo a encontrar a solução de desenvolvimento de aplicativos certa, com base nas hipóteses a serem validadas.

Diagrama mostrando elementos que podem ajudar a criar um aplicativo que fornece uma experiência para os clientes que atenda às suas necessidades.

Código partilhado

As equipes que são rápidas para responder ao feedback dos clientes, mudanças de mercado e oportunidades normalmente inovam melhor. O primeiro princípio das aplicações inovadoras é um elemento da mentalidade de crescimento: "Partilhe o código". A partilha de códigos convida a perspetivas e contribuições diversas e estimula a inovação. Portanto, o desenvolvimento de aplicativos deve começar com um repositório de código compartilhado.

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

Programadores cidadãos

Os programadores profissionais são importantes para a inovação. Quando uma hipótese se mostra precisa em escala, eles podem estabilizar a solução e prepará-la para escala. Infelizmente, desenvolvedores profissionais podem estar em falta, e o desenvolvimento profissional pode aumentar os custos e retardar a inovação.

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

Observação

Quando você confia em desenvolvedores cidadãos para testar hipóteses, é aconselhável também ter desenvolvedores profissionais para apoiar, revisar e orientar o trabalho. Os profissionais podem ajudar a desenvolver um design robusto que acelere os retornos da inovação. Ao envolver desenvolvedores profissionais no momento certo, você pode realizar transições mais limpas mais tarde.

Experiências inteligentes

Experiências inteligentes combinam a velocidade e a escala das aplicações web modernas com a inteligência de serviços cognitivos e bots. Individualmente, essas tecnologias podem ser suficientes para atender às necessidades de seus clientes. Quando adequadamente combinados, eles ampliam o espectro de necessidades que podem ser atendidas por meio de uma experiência digital, ao mesmo tempo em que ajudam a conter os custos de desenvolvimento de aplicativos.

Aplicações Web modernas

As aplicações web modernas podem ser a forma mais rápida de satisfazer as necessidades dos clientes internos ou externos. As experiências que proporcionam podem envolver os clientes rapidamente e permitir uma rápida evolução da solução.

Adicionando inteligência

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

  • Conversão de discurso para texto
  • Conversão de texto em voz
  • Visão computacional
  • Pesquisa visual
  • IA preditiva

Os inovadores devem estar atentos para tirar partido de tais características para criar uma experiência interativa e moderna.

Bots

Um bot é um aplicativo de IA conversacional que fornece aos usuários uma experiência que é mais como lidar com uma pessoa e menos como lidar com um aplicativo de computador convencional. Os usuários conversam com um bot por meio de texto, cartões interativos e fala. Uma interação com um bot pode variar de uma pergunta e resposta rápida, como fazer uma reserva para jantar, a uma conversa sofisticada que fornece acesso a serviços de forma inteligente.

Os bots podem fazer as mesmas coisas que outros tipos de software: ler e escrever arquivos, usar bancos de dados e APIs e lidar com tarefas computacionais regulares. O que torna os bots únicos é o uso de mecanismos geralmente reservados para a comunicação entre humanos. Os bots são muito parecidos com as aplicações web modernas: vivem na internet e usam APIs para enviar e receber mensagens. O que está em um bot varia muito, dependendo do tipo de bot que ele é. O software de bot moderno depende de uma pilha de tecnologia e ferramentas para oferecer experiências cada vez mais complexas em uma variedade de plataformas. No entanto, um bot simples poderia apenas receber uma mensagem e ecoá-la de volta para o usuário com muito pouco código envolvido.

Soluções nativas da nuvem

A arquitetura nativa da nuvem permite que você adote mudanças rápidas e execute aplicativos resilientes e escaláveis com mais facilidade. Os aplicativos nativos da nuvem geralmente são criados usando contêineres, microsserviços, serviços gerenciados, funções sem servidor e programação baseada em eventos. Mais comumente, as soluções nativas da nuvem usam a entrega contínua para obter um tempo de comercialização mais rápido.

Uma solução nativa da 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. Ele também cria um pilar para promover a consistência nas contribuições dos desenvolvedores cidadãos e nas experiências modernas. Finalmente, as soluções nativas da nuvem fornecem um acelerador de inovação, liberando desenvolvedores cidadãos e profissionais para inovar com segurança e com um mínimo de bloqueadores.

Inovar através de soluções existentes

Muitas hipóteses de clientes podem ser melhor entregues por uma versão modernizada de uma solução existente. Isso pode acontecer quando a lógica de negócios atual se aproxima de atender às necessidades do cliente.

A maioria das formas de modernização, incluindo a refatoração, está incluída na metodologia Migrate dentro do Cloud Adoption Framework. Essa metodologia orienta as equipes de adoção da nuvem durante o processo de migração de um patrimônio digital para a nuvem. O guia de migração do Azure fornece uma abordagem simplificada para a mesma metodologia, que é adequada para um pequeno número de cargas de trabalho ou até mesmo um único aplicativo.

Depois que uma solução é migrada e modernizada, há várias maneiras de usá-la para criar soluções de aplicativos novas e inovadoras para atender às necessidades dos clientes. Por exemplo, desenvolvedores cidadãos podem testar hipóteses, ou desenvolvedores profissionais podem criar experiências inteligentes ou soluções nativas da nuvem.

Estender uma solução existente

Ampliar uma solução é uma forma comum de modernização. Este pode ser o caminho mais rápido para a inovação quando o seguinte é verdade para a hipótese do cliente:

  • A lógica de negócios existente atende ou se aproxima das necessidades do cliente.
  • Uma experiência melhorada, não nova, atende melhor às necessidades dos clientes.
  • A lógica de negócios exigida pela solução de produto mínimo viável (MVP) foi centralizada, geralmente através 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 viveria no Serviço de Aplicativo do Azure.

Reconstruir uma solução existente

Se uma solução existente atende ou se aproxima das necessidades do cliente, mas não pode ser facilmente estendida, pode ser necessário refatorá-la. Nessa abordagem, o aplicativo é migrado para a nuvem. Depois que o aplicativo é migrado, partes dele são modificadas ou duplicadas, como serviços Web ou microsserviços, que são implantados em paralelo com a solução existente. A solução paralela baseada em serviços pode ser tratada como uma solução estendida. Essa solução simplesmente envolveria a solução existente com uma nova experiência hospedada na nuvem. No Azure, essa solução provavelmente viveria no Serviço de Aplicativo do Azure.

Atenção

Refatoração ou rearquitetura de soluções ou centralização da lógica de negócios podem desencadear rapidamente um pico técnico demorado em vez de uma fonte de valor para o cliente. Este é um risco para a inovação, especialmente no início da validação de hipóteses. Com um pouco de criatividade no design de uma solução, deve haver um caminho para o MVP que não exija refatoração das soluções existentes. É aconselhável adiar a refatoração até que a hipótese inicial possa ser validada em escala.

Inovações no modelo operacional

Além de abordagens modernas e inovadoras para o desenvolvimento de aplicativos, houve inovações notáveis nas operações de aplicativos. Estas abordagens geraram muitos movimentos organizacionais. Um dos mais proeminentes é o modelo operacional do centro de excelência em nuvem . Quando totalmente equipadas 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 dentro do ambiente da solução. Esses objetivos são alcançados através da transferência do controle operacional e da prestação de contas para a equipe de negócios.

Se você estiver tentando dimensionar ou atender à demanda global por uma solução existente, essa abordagem pode ser suficiente para validar uma hipótese do cliente. Depois que uma solução é migrada e ligeiramente modernizada, a equipe de negócios pode dimensioná-la para testar uma variedade de hipóteses. Isso geralmente envolve grupos de clientes preocupados com o desempenho, a distribuição global e outras necessidades dos clientes prejudicadas pelas operações de TI.

Reduza as despesas gerais e de gerenciamento

Quanto mais houver para manter dentro de um aplicativo ou solução inovadora, isso fará com que a iteração desse aplicativo ou solução seja mais lenta. 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 para fornecer uma solução inovadora, é importante pensar no futuro. Por exemplo, minimize os encargos operacionais no início do processo, favorecendo as opções sem servidor. No Azure, as opções de aplicativos 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óximos passos

Dependendo da hipótese e da solução, os princípios deste artigo podem ajudar a projetar aplicativos que atendam às definições de MVP e envolvam os usuários. Em seguida, estão os princípios para capacitar a adoção, que oferecem maneiras de colocar o aplicativo e os dados nas mãos dos clientes de forma mais rápida e eficiente.