Compartir a través de


Desarrollo de aplicaciones innovadoras

Como se indica en Democratización de datos con la invención digital los datos impulsan la mayoría de las innovaciones en la economía digital. Según esta analogía, las aplicaciones serían las estaciones de servicio y la infraestructura necesaria para que dicho combustible llegue a las manos adecuadas.

En algunos casos, los datos por sí mismos son suficientes para producir un cambio y satisfacer las necesidades de los clientes. Sin embargo, lo más frecuente es que la solución para las necesidades de los clientes requiera aplicaciones para dar forma a los datos y crear una experiencia. Las aplicaciones innovadoras involucran al usuario y permiten interactuar con él, proporcionando información e instrucciones. En este artículo se resumen varios principios que pueden ayudarle a encontrar la solución de desarrollo de aplicaciones correcta, en función de las hipótesis que se vayan a validar.

El diagrama muestra los elementos que pueden ayudar a crear una aplicación que proporcione una experiencia a los clientes que satisfaga sus necesidades.

Código compartido

Los equipos que son rápidos a la hora de responder a los comentarios de los clientes, los cambios en el mercado y las oportunidades suelen innovar mejor. El principio en el que se basan las aplicaciones innovadoras es un elemento de la mentalidad de crecimiento: "Compartir el código". El uso compartido de código invita a diversas perspectivas y contribuciones, e impulsa la innovación. Por ello, todo el desarrollo de aplicaciones debe comenzar por un repositorio de código compartido.

Una herramienta ampliamente adoptada para administrar los repositorios de código es GitHub, que permite crear rápidamente un repositorio de código compartido. Una alternativa es Microsoft Azure Repos, que es un servicio de Azure DevOps que proporciona repositorios privados ilimitados hospedados en la nube para el proyecto. Para el control de versiones cuando usa Azure Repos, puede elegir Git, que es un tipo distribuido, o Control de versiones de Team Foundation (TFVC), que está centralizado. Para más información sobre Azure Repos, Git y Control de versiones de Team Foundation (TFVC), consulte la documentación de Azure Repos.

Desarrolladores cívicos

Los desarrolladores profesionales son importantes para la innovación. Cuando una hipótesis resulta precisa a gran escala, puede estabilizar la solución y prepararla para el escalado. Desafortunadamente, los desarrolladores profesionales pueden tener poca oferta y el desarrollo profesional puede aumentar los costos y ralentizar la innovación.

Los desarrolladores civiles son usuarios que crean nuevas aplicaciones empresariales mediante entornos de desarrollo y entornos de tiempo de ejecución autorizados por el equipo de TI corporativo. El uso de desarrolladores civiles puede ayudar a escalar los esfuerzos de desarrollo y acelerar las primeras pruebas de hipótesis. Esta estrategia resulta viable y efectiva cuando se pueden validar las primeras hipótesis con herramientas como Power Apps para interfaces de aplicaciones, AI Builder para procesos y predicciones, Power Automate para flujos de trabajo y Power BI para el consumo de datos.

Nota:

Cuando confía en desarrolladores civiles para probar hipótesis, se recomienda contar con desarrolladores profesionales que apoyen, revisen y guíen el trabajo. Los profesionales pueden ayudar a desarrollar un diseño sólido que acelere los resultados de la innovación. Al implicar a desarrolladores profesionales en el momento adecuado, podrá realizar transiciones más sencillas en el futuro.

Experiencias inteligentes

Las experiencias inteligentes combinan la velocidad y la escala de las aplicaciones web modernas, con la inteligencia de los servicios y bots cognitivos. Individualmente, estas tecnologías pueden bastar para satisfacer las necesidades de los clientes. Cuando se combinan adecuadamente, amplían el espectro de necesidades que se pueden satisfacer a través de una experiencia digital, a la vez que ayudan a contener los costos de desarrollo de la aplicación.

Aplicaciones web modernas

