conseguir el equilibrio: nuevos puntos esenciales del ...€¦ · conseguir el equilibrio: nuevos...
TRANSCRIPT
Conseguir el equilibrio: nuevos puntos esenciales del desarrollo de software
“Un modelo racional de software consiste en realizar diseños rápidamente; la presión económica para ser capaces de improvisar supone un reto interesante”.
Kent Beck
Informe oficialComprobación y entrega de software
Índice página
Todo lo relacionado con el desarrollo de software es una cuestión de equilibrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Información sobre tendencias del mercado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Cómo abordar la complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Equilibrio entre un ritmo de lanzamiento rápido y más pruebas . . . . . . . . . . . . 5
Equilibrio entre la visibilidad de la empresa y la flexibilidad de desarrollo . . . 5
Equilibrio entre procesos repetibles y flexibles . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Equilibro del desplazamiento a izquierda y derecha en las pruebas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1www.microfocus.com
Todo lo relacionado con el desarrollo de software es una cuestión de equilibrio
Crear un equilibrio adecuado en el desarrollo de software no es una cuestión nueva: durante
años, las organizaciones han sido conscientes de que, para hacer frente a la complejidad del
desarrollo de software, era necesario renunciar a algo. Pero ¿exactamente qué deben buscar
las organizaciones para encontrar el equilibrio? ¿Cuáles son los principales puntos esenciales
en torno a los que los equipos de desarrollo deben buscar el equilibrio?
¿Son las personas, los procesos y las herramientas? ¿Se trata del presupuesto, el programa y
el ámbito? ¿Es la calidad, la funcionalidad y el tiempo? ¿El volumen de deuda técnica frente
a las funciones de envío? ¿Las técnicas de desarrollo en cascada frente a las de Agile?
La realidad es que todos estos puntos se deben equilibrar y los equipos de entrega son
conscientes de que deben hacer frente a todas estas cuestiones, cada día . Sin embargo,
si miramos más allá de la organización, encontramos dos puntos esenciales que impulsan
la gran necesidad de alcanzar el equilibrio: las tendencias actuales del mercado y la
complejidad en varios dispositivos, plataformas y versiones de software .
Al comprender y hacer frente a ambos puntos, las organizaciones pueden comenzar a
conformar el equilibrio adecuado en el desarrollo de software para resolver cuestiones como
el lanzamiento rápido frente a la realización de más pruebas; mejorar la visibilidad de la
empresa mientras se conserva la flexibilidad de desarrollo; buscar el equilibrio entre los
procesos flexibles y repetibles; y la realización de pruebas de rendimiento durante el proceso.
Información sobre tendencias del mercado
1. La era del consumidorLa mayoría de las empresas actuales, tanto si lo aprecian como si no, dependen de su
software y sus procesos. Ahora, cada empresa es básicamente una empresa de software.
Al mismo tiempo, el desarrollo de software se ha convertido en un esfuerzo de toda la
empresa para satisfacer las demandas de la economía digital .
Gracias a la era del consumidor, los usuarios finales están mejor informados, son
más astutos y más críticos con todo aquello que no ofrece una perfecta experiencia de
consumidor. El usuario final actual, muy preparado, exige continuamente más y más rápido,
lo que disminuye la brecha entre las expectativas de los clientes y la capacidad de respuesta
empresarial .
“No se trata solamente de encontrar un equilibrio en el desarrollo de software, tendrá que crearlo”.
2
Informe oficialConseguir el equilibrio: nuevos puntos esenciales del desarrollo de software
La era del consumidor también se refleja en tendencias técnicas como, por ejemplo,
el cambio de sistemas basados en datos, estructurados y transaccionales (“sistemas
de registro”) a aplicaciones ricas en contexto y productos inteligentes (“sistemas de
contratación”); una tendencia en gran medida impulsada por la proliferación de dispositivos
móviles, redes sociales y la nube .
En el desarrollo de software, esta tendencia ha creado un requisito interminable de
acelerar los ciclos de productos y satisfacer las crecientes demandas de los consumidores .
Debido a la necesidad de una entrega rápida, el proceso de entrega de software tradicional
(planificar, crear, probar, lanzar) se está derrumbando. Cualquier organización que tenga,
por ejemplo, un proceso formal de definición de requisitos, o que no haya adoptado las
pruebas automatizadas, probablemente esté avanzando demasiado despacio. Todo el equipo
de desarrollo se ve sometido a la presión de mejorar las comunicaciones y los procesos para
seguir el ritmo de las exigencias empresariales, mantener la calidad del software y cumplir
las ajustadas programaciones .
2. Los silos funcionales son cosa del pasadoEn el pasado, tener a los expertos organizados en silos respondía a propósitos técnicos
y financieros. Ahora estos silos restringen la gestión de la información y crean entornos
heterogéneos complejos. Esto provoca que los equipos empresariales trabajen a ciegas con
una visibilidad limitada del proceso de desarrollo .
La colaboración eficaz, con equipos multifuncionales, incluidos los participantes de la
empresa, los expertos en dominios, los evaluadores y los desarrolladores, debe ser la norma
para acabar con los silos y garantizar la entrega acelerada . Esto solo puede ocurrir cuando
se establece un vínculo fuerte entre los requisitos empresariales básicos y las actividades de
desarrollo asociadas y los casos de prueba. No es suficiente con hablar de colaboración: se
debe contar con las herramientas adecuadas para lograr su efectiva implantación .
3. Diversas transferenciasLos proyectos de desarrollo de aplicaciones a gran escala rara vez los diseña, implanta y
mantiene un único equipo, lo que aumenta la necesidad de realizar múltiples transferencias .
Si los equipos están organizados en silos, significa que será necesario realizar diversas
transferencias de los equipos de desarrollo a los equipos de prueba (funcional, unidad,
regresión, rendimiento), de nuevo a los equipos de desarrollo (a través de seguimiento de
problemas), otra vez a los equipos de prueba y finalmente a los equipos de operaciones para
el lanzamiento e implantación . No es ninguna sorpresa que esto provoque problemas de
comunicación y cuellos de botella en las fases de desarrollo, cuando el verdadero objetivo
debe ser realizar las distintas transferencias en un orden de importancia más rápido .
Debido a la necesidad de una entrega rápida, el proceso de entrega de software tradicional (planificar, crear, probar, lanzar) se está derrumbando. Cualquier organización que tenga, por ejemplo, un proceso formal de definición de requisitos, o que no haya adoptado las pruebas automatizadas, probablemente esté avanzando demasiado despacio.
3www.microfocus.com
La solución de DevOps ideal es un sistema integrado, en el que cada uno trabaje con la
herramienta especializada de su elección, pero que puedan conectarse fácilmente y mantener
las comunicaciones en tiempo real con otros miembros del equipo . Esto garantiza que todo
el equipo de desarrollo conozca y comprenda las especificaciones y los objetivos originales
de la empresa. Al mejorar las comunicaciones de este tipo, invariablemente se reducen las
costosas repeticiones del trabajo .
4. Requisitos y prácticas de AgileLa naturaleza del desarrollo de Agile implica que los requisitos no siempre se pueden definir
totalmente desde el principio, ya que la mayoría de las herramientas de requisitos rara vez
se adaptan a un modelo de entrega adaptativo e iterativo . Este retraso en la creación de
requisitos y su transferencia al equipo de entrega afecta seriamente a la agilidad del negocio .
Aunque es un reto reemplazar los procesos bien definidos que se utilizan para impulsar
el programa de definición y comunicación de requisitos, la falta de reacción simplemente
amplía las deficiencias en la entrega, lo que dificulta que los equipos empresariales se
adapten a la evolución de las necesidades de los clientes .
Dentro del entorno Agile, la solución es ser más “ágil” en la definición de los requisitos,
utilizando herramientas que les resulten familiares a los usuarios empresariales, pero que
estén más alineadas con la cadencia de los equipos Agile. Así, se consigue que el proceso de
entrega sea completamente iterativo, incluida la definición de los requisitos.
Cómo abordar la complejidad
1. Proliferación de dispositivosEl efecto “multiplicador móvil” de diferentes dispositivos, sistemas operativos, patrones
de uso de aplicaciones y plataformas (incluidas las plataformas basadas de la nube, los
servidores locales, las conexiones de terceros, las aplicaciones web y las aplicaciones móviles,
entre otros), somete a los equipos de entrega y prueba tradicionales a una enorme presión .
Esto se manifiesta mediante el aumento del gasto y la complejidad de las pruebas, los
retrasos del producto, los problemas de calidad y una satisfacción del cliente deficiente.
Todo esto se produce en un momento en que la creación de una experiencia de usuario
perfecta es imprescindible para cualquier empresa que interactúe con sus clientes a través
de las aplicaciones. Lo irónico es que algunas plataformas que “crean” complejidad también
pueden actuar como solución: por ejemplo, la infraestructura de prueba se puede simplificar
mediante el uso de plataformas en la nube para simular cientos de dispositivos diferentes y
miles de usuarios simultáneos para las pruebas de carga y rendimiento .
Aunque es un reto reemplazar los procesos bien definidos que se utilizan para impulsar el programa para definir y comunicar los requisitos, la falta de reacción simplemente amplía las deficiencias en la entrega, lo que dificulta que los equipos empresariales se adapten a la evolución de las necesidades de los clientes.
4
Informe oficialConseguir el equilibrio: nuevos puntos esenciales del desarrollo de software
Con el fin de optimizar la entrega, los evaluadores deben ser una parte esencial del equipo de entrega y estar involucrados desde el inicio del proyecto para adoptar una forma dinámica y cambiante de trabajar.
2. La complejidad de la gestión de requisitosComo se explicaba anteriormente, las herramientas para gestionar los requisitos y
automatizar los procesos de entrega del proyecto se desconectan en gran medida con la
entrega de Agile. La visibilidad empresarial del estado de los equipos de entrega resulta
cada vez más complicada, ya que las prácticas de entrega de Agile dividen los requisitos
del cliente en multitud de historias y tareas que son muy difíciles de seguir . Por otro lado,
puede que no se conozcan todos los requisitos y que estos no sean precisos, de modo que los
desarrolladores desconozcan no sabrán cómo debe funcionar la aplicación .
Para resolver la complejidad, los requisitos deben convertirse en una práctica
multifuncional: deben involucrarse varios participantes en el diseño, la definición y la
gestión de requisitos. Además, el acceso a dicha información se debe distribuir, y ser sencillo
e intuitivo .
3. Entrega optimizadaLas pruebas tradicionales no van de la mano del desarrollo de Agile: una disciplina (Agile)
puede ir por delante del resto, lo que perjudicará totalmente la función de los evaluadores .
Con el fin de optimizar la entrega, los evaluadores deben ser una parte esencial del equipo de
entrega y estar involucrados desde el inicio del proyecto para adoptar una forma dinámica y
cambiante de trabajar .
Se deben adoptar nuevas prácticas, tales como el desarrollo y las pruebas integrados y
continuos (donde se realizan pruebas de calidad a menor escala y con mayor frecuencia) .
Además, la cobertura de las pruebas también se puede ampliar utilizando las herramientas y
los procesos más recientes .
4. Pruebas de desplazamiento a izquierda y derechaLa automatización está diseñada para incorporar pruebas funcionales y de rendimiento
tan pronto como sea posible en el proceso de desarrollo, con el fin de reducir el gasto de
la repetición de trabajo (pruebas de desplazamiento hacia la izquierda) . Mientras tanto,
la supervisión del rendimiento de las aplicaciones después de la producción (pruebas
desplazamiento a la derecha) es necesaria para medir activamente la experiencia de usuario.
Ambas deben combinarse de forma efectiva para permitir pruebas continuas. Mediante la
alineación de los requisitos de pruebas y empresariales desde el comienzo, las organizaciones
pueden iniciar pruebas funcionales y no funcionales en el sprint 0 y, fundamentalmente,
construir la calidad desde el principio .
5www.microfocus.com
Equilibrio entre un ritmo de lanzamiento rápido y más pruebas
La demanda de entrega más rápida no tiene precedentes, y con ella, la presión para “cumplir
con el plazo” a menudo compromete la calidad y se crea un software que es inestable o frágil .
Las disyuntivas típicas incluyen delegar los problemas a sprints posteriores (lo que crea
una deuda técnica) o aportar un factor “lo suficientemente bueno” o una “suposición más
probable” en el proceso de desarrollo, en lugar de tomar decisiones fundadas sobre las
prioridades y el ámbito, y asegurarse de que lo que se está creando está continuamente
conectado con la petición original .
Cuando se necesita que el ritmo de iteración sea rápido (prácticamente, siempre), la
calidad debe introducirse en el momento adecuado y en la secuencia correcta . Para servir
rápidamente a los equipos de DevOps, las pruebas de aplicaciones deberían integrarse en
los flujos de trabajo de DevOps y entrega continua, de forma que las pruebas de rendimiento
y funcionales se inicien automáticamente y las pruebas sean iterativas, incrementales
y continuas a lo largo de todo el proyecto . Un programa de entrega acelerada como este
realmente ayuda al equipo de gestión a proporcionar comentarios rápidos a los equipos de
desarrollo, ya que los equipos empresariales tienen una mayor visibilidad de los problemas
de calidad .
Equilibrio entre la visibilidad de la empresa y la flexibilidad de desarrollo
Los equipos de desarrollo desean utilizar sus propias herramientas, que les resultan
familiares, para acelerar la carga de trabajo mediante el desglose de las historias y las
tareas para describir su carga, mientras que la gestión empresarial desea tener una idea de
lo que estas herramientas están creando y si los resultados cumplen con los requisitos de
la empresa . Si las dos partes no coinciden (que suele ser el caso), la organización no tiene
visibilidad de lo que se entrega y tendrá poca capacidad para adaptarse a la evolución de las
necesidades de los clientes .
Con el fin de evitar costosas repeticiones del trabajo, mejorar la colaboración y la conexión
de las tecnologías es esencial para la organización . Esta mejora se puede conseguir, a pesar
de los diferentes estilos de funcionamiento entre los equipos empresariales y los equipos de
desarrollo, sin la necesidad de adoptar nuevas herramientas ni transformar radicalmente los
procesos existentes.
“Cuando se necesita que el ritmo de iteración sea rápido (prácticamente, siempre), la calidad debe introducirse en el momento adecuado y en la secuencia correcta”. Las tendencias del mercado y la complejidad crean cuatro puntos fundamentales de equilibrio:
Equilibrio entre un ritmo de lanzamiento rápido y más pruebas
Equilibrio entre la visibilidad de la empresa y la flexibilidad de desarrollo
Equilibrio entre procesos repetibles y flexibles
Equilibrio del desplazamiento a izquierda y derecha en las pruebas de rendimiento
6
Informe oficialConseguir el equilibrio: nuevos puntos esenciales del desarrollo de software
Equilibrio entre procesos repetibles y flexibles
Las organizaciones se han dividido tradicionalmente en silos funcionales, normalmente con
el objetivo de extraer el máximo valor de los individuos. Sin embargo, esto ha creado un
conflicto de prioridades entre el desarrollo y las operaciones en un entorno que ya cuenta
con procesos, herramientas, objetivos y métricas de éxito en conflicto.
Cuando las prácticas de Agile y en cascada entran en juego, mantener la estructura en el
proceso de desarrollo sin perder flexibilidad ni adaptabilidad es esencial: las organizaciones
deben avanzar rápido y hacerlo sin “romper” nada .
La adopción de una cultura de DevOps por parte de la organización ayuda a evitar conflictos
en los equipos, mientras que la mejora de la colaboración garantiza que todos los integrantes
del equipo sepan lo que están haciendo los demás . El enfoque se traslada a los resultados
generales en lugar de a las partes individuales del proceso. Al evitar las disyuntivas típicas,
la experiencia del cliente también se ve mejorada: ahora cada cliente verá coherencia en
los tiempos de respuesta, calidad de primera categoría y entrega a tiempo de cualquier
aplicación que se esté desarrollando.
_______________________________________________________________
La adopción de una cultura de DevOps por parte de la organización ayuda a evitar conflictos en los equipos, mientras que la mejora de la colaboración garantiza que todos los integrantes del equipo sepan lo que están haciendo los demás. El enfoque se traslada a los resultados generales en lugar de a las partes individuales del proceso.
Prioridades conflictivas de Dev y Ops
Necesidad de impulsar la ventaja competitiva y responder a las necesidades del mercado con un riesgo mínimo y garantizar la conformidad
Las prácticas de Agile han aumentado la velocidad de entrega de ingeniería para
que coincida con el ritmo empresarial
La conformidad y la mitigación de los riesgos, sin perder estabilidad del sistema
ni disponibilidad, es lo más importante
EMPRESA
DESARROLLO
Avanzar rápido Sin romper nada
OPERACIONES
7www.microfocus.com
El equilibrio es un tema que se trata con frecuencia en los círculos de desarrollo de software, pero en lugar de ser un concepto esencial, puede reducirse a cuestiones reales expuestas por las tendencias actuales del mercado y la complejidad que no deja de aumentar.
Equilibro del desplazamiento a izquierda y derecha en las pruebas de rendimiento
Al centrarse demasiado en la funcionalidad, el contenido y las capacidades, las organizaciones
de desarrollo pueden asignar una prioridad insuficiente al rendimiento de las aplicaciones, y a
cómo y dónde se deben abordar las pruebas de rendimiento .
Normalmente, se produce al final del ciclo de desarrollo, a pesar de que el rendimiento es
un elemento clave establecido para el éxito de cualquier aplicación. Las organizaciones se
enfrentan a un importante desafío a la hora de descubrir cuál es la mejor manera de integrar
las pruebas de rendimiento en el proceso de desarrollo: cambiar de una idea tardía a una
fase crucial y continua .
Las pruebas de desplazamiento a izquierda y derecha son, una vez más, relevantes .
Juntas, fomentan las pruebas en una fase temprana del proceso de desarrollo, junto con
la supervisión del rendimiento después de que la aplicación llegue a la fase de producción.
Añadir una solución de automatización adecuada a la escena y a las organizaciones puede
abordar también el efecto multiplicador de los móviles mediante la creación de una
biblioteca de métodos de pruebas de guion único y repetible, que permite realizar más
pruebas en el tiempo disponible, además de crear guiones reutilizables para la supervisión
del rendimiento una vez que la aplicación se encuentra en producción .
Para los equipos de control de calidad que necesitan validar que las aplicaciones web,
móviles, nativas y empresariales tengan una funcionalidad y rendimiento consistentes en
cualquier dispositivo (sin importar dónde se encuentre el usuario final), este es un gran salto
para poder garantizar una experiencia de usuario positiva .
Conclusión
El equilibrio es un tema que se trata con frecuencia en los círculos de desarrollo de software,
pero en lugar de ser un concepto esencial, puede reducirse a cuestiones reales expuestas
por las tendencias actuales del mercado y la complejidad que no deja de aumentar: es decir,
la disyuntiva percibida de la velocidad frente a la calidad de la entrega; romper procesos
restrictivos mientras se mantiene el control; y la introducción de pruebas de rendimiento y
supervisión (marcar la diferencia de cada aplicación con éxito) a lo largo de todo el ciclo de
vida de desarrollo .
8
Informe oficialConseguir el equilibrio: nuevos puntos esenciales del desarrollo de software
Para responder a estos retos, Micro Focus ofrece productos para todo el proceso de DevOps:
Atlas™ ayuda a garantizar que se capturan los requisitos del cliente en continua evolución y se comunican de forma inteligente a los equipos de operaciones y desarrollo. Permite la colaboración eficaz entre los expertos empresariales, los expertos en dominios, los evaluadores y los desarrolladores para garantizar la entrega acelerada.
Silk Central™ es una plataforma centralizada y abierta que facilita la colaboración y establece la capacidad de seguimiento mediante la integración de requisitos, la automatización, el control de código fuente y las herramientas de seguimiento de defectos. Ayuda a las organizaciones a saber cuándo se están cumpliendo los objetivos de calidad y si las aplicaciones están realmente listas para su lanzamiento.
La automatización de pruebas de Silk Test™ permite a los equipos de prueba estandarizar las tareas de validación mediante la prueba de aplicaciones web, aplicaciones para móviles y aplicaciones con muchos clientes utilizando el mismo conjunto de herramientas. Admite las herramientas y procesos existentes sin interrupciones.
Silk Performer™ ayuda a conocer la verdadera experiencia de usuario simulando diversas tecnologías de red con cable, inalámbricas y móviles. Además puede garantizar que las aplicaciones estén “preparadas para todo” y para soportar un uso global masivo.
Silk Performance Manager analiza la experiencia del usuario y la calidad de las aplicaciones en la producción activa para ayudarle a detectar problemas de rendimiento y funcionales antes de que sus clientes se vean afectados.
Micro Focus® Deployment Automation soluciona la división de DevOps al simplificar y automatizar las implantaciones. Admite implantaciones de producción y entrega continua al permitir la implantación de la automatización del canal de distribución, reducir los tiempos de ciclo y proporcionar comentarios rápidos.
Entre los productos de DevOps de Micro Focus se incluyen:
Atlas
Silk Central
Silk Test
Silk Performer
Silk Performance Manager
Micro Focus Deployment Automation
162-ES0105-001 | N | 03/17 | © 2017 Micro Focus. Reservados todos los derechos. Micro Focus, el logotipo de Micro Focus, Atlas, Silk Central, Silk Performer y Silk Test, entre otros elementos, son marcas comerciales o marcas comerciales registradas de Micro Focus o sus compañías subsidiarias y filiales en Reino Unido, Estados Unidos y otros países. El resto de marcas son propiedad de sus respectivos propietarios.
www.microfocus.com
Argentina+54 11 5258 8899
Chile+56 2 2864 5629
Colombia+57 1 622 2766
México+52 55 5284 2700
Panamá+507 2 039291
España+34 91 781 5004
Venezuela+58 212 267 6568
Micro FocusSedes corporativasReino Unido+44 (0) 1635 565200
www.microfocus.com