El software como servicio no solo es una mejor manera de entregar software, sino también una forma de crear software que satisfaga mejor las necesidades de su cliente.
por Nick Hodges

En los primeros días de Internet, no había muchas aplicaciones de Internet. En cambio, las aplicaciones se escribieron abrumadoramente para los sistemas operativos Windows, Linux y Macintosh. La “entrega de software” a menudo significaba copiar un binario a un servidor o crear un instalador de Windows de pantalla azul y ponerlo a disposición en un CD-ROM para venderlo en tiendas físicas. (Recuerdo cuando tenía que pagar extra para recibir su producto en 25 disquetes en lugar de ese CD-ROM).
Los lanzamientos se realizaron con muy poca frecuencia, solo una vez al año o incluso más. Los ciclos de desarrollo se midieron en semanas en el mejor de los casos, y el tiempo entre encontrar un error y entregar una solución a menudo se midió en meses. Los lanzamientos fueron monolíticos. Un lanzamiento tenía que ser lo más perfecto posible, porque las oportunidades para ofrecer correcciones de errores eran poco frecuentes y difíciles de gestionar.
Hoy en día, las cosas avanzan un poco más rápido, gracias en gran medida a las aplicaciones de software como servicio ( SaaS ), que constituyen una parte importante del desarrollo realizado en la actualidad. Las aplicaciones SaaS suelen tener una API de back-end basada en JSON que se comunica con algún tipo de navegador. También pueden comunicarse con aplicaciones nativas en teléfonos Apple y Android, pero cada vez más, el dispositivo en el que se ejecuta una aplicación se vuelve irrelevante.
Cualquiera que sea el front-end, todo el enfoque es un cambio dramático de la aplicación de Windows o Mac distribuida clásicamente. Las aplicaciones SaaS se pueden reparar, actualizar e implementar en minutos en lugar de meses. SaaS ha cambiado fundamentalmente la forma en que se desarrolla y entrega el software.
Entonces, ¿por qué las aplicaciones SaaS se volvieron tan deseables y exitosas?
Hay cuatro razones que puedo ver:
- Los equipos de desarrollo controlan toda la ejecución del código.
- El código se ejecuta en un entorno estrictamente definido y altamente controlado.
- La entrega puede ser inmediata y frecuente.
- Los equipos pueden observar cómo sus clientes utilizan el software.
Todo su código nos pertenece
En el mundo del cliente/servidor, escribimos y compilamos código dentro de la empresa, pero luego lanzamos ese código a la naturaleza, donde se ejecutó en quién sabe qué máquinas, sistemas operativos y configuraciones. Claro, todo funcionaba en Windows y Mac, pero esas máquinas eran todas diferentes y teníamos poco control sobre cómo se ejecutaba el código o cómo se configuraba la aplicación. Si tuviera muchas configuraciones de aplicaciones, los usuarios podrían configurar la aplicación de maneras que nunca consideró o incluso pensó posibles.
Con la llegada de SaaS, ninguno de los códigos se libera. El back-end de una aplicación SaaS se ejecuta totalmente bajo nuestro control y en entornos que configuramos, regulamos e incluso modificamos según sea necesario. El código front-end también reside en nuestros servidores, se entrega a pedido y se ejecuta en un número limitado de navegadores web.
Un entorno estrictamente definido
Sí, existen muchos navegadores, pero el número es finito, y los navegadores son, en su mayor parte, un entorno conocido y comprobable. Las aplicaciones SaaS encuentran solo una cantidad limitada de entornos de ejecución, y esto permite que los equipos de desarrollo realicen un trabajo de prueba más exhaustivo que el que podrían realizar en el modelo de distribución clásico.
Todavía existen problemas con la variedad de teléfonos Android que existen, pero cada vez más, los desarrolladores entregan su aplicación en soluciones basadas en navegador, lo que reduce la preocupación por la multitud de dispositivos físicos diferentes que ejecutan muchas versiones diferentes de su software.
Y ahora que Internet Explorer finalmente se ha librado de nuestra miseria , los navegadores restantes hacen un trabajo bastante bueno al implementar los estándares que hacen que el desarrollo de aplicaciones web sea cada día más fácil.
Entrega inmediata y frecuente.
Las aplicaciones SaaS acaban con el temor de entregar un error desconocido y sorprendente a los clientes, sin ninguna forma de solucionarlo durante semanas o meses. Los días de entregar un parche a un producto instalado han quedado en el camino. En cambio, si un error catastrófico se abre camino a través de la tubería de desarrollo y entra en producción, puede saberlo tan pronto como ocurra. Puede tomar medidas inmediatas (retroceder a un buen estado conocido o desactivar un indicador de función) prácticamente antes de que sus clientes se den cuenta. A menudo, puede corregir el error e implementar la corrección en cuestión de minutos en lugar de meses.
Y no son solo errores. Ya no tiene que mantener nuevas funciones como “inventario”, esperando el próximo lanzamiento importante. Antes, si creaba una nueva función en las primeras semanas después de un lanzamiento importante, esa función tendría que esperar potencialmente meses antes de estar disponible para los clientes. Ahora, una aplicación SaaS puede ofrecer una nueva función de inmediato a los clientes siempre que el equipo diga que está lista.
Totalmente observable
Debido a que una aplicación SasS se ejecuta en un conjunto limitado de navegadores, es mucho más fácil observar lo que sucede dentro del entorno de ejecución. Herramientas como Datadog y Dynatrace le permiten observar y rastrear todo lo que sucede dentro de su aplicación. El monitoreo de errores con herramientas como Rollbar puede informar problemas y problemas del cliente a medida que ocurren, lo que reduce drásticamente el tiempo medio de toma de conciencia.
De este modo, la observabilidad se convierte, en efecto, en algo en tiempo real en lugar de algo que sucede indirectamente cuando los clientes reportan problemas. Las aplicaciones se ejecutan en dispositivos conectados a Internet, ya sea una computadora con un navegador o un dispositivo móvil, y por lo tanto pueden informar problemas fácilmente, cómo se usa la aplicación y qué está haciendo.
Conozca a su cliente
En el mundo cliente/servidor, las empresas de software tradicionales luchaban por saber quiénes eran sus clientes, mucho menos qué estaban haciendo con el software y con qué frecuencia lo usaban. Literalmente, podría comprar software, instalarlo y usarlo sin que nadie más supiera que lo estaba haciendo.
Las aplicaciones SaaS nos permiten ver prácticamente todo lo que nuestros clientes hacen con el software. Sus datos se almacenan en nuestros servidores y podemos ver lo que están haciendo ahora y el historial de lo que han hecho en el pasado. Esto no es una observación del Gran Hermano ni una amenaza a la privacidad de los clientes. Las aplicaciones SaaS no tienen la costumbre de almacenar información de identificación personal. Más bien, monitorear el comportamiento del cliente permite a las empresas de SaaS asociarse más estrechamente con los clientes y trabajar para ayudarlos a ver el valor real de nuestros productos al examinar sus patrones de uso y datos.
Como resultado, podemos agregar la actividad de los clientes y enfocar el desarrollo en áreas que muestran un alto uso. Podemos ver cómo los clientes están y no están usando el producto. Podemos ayudarlos a usar mejor el producto. Podemos señalar dónde están utilizando las mejores prácticas y dónde no. Podemos adaptar nuestros esfuerzos a los clientes que necesitan ayuda y emplear nuestro tiempo de manera más productiva.
Saber quiénes son sus clientes y cómo utilizan su producto es información de oro sólido, y las aplicaciones SaaS le permiten hacerlo. Esto conduce a mejores resultados para su negocio y sus clientes. SaaS no solo es una mejor manera de entregar software, sino también una forma de crear software que satisfaga mejor las necesidades de su cliente.
Nick Hodges es el desarrollador defensor de Rollbar . Como desarrollador de Delphi desde hace mucho tiempo, Nick ha centrado su atención en TypeScript y Angular en los últimos años. Se le puede encontrar en Twitter en @nickhodges.
Fuente: https://www.infoworld.com/article/3666957/how-saas-transforms-software-development.html