Las aplicaciones web modernas pueden ser la manera más rápida de satisfacer las necesidades de los clientes internos o externos. Las experiencias que proporcionan pueden involucrar a los clientes rápidamente y permitir una rápida evolución de la solución.

Incorporación de inteligencia

A los desarrolladores profesionales y civiles les resulta más fácil agregar características de aprendizaje automático e inteligencia artificial a las aplicaciones que ayudan a satisfacer las necesidades del cliente y que crean una experiencia interactiva. Estos son algunos ejemplos de estas características:

  • Conversión de voz en texto
  • Texto a voz
  • Visión del equipo
  • Búsqueda visual
  • Inteligencia artificial predictiva

Los innovadores deben estar atentos para aprovechar estas características y crear una experiencia interactiva y moderna.

Bots

Un bot es una aplicación de inteligencia artificial conversacional que proporciona a los usuarios una experiencia que se parece más a trabajar con una persona y menos a tratar con una aplicación informática convencional. Los usuarios conversan con los bot a través de texto, tarjetas interactivas y la voz. Una interacción con un bot puede ir desde una pregunta y una respuesta rápidas (para hacer una reserva para cenar, por ejemplo) a una conversación sofisticada que proporcione acceso a servicios de forma inteligente.

Los bots puede hacer lo mismo que otros tipos de software: leer y escribir archivos, usar bases de datos y API y realizar las tareas de cálculo habituales. Lo que hace que los bots sean únicos es su uso de mecanismos que generalmente se reservan para la comunicación entre humanos. Los bots se parecen mucho a las aplicaciones web modernas: residen en Internet y usan las API para enviar y recibir mensajes. El contenido de un bot varía considerablemente en función de su tipo. El software para bot moderno se basa en una pila de tecnología y herramientas que proporcionan experiencias cada vez más complejas en varias plataformas. Sin embargo, un bot simple simplemente puede recibir un mensaje y devolvérselo al usuario con muy poco código implicado.

Soluciones nativas de la nube

La arquitectura nativa de la nube permite adoptar cambios rápidos y ejecutar aplicaciones resistentes y escalables más fácilmente. Las aplicaciones nativas de la nube se suelen crear mediante contenedores, microservicios, servicios administrados, funciones sin servidor y programación basada en eventos. Normalmente, las soluciones nativas de la nube usan la entrega continua para lograr un tiempo de comercialización más rápido.

Una solución nativa de la nube permite a los equipos de desarrollo centralizados mantener el control de la lógica de negocios, sin necesidad de soluciones centralizadas monolíticas. Este tipo de solución también crea un marcador para impulsar la coherencia entre las entradas de los desarrolladores cívicos y las experiencias modernas. Por último, las soluciones nativas de la nube proporcionan un acelerador de la innovación al dar libertad a los desarrolladores cívicos y profesionales para innovar de manera segura y con un mínimo de bloqueos.

Innovar a través de soluciones existentes

Muchas hipótesis de clientes se pueden entregar mejor mediante una versión modernizada de una solución existente. Esto puede ocurrir cuando la lógica de negocios actual busca satisfacer las necesidades del cliente.

La mayoría de las formas de modernización, incluida la refactorización, se describen en la metodología de migración de Cloud Adoption Framework. Esa metodología guía a los equipos de adopción de la nube a través del proceso de migración de un estado digital a la nube. La Guía de migración a Azure proporciona un enfoque simplificado de la misma metodología, que es adecuada para un número reducido de cargas de trabajo o incluso una sola aplicación.

Después de migrar y modernizar una solución, hay varias formas de usarla en la creación de nuevas soluciones de aplicaciones innovadoras para satisfacer las necesidades de los clientes. Por ejemplo, los desarrolladores cívicos podrían probar las hipótesis o los desarrolladores profesionales podrían crear experiencias inteligentes o soluciones nativas de la nube.

Ampliar una solución existente

