Mejora del rendimiento de las aplicaciones de negocio

Vivimos en un mundo en permanente funcionamiento. Ya no se nos hace raro ir de compras cualquier día de la semana a cualquier hora o tener que realizar alguna actividad laborar en cualquier momento. Las fronteras temporales que delimitan nuestra vida profesional y nuestra vida personal son cada día más difusas.

Por ello, todos necesitamos acceso a servicios que nos permiten realizar esas actividades y, además, todos demandamos que esos servicios estén disponibles a cualquier hora, al tiempo que exigimos que la interacción con ellos sea fluida y rápida, especialmente - si estos servicios son “online” -.

¿Jugaría con la imagen pública de su empresa?

Pongámonos en la situación de uno de sus clientes. Quiere acceder al servicio o aplicativo que le proporciona su empresa y se encuentra con que no está disponible por una incidencia técnica. Ese cliente es, en primer lugar, una transacción comercial perdida; pero además, es un cliente que ha sufrido una impresión negativa de los servicios ofrecidos por su empresa. En el mejor de los casos, su decepción será pasajera. Será una decepción que, aunque sea superada, no será olvidada. Imagine cuál será el efecto de que ese cliente sufra una serie de decepciones similares. Pasará a ser un cliente perdido. Suponga ahora que esa incidencia técnica en su servicio afectó a miles de usuarios en un corto periodo de tiempo. Aparte de las miles de transacciones perdidas, y de las miles de decepciones individuales sobre el servicio de su empresa, añada ahora que algunos de esos clientes decepcionados expresan su decepción en los medios de comunicación que todos tenemos disponibles hoy en día. A esos miles de clientes perdidos, debemos sumar ahora los cientos de miles que posiblemente tendrán conocimiento del incidente, y que cuando quieran acceder a un servicio como el que su empresa ofrece, recordarán lo que ocurrió y optarán por irse a un competidor nuestro. ¿Podríamos cuantificar cuánto negocio hemos perdido por una indisponibilidad temporal de nuestra tienda online, por ejemplo? Seguro que podríamos hacer un buen intento de aproximación. Pero añadamos a la ecuación el efecto que está teniendo esto sobre nuestra imagen de compañía. ¿Seríamos capaces de cuantificar cómo ha afectado el incidente a nuestra imagen de marca? O, yendo un poco más allá, ¿estaríamos dispuestos a que esto ocurriese de nuevo en un futuro cercano? ¿Querría usted. como representante de su organización, tener que dar explicaciones a sus superiores, a sus accionistas o a uno de esos clientes decepcionados?

Este escenario, es un escenario que muchos conocemos, pero que asumimos como factible (está claro, somos humanos). Es más, incluso cuando esto ocurre, muchas organizaciones no le dan la importancia que realmente tiene.

¿Jugaría con el ánimo de la plantilla de su empresa?

En el escenario anterior hemos puesto en juego solo factores externos a su organización. Podemos pensar que teniendo perfectamente controlados y gestionados nuestros “escaparates al exterior” estaremos tranquilos. Imaginemos de nuevo. Un empleado de su organización, va a introducir un pedido en su sistema de gestión de pedidos. Para ello, recoge la información de un formulario y con ella, rellena una serie de pantallas dentro de la aplicación. Cada pantalla le toma un par de minutos, y además, el proceso, le supone pasar por varias pantallas de información, al tiempo que tiene que recuperar información adicional, por ejemplo la dirección de envío del cliente de otro aplicativo distinto. En el mejor de los casos, ese proceso le toma unos 15 minutos, pero hoy, en plena campaña de compras de Navidad, el sistema de gestión de pedidos está funcionando más lentamente, y ese proceso le está dando problemas al empleado del departamento de pedidos. La aplicación responde con lentitud y el cambio entre pantallas es desesperante. O peor todavía, cuando el empleado tiene medio pedido introducido, el sistema da un error por saturación de la base de datos, y el pedido queda en un estado inconsistente, obligando al empleado a tener que borrar todo lo que hizo, y a empezar de nuevo. Su productividad cae dramáticamente, y en el tiempo que habitualmente procesaba 30 pedidos, ahora solo consigue procesar 10. Tenemos 20 pedidos que se procesarán con retraso, que serán servidos a los clientes con retraso y que posiblemente harán caer la cifra de ventas de nuestra empresa en esta campaña. A todo esto, además, debemos añadirle que los empleados del departamento de pedidos han sufrido una de las peores campañas de Navidad que recuerdan. Han estado crispados, presionados, frustrados y al final de todo el proceso, desmotivados. Imagine las críticas que el Director de Ventas de su empresa pondrá encima de la mesa. Imagine qué opinará el Director de Marketing del daño que ha causado el incidente a su empresa. Pero también, imagine qué opinión tendrá toda la compañía del trabajo realizado por el responsable del sistema de pedidos. ¿Querría estar en su lugar?

