Partilhar via


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

Conforme discutido em Democratizar dados com invenção digital, os dados alimentam a maioria das inovações em toda a economia digital. Com base nessa analogia, as aplicações são as estações de combustível e as infra-estruturas necessárias para colocar esse combustível nas mãos certas.

Em alguns casos, apenas os dados são suficientes para impulsionar a alteração e satisfazer as necessidades dos clientes. No entanto, mais frequentemente, as soluções para as necessidades dos clientes requerem aplicações para moldar os dados e criar uma experiência. As aplicações inovadoras interagem e interagem com o utilizador, 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 aplicações correta, com base nas hipóteses a validar.

Diagrama a mostrar elementos que podem ajudar a criar uma aplicação que proporciona uma experiência aos clientes que satisfazem as suas necessidades.

Código partilhado

As equipas que são rápidas a responder aos comentários dos clientes, alterações no mercado e oportunidades normalmente inovam melhor. O primeiro princípio das aplicações inovadoras é um elemento da mentalidade de crescimento: "Partilhar o código". A partilha de códigos convida a diversas perspetivas e contribuições e estimula a inovação. Por conseguinte, o desenvolvimento de aplicações deve começar com um repositório de código partilhado.

Uma ferramenta amplamente adotada para gerir repositórios de código é o GitHub, que lhe permite criar rapidamente um repositório de código partilhado. Uma alternativa é o Microsoft Azure Repos, que é um serviço do Azure DevOps que fornece repositórios privados ilimitados e alojados na cloud para o seu projeto. Para controlo de versões quando utiliza repositórios do Azure, pode escolher o Git, que é um tipo distribuído, ou o Team Foundation Version Control (TFVC), que é centralizado. Para obter mais informações sobre os Repositórios do Azure, Git e TFVC, veja a documentação dos Repositórios do Azure.

Programadores-cidadãos

Os programadores profissionais são importantes para a inovação. Quando uma hipótese se revela precisa em escala, pode estabilizar a solução e prepará-la para dimensionamento. Infelizmente, os programadores profissionais podem estar com pouca oferta e o desenvolvimento profissional pode aumentar os custos e a inovação lenta.

Os programadores de cidadãos são utilizadores que criam novas aplicações empresariais através de ambientes de desenvolvimento e runtime aprovados por TI empresarial. A utilização de programadores cidadãos pode ajudar a dimensionar os esforços de desenvolvimento e acelerar os testes de hipóteses precoces. Esta estratégia é viável e eficaz quando as hipóteses iniciais podem ser validadas através de ferramentas como o Power Apps para interfaces de aplicações, o AI Builder para processos e predições, o Power Automate para fluxos de trabalho e o Power BI para consumo de dados.

Nota

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

Experiências inteligentes

As experiências inteligentes combinam a velocidade e a escala das aplicações Web modernas com a inteligência dos serviços cognitivos e bots. Individualmente, estas tecnologias podem ser suficientes para satisfazer as necessidades dos seus clientes. Quando devidamente combinados, alargam o espectro de necessidades que podem ser satisfeitas através de uma experiência digital, ajudando ao mesmo tempo a conter os custos de desenvolvimento de aplicações.

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.

Adicionar informações

Torna-se sempre mais fácil para os programadores profissionais e cidadãos adicionarem machine learning e funcionalidades de IA a aplicações que ajudam a satisfazer as necessidades do cliente e a criar uma experiência interativa. Alguns exemplos destas funcionalidades são:

  • Conversão de voz em texto
  • Conversão de texto em voz
  • Imagem digitalizada
  • Pesquisa visual
  • IA Preditiva

Os inovadores devem estar atentos para tirar partido destas funcionalidades para criar uma experiência interativa e moderna.

Bots

Um bot é uma aplicação de IA de conversação que proporciona aos utilizadores uma experiência mais semelhante a lidar com uma pessoa e menos como lidar com uma aplicação de computador convencional. Os utilizadores conversam com um bot através de texto, cartões interativos e voz. Uma interação de bot pode ir desde uma pergunta e resposta rápidas, como fazer uma reserva de jantar, a uma conversa sofisticada que fornece acesso inteligente aos serviços.

Os bots podem fazer o mesmo que outros tipos de software: ler e escrever ficheiros, utilizar bases de dados e APIs e processar tarefas computacionais regulares. O que torna os bots exclusivos é a utilização de mecanismos geralmente reservados para comunicação humano-humano. Os bots são muito semelhantes às aplicações Web modernas: vivem na Internet e utilizam APIs para enviar e receber mensagens. O que está num bot varia bastante consoante o tipo de bot que é. O software de bot moderno baseia-se numa pilha de tecnologias e ferramentas para proporcionar experiências cada vez mais complexas numa variedade de plataformas. No entanto, um bot simples poderia apenas receber uma mensagem e ecoá-la de volta para o utilizador com muito pouco código envolvido.

Soluções nativas da cloud

