Serie de libros electrónicos para el desarrollo ágil paralelo: Capítulo 2 Cinco limitaciones de desarrollo y prueba que afectan la velocidad, el costo y la calidad de sus aplicaciones Nuevas presiones, más limitaciones No es ningún secreto que en la economía de aplicaciones las organizaciones líderes crean una ventaja competitiva mediante el desarrollo de nuevas innovaciones digitales y su combinación con bienes y servicios existentes. Esto se conoce como Transformación digital, es una iniciativa que se propagó entre las empresas que desean satisfacer la demanda siempre creciente de usuarios que se capacitaron con la Internet, dispositivos móviles y redes sociales que exigen el desempeño perfecto de todos los servicios digitales que consumen. Una parte de esta transformación implica que las organizaciones están presionadas para entregar nuevas aplicaciones y servicios a una velocidad acelerada y a la vez para mantener una calidad alta del software y los costos de desarrollo y prueba a un nivel razonable. A pesar de tener las mejores intenciones, los equipos de desarrollo y prueba a menudo tienen dificultades para cumplir con uno o más objetivos de velocidad, costo y calidad debido al desafío persistente de las limitaciones. Encuesta sobre Transformación digital de Altimeter Group, 2014 N=59 1 2 ¿Qué es la transformación digital? ? Altimeter la define como “la reorganización de la tecnología y los modelos de negocios o la inversión en ellos para comunicarse de manera más efectiva con los clientes digitales en todo punto de contacto del ciclo de vida de la experiencia del cliente”1. Cómo las limitaciones restringen el potencial de desarrollo Probablemente escuchó el dicho “una cadena es tan fuerte como su eslabón más débil”. Para los equipos de desarrollo y prueba, existe una relación similar entre el ciclo de vida de la entrega de software (SDLC) y las limitaciones. A menudo, en la cadena de entrega que representa el SDLC, las limitaciones se esconden detrás del eslabón más débil. Acuñada por Eliyahu M. Goldratt en su libro, La Meta, la teoría de las limitaciones explica que dentro de todo sistema administrable existen limitaciones que pueden afectar el logro de un objetivo en particular. Por ejemplo, los equipos de desarrollo y prueba se topan con muchas limitaciones de entorno, datos, prueba y visibilidad dentro de las etapas individuales del SDLC; cada una de ellas genera demoras o dificultades específicas que impiden la entrega de servicios de alta calidad a los costos y velocidades esperados. Esto significa que incluso si el negocio y los usuarios quieren mejores aplicaciones y entregas más rápidas, TI solo podrá desarrollar y probarlas a la velocidad y frecuencia que permitan las limitaciones del SDLC. Entonces, si desea alcanzar niveles más altos de velocidad, costos y calidad, debe comprender las limitaciones comunes que plagan el SDLC y cómo minimizarlas o eliminarlas. 3 Cinco limitaciones comunes en el SDLC A menudo, identificar y resolver las limitaciones en el SDLC puede ser algo de nunca acabar, cuando se resuelve una, aparece otra por aquí, otras aparecen por allá y pueden ser difíciles de predecir. A continuación se enumeran algunos de los tipos de limitaciones comunes que se deben buscar cuando se revisan las prácticas de desarrollo y prueba: 1 2 Limitaciones de aplicaciones compuestas Limitaciones de entorno Cuenta con muchos equipos de entrega de aplicaciones pero no suficientes entornos de desarrollo y prueba donde trabajar. El resultado inevitable es que los equipos experimentan tiempo de inactividad no productivo mientras esperan que los sistemas o entornos que necesitan estén disponibles. Las aplicaciones modernas se ensamblan de varias API, UI, componentes y servicios, puede tener acceso limitado a mucha de ellas para las actividades de desarrollo y prueba. Cuando estos componentes son de terceros, a menudo tiene que pagar cargos de acceso que pueden acrecentarse rápidamente con el tiempo. 4 Cinco limitaciones comunes en el SDLC 3 4 5 Limitaciones de datos Limitaciones de prueba Limitaciones de visibilidad Para asegurar que una aplicación funcionará al nivel esperado en la producción, debe evaluarla con datos que se acerquen a las condiciones “reales” y que tengan la amplitud necesaria para cubrir todos los casos de uso. Si los equipos de prueba no tienen fácil acceso a ese tipo de datos, deben crear datos de prueba de calidad de producción manualmente, lo que implica costos y demoras adicionales en los proyectos. Muchos equipos de TI creen que los procedimientos de prueba están automatizados, pero solo la prueba está automatizada. Para llegar a ese paso, tienen que desarrollar scripts y código manualmente que impulse la automatización. Usualmente, estos recursos de prueba no pueden compartirse en las etapas de prueba (por ejemplo: unidad, funcional, esión, integración, desempeño, etc.) y generan la necesidad de duplicar el esfuerzo. Cuando las pruebas demuestran defectos de la aplicación, los equipos de TI deben localizar la raíz del problema para poder resolverlo. En un entorno de aplicación compuesta, es más fácil decirlo que hacerlo, en particular cuando hay escasa visibilidad integral de la ruta de transacciones y se dificulta el descubrimiento de información útil. 5 Cómo las limitaciones de desarrollo y prueba afectan su negocio Si bien las limitaciones se manifiestan como desafíos técnicos que los equipos de TI deben resolver dentro y fuera del SDLC, también afectan el negocio en su totalidad de varias maneras significativas. Innovación ralentizada Pensar en una idea de software innovadora es solo la mitad de la ecuación, la otra es llevarla al mercado rápidamente y con un nivel de calidad que generará una ventaja competitiva y superará las expectativas de los usuarios. Sin embargo, muchas de las limitaciones discutidas anteriormente contribuyen al tiempo de inactividad y al esfuerzo manual que prologan los cronogramas de los proyectos y así frenan la innovación y les dan la oportunidad a los competidores de llegar primero al mercado. Calidad reducida Cuando los equipos no tienen acceso oportuno a recursos de prueba de condiciones reales, no pueden realizar las pruebas tan eficientemente y exhaustivamente como es necesario para garantizar el desempeño listo para la producción. Cuando una aplicación de baja calidad llega al mercado, desalientan a los clientes, pueden dañar su marca y requieren una revisión de desarrollo y prueba importante. Mayores costos Tratar de esquivar las limitaciones genera ineficiencias en el SDLC que resultan en costos de hardware y software para el negocio. Por ejemplo, cuando los codificadores utilizan su valioso tiempo para crear scripts o simulacros de escaso valor, el “costo humano” de la entrega de la aplicación aumenta. También existe el impacto sobre las ganancias conocido en el presente o desconocido en el futuro cuando se lanza al mercado de forma prematura un servicio lleno de errores. 6 Resolver el problema de las limitaciones con el desarrollo ágil paralelo Para limitar los efectos de las limitaciones en la velocidad, la calidad y los costos del desarrollo de software, las organizaciones líderes adoptaron herramientas y metodologías de desarrollo ágiles y en paralelo. Con el desarrollo ágil paralelo, puede reducir o eliminar: Las limitaciones de pruebas al permitirles a múltiples miembros de equipos interfuncionales (incluso de desarrollo y control de calidad) diseñar y ejecutar rápidamente pruebas automatizadas de unidad, función, regresión, integración, carga y desempeño. Las limitaciones de aplicaciones compuestas y de entorno al modelar y simular el comportamiento y las características de sistemas y servicios dependientes Las limitaciones de datos mediante la captura de transacciones reales en entornos de prueba y ensayo y la creación inteligente de recursos de servicio virtual “realista” y de automatización de prueba para incrementar la calidad Las limitaciones de visibilidad gracias a la adquisición de una comprensión al nivel de la transacción de las aplicaciones modernas y complejas y así acelerar el análisis de las raíces de los defectos y la remediación de los problemas encontrados de forma intuitiva El resultado es que los equipos de TI pueden trabajar en paralelo y “trasladar a la izquierda” las actividades de desarrollo y prueba; entonces, puede entregar nuevos y mejores servicios al mercado más rápido y así satisfacer la demanda de los clientes. 7 ¿Qué sigue? En el capítulo 3 de la serie, veremos de cerca lo que se necesita para lograr un desarrollo ágil paralelo y cómo está conectado de forma directa a sus capacidades de virtualización, colaboración, calidad del software y administración. ¿Las limitaciones lo retrasan? Descubra sus fortalezas y debilidades en la Evaluación de desarrollo y prueba y obtenga orientación que puede utilizar para comenzar a resolver sus desafíos de desarrollo y prueba hoy. CA Technologies (NASDAQ: CA) crea un software que impulsa la transformación en las empresas y les permite aprovechar las oportunidades de la economía de aplicaciones. El software es el centro de cada empresa, en cada industria. Desde la planificación hasta el desarrollo, la administración y la seguridad, CA trabaja con empresas en todo el mundo para cambiar la forma de vivir, realizar transacciones y comunicarse, mediante entornos móviles, de nube pública y privada, centrales y distribuidos. Obtenga más información en ca.com/ar. © Copyright CA 2015. Todos los derechos reservados. El propósito de este documento es meramente informativo y no constituye ningún tipo de garantía. Todas las marcas registradas, los nombres comerciales, las marcas de servicios y los logotipos mencionados en este documento pertenecen a sus respectivas empresas. CS200-127705-2