Rafael Lizárraga
Continuous Delivery: un nuevo paradigma en el desarrollo de software
octubre 26, 2016
Technology
0 Comentarios

Hace más de una década teníamos que esperar un año o más la segunda entrega y versiones sucesivas de nuestros juegos favoritos. En aquel entonces Age of Empires o Need For Speed solo estaban disponibles para PC y los videojuegos 3D para celulares eran impensables (solo estaban disponibles en 8 bits, como el famoso y legendario “juego de la viborita”).

Hoy en día no solo podemos descargar juegos con mejores gráficos en nuestro celular o tablet, sino que muchos de estos parecen adaptarse a nuestra vida real, emulándola y reflejando un poco de nuestra personalidad. Entre la oferta disponible están los que se actualizan cada tanto para ofrecernos nuevos retos y tareas acordes con la temporada del año, nuestras festividades o con lo que está de moda.

Tal es el caso de juegos sociales como Smurf Village o Springfield, donde el usuario recibe con frecuencia refreshers que lo mantienen cautivo y que consisten en paquetes de actualizaciones con nuevos retos, personajes, storylines y divertidas adaptaciones a las festividades de nuestro calendario. O el aclamado Angry birds, del cual no solo se pueden encontrar ya varias versiones, también sigue lanzando para cada una expansiones que lo mantienen fresco y divertido.

Y es que estar al día no solo es parte del reto para seguir en el agrado del público, se ha convertido en un imperativo para las compañías. De modo que los mercadólogos y empresarios se han visto en la necesidad de crear toda una metodología y una cultura de la agilidad y las entregas inmediatas.

Estar al día es estar al pendiente del usuario, un compromiso con su experiencia con nuestros productos digitales. Esta actitud no es exclusiva de la industria de los videojuegos. Todo desarrollo de software basado en entregas continuas es un diálogo secreto, no escrito, entre las empresas y sus usuarios a través del software.

Metodologías ágiles

El desarrollo del concepto y práctica de ‘entrega continua’ (continuous delivery) nace de la necesidad de las compañías por entregar mucho más rápido productos en formato software que resulten valiosos para el cliente, mejorando su calidad en tiempos más cortos, para así obtener ventaja frente a competidores.

Surge a partir de la cultura de las metodologías ágiles (Scrum, Lean Startup, Lean Thinking, DevOps, etc.), las cuales promueven eficiencia y productividad mediante la construcción escalonada de productos con estrecha colaboración y retroalimentación del usuario, reduciendo el desgaste y el desperdicio en que redunda la tramitología, el retrabajo y resultados que al final al usuario no le gustan o interesan. Sin embargo, el antiguo paradigma planteaba lanzar una nueva versión en una o dos semanas. El nuevo paradigma implica cientos cada día. Entre uno y otro paradigmas no han pasado más de unos 5 años.

El desarrollo continuo de productos es una visión holística que involucra estrategia y planeación de negocio, desarrollo y operaciones. Permite entregar productos actuales y frescos, y con ello prolongar su tiempo de vida y seguir ofreciendo valor al consumidor.1

De poco en poco se va llenando el coco

Muchas compañías y startups han adoptado la entrega continua de software. Puesto que en el fondo su interés es por adquirir procesos más eficientes, con menos costos y riesgos, deben determinar junto con sus equipos qué proceso debe ser redefinido y cuál automatizado.

Por esta razón, para lograr entregas continuas de manera efectiva cuentan con la arquitectura que integra –generalmente en la nube– sistemas de control de versiones, aplicaciones que permiten desplegar, modificar y probar software, de modo que involucra de manera independiente equipos cruciales como Desarrollo, QA y Operaciones (servicios como Electric Cloud, Bitbucket Pipelines o Cisimple).

De hecho, Oliver Bosset aconseja aprender de las lecciones de los pioneros del internet y apostar por “autoservicios” para desarrolladores: mayor independencia de otros equipos de operaciones de infraestructura.

Netflix, por ejemplo, cuenta con una arquitectura IT en la nube que permite a sus desarrolladores lanzar cientos de cambios de software cada día, desplegando código en cuestión de horas. Lo mismo hacen otros como Facebook, Amazon y Target.

Y es que hoy en día entregar productos acabados 100% y encontrar luego que no funcionan es dinero tirado a la basura. Es un poco como volver a los noventa y encontrar que, un año después, Age of Empires ya no seguía pegando y dejó de ser cool. La vida útil del software puede prolongarse y, a la vez, seguir entregando valor a los usuarios.

No querramos comernos al mundo de un solo bocado. Pero pregúntate: ¿tu empresa está lista para el Continuous Delivery de sus productos y servicios digitales?

 

[1] Grian Fitzgerald y Klaas-Jan Stol nos ofrecen una perspectiva más amplia sobre la ingeniería de software continuo en su texto Continuous Software Engineering and Beyond: Trends and Challenges, que puedes consultar en: http://scalare.org/wp-content/uploads/2015/06/rcose20141.pdf

DOWNLOAD HANDBOOK