A arquitetura nativa da cloud permite-lhe adotar mudanças rápidas e executar aplicações resilientes e dimensionáveis mais facilmente. Normalmente, as aplicações nativas da cloud são criadas com contentores, microsserviços, serviços geridos, funções sem servidor e programação baseada em eventos. Normalmente, as soluções nativas da cloud utilizam a entrega contínua para alcançar um tempo mais rápido no mercado.

Uma solução nativa da cloud permite às equipas de desenvolvimento centralizadas manter o controlo da lógica de negócio sem a necessidade de soluções monolíticas centralizadas. Também cria uma âncora para impulsionar a consistência na entrada de programadores cidadãos e experiências modernas. Por fim, as soluções nativas da cloud fornecem um acelerador de inovação ao libertar programadores profissionais e cidadãos para inovarem 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 fornecidas por uma versão modernizada de uma solução existente. Isto pode acontecer quando a lógica de negócio atual estiver perto de satisfazer as necessidades dos clientes.

A maioria das formas de modernização, incluindo a refatorização, estão incluídas na metodologia de Migração no Cloud Adoption Framework. Esta metodologia orienta as equipas de adoção da cloud através do processo de migração de um património digital para a cloud. 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 uma única aplicação.

Depois de migrar e modernizar uma solução, existem várias formas de a utilizar para criar novas soluções de aplicações inovadoras para satisfazer as necessidades dos clientes. Por exemplo, os programadores cidadãos podem testar hipóteses ou os programadores profissionais podem criar experiências inteligentes ou soluções nativas da cloud.

Expandir uma solução existente

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

  • A lógica de negócio existente satisfaz ou aproxima-se das necessidades dos clientes.
  • Uma experiência melhorada, não uma nova, melhor satisfaz as necessidades dos clientes.
  • A lógica de negócio exigida pela solução de produto mínimo viável (MVP) foi centralizada, normalmente através de um design de n camadas, serviços Web, API ou microsserviços . Esta abordagem consiste em encapsular a solução existente numa nova experiência alojada na cloud. No Azure, esta solução provavelmente viveria em Serviço de Aplicações do Azure.

Reconstruir uma solução existente

Se uma solução existente corresponder ou estiver perto de satisfazer as necessidades dos clientes, mas não puder ser facilmente expandida, poderá ser necessário refatorizá-la. Nesta abordagem, a aplicação é migrada para a cloud. Após a migração da aplicação, partes da mesma são modificadas ou duplicadas, como serviços Web ou microsserviços, que são implementados em paralelo com a solução existente. A solução paralela baseada no serviço pode ser tratada como uma solução expandida. Esta solução iria simplesmente moldar a solução existente com uma nova experiência alojada na cloud. No Azure, esta solução provavelmente viveria em Serviço de Aplicações do Azure.

Atenção

Refatorizar ou rearquitetar soluções ou centralizar a lógica de negócio pode acionar rapidamente um pico técnico demorado em vez de uma origem de valor do cliente. Este é um risco para a inovação, especialmente no início da validação de hipóteses. Com um pouco de criatividade na conceção de uma solução, deve haver um caminho para o MVP que não exija a refatorização de soluções existentes. É aconselhável adiar a refatorização até que a hipótese inicial possa ser validada em escala.

Inovações de modelos operacionais

Além das abordagens inovadoras modernas para o desenvolvimento de aplicações, tem havido inovações notáveis nas operações de aplicações. Estas abordagens geraram muitos movimentos organizacionais. Um dos mais proeminentes é o modelo operacional do centro de excelência da cloud . Quando totalmente docentes e maduros, as equipas empresariais têm a opção de fornecer o seu próprio suporte operacional para uma solução.

O tipo de modelo de gestão operacional self-service encontrado num centro de excelência na cloud permite controlos mais apertados e iterações mais rápidas no ambiente da solução. Estes objetivos são alcançados ao transferir o controlo operacional e a responsabilidade para a equipa empresarial.

Se estiver a tentar dimensionar ou satisfazer a procura global de uma solução existente, esta abordagem poderá ser suficiente para validar uma hipótese do cliente. Após uma solução ser migrada e ligeiramente modernizada, a equipa empresarial pode dimensioná-la para testar uma variedade de hipóteses. Normalmente, estes envolvem coortes de clientes que se preocupam com o desempenho, a distribuição global e outras necessidades dos clientes dificultadas pelas operações de TI.

Reduzir a sobrecarga e a gestão

Quanto mais houver para manter numa aplicação ou solução inovadora, mais lenta será a iteração dessa aplicação ou solução. Isto significa que pode acelerar a inovação ao reduzir 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 ao favorecer as opções sem servidor. No Azure, as opções de aplicações sem servidor podem incluir Serviço de Aplicações do Azure ou contentores.

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 base de dados que alojam dados sem a necessidade de uma plataforma de dados completa.

Passos seguintes

Consoante a hipótese e a solução, os princípios neste artigo podem ajudar na conceção de aplicações que cumpram as definições de MVP e envolvam os utilizadores. Seguem-se os princípios para capacitar a adoção, que oferecem formas de colocar a aplicação e os dados nas mãos dos clientes de forma mais rápida e eficiente.