La ampliación de una solución es una forma común de modernización. Este enfoque puede ser la ruta más rápida a la innovación cuando se cumplen las siguientes condiciones de la hipótesis del cliente:

  • La lógica de negocios existente satisface por completo o en su mayor parte las necesidades del cliente.
  • Una experiencia mejorada, no una nueva, satisface mejor las necesidades de los clientes.
  • La lógica de negocios que requiere la solución de producto mínimo viable (MVP) se ha centralizado, normalmente a través de un diseño de n niveles, servicios web, API o microservicios. Este enfoque consiste en encapsular la solución existente dentro de una nueva experiencia hospedada en la nube. En Azure, esta solución probablemente residiría en Azure App Service.

Volver a crear una solución existente

Si una solución existente satisface por completo o en su mayor parte las necesidades del cliente, pero no se puede ampliar fácilmente, puede que sea necesario refactorizarla. En este enfoque, la aplicación se migra a la nube. Después de migrar la aplicación, se modifican o duplican partes de esta, como servicios web o microservicios, que se implementan en paralelo a la solución existente. La solución paralela basada en servicio podría tratarse como una solución ampliada. Esta solución simplemente encapsularía la solución existente con una nueva experiencia hospedada en la nube. En Azure, esta solución probablemente residiría en Azure App Service.

Precaución

La refactorización o la rearquitectura de soluciones o la centralización de la lógica de negocios puede desencadenar rápidamente un pico técnico prolongado, en lugar de una fuente de valor para el cliente. Es un riesgo de la innovación, especialmente en la validación de hipótesis. Con un poco de creatividad en el diseño de una solución, debe haber una ruta a MVP que no requiera la refactorización de las soluciones existentes. Es aconsejable retrasar la refactorización, hasta que se pueda validar la hipótesis inicial a escala.

Innovaciones del modelo operativo

Además de los enfoques modernos e innovadores para el desarrollo de aplicaciones, se han producido innovaciones importantes en las operaciones de aplicaciones. Estos enfoques han generado muchos movimientos de la organización. Uno de los más destacados es el modelo operativo de centro de excelencia en la nube. Los equipos empresariales, cuando están provistos de personal y consolidados, tienen la opción de proporcionar su propio soporte técnico operativo para una solución.

El tipo de modelo de administración operativa de autoservicio, que se encuentra en un centro de excelencia en la nube, permite controles más estrictos e iteraciones más rápidas dentro del entorno de la solución. Estas metas se logran mediante la transferencia del control operativo y la responsabilidad al equipo empresarial.

Si intenta escalar o satisfacer la demanda global de una solución existente, este enfoque puede ser suficiente para validar una hipótesis de cliente. Una vez que una solución se migra y se moderniza ligeramente, el equipo empresarial puede escalarla para probar una variedad de hipótesis. Normalmente implican a los cohortes de los clientes que están preocupados por el rendimiento, la distribución global y otras necesidades de los clientes que se ven entorpecidas por las operaciones de TI.

Reducir la sobrecarga y la administración

Cuantos más recursos haya que mantener en una aplicación o solución innovadora, más tiempo tardará esta en iterar. Esto implica que puede acelerar la innovación al reducir el impacto de las operaciones en el ancho de banda disponible.

Para prepararse para el número de iteraciones necesarias para ofrecer una solución innovadora, es importante anticiparse. Por ejemplo, minimice las cargas operativas al principio del proceso, favoreciendo las opciones sin servidor. En Azure, las opciones de aplicación sin servidor podrían incluir Azure App Service o contenedores.

En paralelo, tenga en cuenta las opciones de datos de transacción sin servidor que proporciona Azure, ya que también pueden reducir la sobrecarga. El catálogo de productos de Azure proporciona opciones de base de datos que hospedan datos sin necesidad de una plataforma de datos completa.

Pasos siguientes

En función de la hipótesis y la solución, los principios de este artículo pueden ayudar a diseñar aplicaciones que cumplan con las definiciones de MVP e interaccionen con los usuarios. A continuación, se indican los principios de capacitación para la adopción, que ofrecen formas de poner la aplicación y los datos en las manos de los clientes de forma más rápida y eficiente.