El pobre rendimiento de las aplicaciones internas de una organización puede tener el mismo impacto, o incluso más, que las aplicaciones que están de cara a los clientes.

Visual Studio le ayuda a garantizar el rendimiento y la estabilidad de sus aplicaciones

Microsoft, proporciona, gracias a su solución de ALM, Visual Studio, un entorno donde las pruebas de rendimiento y de carga se realizan por los miembros del equipo de desarrollo (tanto desarrolladores como testers) dentro de un entorno que les resulta a todos familiar y altamente productivo. No hay necesidad de que las personas involucradas en este tipo de labores, deban aprender un entorno y una serie de herramientas distintas a las que están utilizando en el día a día.

Además, los tests de rendimiento web son una parte fundamental de las capacidades de testing de Visual Studio 2012. Gracias a estas pruebas se pueden realizar los siguientes tipos de pruebas de rendimiento:

  • Pruebas de rendimiento: permiten examinar el comportamiento de un sistema web ante determinadas cargas de peticiones/usuarios que varían radicalmente en el tiempo. De esta manera se podrá verificar que la aplicación o el sistema se comportan adecuadamente liberando recursos y gestionando avalanchas de peticiones.
  • Pruebas de estabilidad: stas pruebas permiten verificar el comportamiento del sistema frente a una carga de peticiones sostenida en el tiempo. Son la herramienta más útil para comprobar el dimensionamiento teórico del sistema.
  • Pruebas de stress: permiten averiguar la carga máxima de transacciones que podría soportar la aplicación o el sistema, y de esta manera dimensionarlo. También permiten ser utilizadas para detectar cuellos de botella en posibles situaciones críticas de funcionamiento.

Los tests de rendimiento son una herramienta útil pero carecerían de utilidad si no se pudieran analizar los datos obtenidos. Con Visual Studio Load Test Analyzer se puede analizar de manera gráfica las incidencias en el rendimiento de la aplicación con la actividad y las condiciones operativas de los niveles físicos (o servidores) de la misma. Incluso se puede realizar comparaciones y análisis históricos durante la vida de la aplicación puesto que toda la información de las pruebas queda almacenada en la base de datos de pruebas de Team Foundation Server.

Todos estos recursos disponibles durante el desarrollo de la aplicación permitirán que nuestros desarrollos puedan aprovechar todo el rendimiento y las capacidades de escalabilidad que la Plataforma de Aplicaciones de Microsoft puede proveer.

Conclusiones

El rendimiento de nuestras aplicaciones de negocio es un aspecto vital para la marcha de la empresa, de manera independiente de que estas aplicaciones estén o no de cara a nuestros clientes o usuarios finales. Un pobre rendimiento de las mismas puede tener efectos insospechados que pueden ir más allá de las obvias cifras de negocio. En definitiva, el rendimiento y estabilidad de las aplicaciones no es algo que se deba dejar al azar. Es un aspecto tan vital como el resto de cuestiones relativas a la calidad y por tanto merece dedicar recursos y tiempo a garantizarlo.

Visual Studio, dentro de su plataforma ALM, permite disponer de las herramientas idóneas para garantizar el rendimiento y la estabilidad de sus aplicaciones, soportadas por un proceso de gestión del ciclo de vida de extremo a extremo, e integradas de manera sencilla e intuitiva dentro de los entornos de trabajo de los diferentes perfiles involucrados dentro del proyecto.