Continuous Delivery: metodologia i beneficis de l’entrega continua
A l’hora de posar en marxa un projecte de desenvolupament, els problemes de comunicació entre l’equip i el client, la falta de visibilitat global o les modificacions d’última hora són algunes de les causes més habituals que retarden el lliurament final.
Com a solució a aquests inconvenients neix el Continuous Delivery, un model de gestió de desenvolupament que s’emmarca en les metodologies àgils i que cada vegada és més demandat per les empreses que volen emprendre projectes de desenvolupament fluids i dinàmics.
En aquest post el nostre CTO, Dani Mas, ens explica tot sobre el Continuous Delivery, des de les fases a través de les quals es desenvolupa fins a quins beneficis aporta a les empreses. Comencem!
Continuous delivery, la unió de control de qualitat i automatització
El primer pas per conèixer què és Continuous Delivery és preguntar-se en què consisteix. El nom ja ens dóna alguna pista perquè, en la seva traducció al català (lliurament continu), deixa a la vista els dos conceptes que caracteritzen aquest model de gestió de desenvolupament.
En un flux de treball de programació, el Continuous Delivery ofereix la possibilitat de poder pujar a entorns testables pel product owner, en aquest cas el client, fraccions de codi no totalment completes, però sí utilitzables. És a dir, els lliuraments que es realitzen són funcionals, no simplement visuals i poden testar-se per si mateixes, sense necessitat de comptar amb més desenvolupament per fer-ho.
Amb això, s’aconsegueix que el client no hagi d’esperar fins que li facin arribar el lliurament final del projecte, sinó que pot anar veient com aquest va avançant a mesura que es va desenvolupant. D’aquesta forma, el client té visibilitat dels elements que es van incorporant al projecte i pot demanar els canvis que cregui necessaris abans que es continuï avançant en una direcció determinada. Així, gràcies a aquest flux continu de lliuraments de versions, es pot passar a producció de forma més segura.
Sens dubte, tenint en compte tot això, perquè aquest model es desenvolupi de manera exitosa és necessari comptar amb la implicació i el compromís de totes les parts implicades.
Dins del Continuous Delivery no existeixen timings determinats de lliurament i control, sinó que, en cada cas, el client els estableix amb l’equip, sent la flexibilitat un factor clau d’aquesta metodologia.
Per la seva naturalesa, el Continuous Delivery està molt vinculat a la metodologia Agile, caracteritzada pel dinamisme en el desenvolupament del treball que inclou lliuraments a través de demos.
Quins són els beneficis de Continuous Delivery per a les empreses?
Ara que ja saps què és el Continuous Delivery, potser et qüestiones per què la seva popularitat no deixa de créixer amb passes de gegant dins del món del desenvolupament. La resposta la trobem no sols en l’estalvi del temps, i per tant de la inversió, sinó també en molts altres aspectes, com:
● Optimització del temps de treball. El treball en paral·lel que proposa el Continuous Delivery permet que les persones implicades en el projecte puguin modificar la seva part de treball amb independència de la resta de l’equip.
● Visibilitat integral en tot moment. Des del principi, tant l’equip com el client estan al corrent dels diferents passos que prenen, així com durant l’avanç i la fi del projecte. Per als product owner això representa un gran avantatge a l’hora de transmetre als seus superiors els progressos que s’estan realitzant.
● Les modificacions causen menor impacte en el projecte global degut, d’una banda, al treball en paral·lel i, per un altre, a la interacció constant.
● A més del control de processos i treball, el client també té visibilitat sobre els recursos i el temps que s’estan emprant.
● Expectatives que es compleixen. Com s’està al dia de tots els progresos, es poden sol·licitar els canvis pràcticament al moment de realitzar les accions i, per tant, s’aconsegueix que el resultat final s’ajusti a les expectatives del client.
● Treball i comunicació fluids. La comunicació bidireccional i continuada genera una relació fluida entre el client i l’equip, amb el que no sols s’aconsegueixen objectius finals, sinó que també deriva en un millor flux de treball al dia a dia. D’aquesta forma, tots els implicats en el projecte treballen amb motivació i desig de millora.
El pipeline, les fases clau del Continuous Delivery
Tenint en compte tots els beneficis del Continuous Delivery, a FHIOS hem decidit adaptar-ho com a model de gestió per a molts dels nostres projectes de desenvolupament.
Per desenvolupar-ho, seguim quatre fases que integren el pipeline de cada projecte: desenvolupament, control de qualitat, preproducció i producció.
1. Desenvolupament. Cada membre de l’equip genera els codis que li corresponguin, tenint en compte els temps establerts.
2. Control de qualitat. Després de la primera etapa, els QA testers, encarregats del control de qualitat del desenvolupament d’una empresa, revisen que el lliurable compleix amb totes les seves funcionalitats i comproven que estigui llest per passar-ho a preproducció.
3. Preproducció. En aquesta fase, s’afegeix tot e que s’ha generat a un entorn de proves en el qual, novament, es verifica que els codis es visualitzen i funcionen de manera correcta.
Durant aquestes tres fases del pipeline, les anotacions del client i els canvis demandats pels QA testers, poden fer que les tasques tornin a la fase prèvia a fi que tot arribi de manera adequada a l’última etapa, producció.
4. Producció. Aquest entorn reflecteix el resultat final del projecte, el qual es veu quan tots els lliurables validats pel client ja estan afegits a preproducció.
Continuous Delivery tools i factor humà, la clau del lliurament continu
És important destacar que una de les característiques que diferencien al Continuous Delivery d’altres models de gestió de desenvolupament és la combinació de processos automatitzats amb el factor humà.
Per a la part de processos automatitzats, existeixen les Continuous Delivery tools, eines d’automatització que s’encarreguen de controlar de manera autònoma els codis que es generen. En el nostre cas, a Fhios utilizem Jenkins, una de les Continuous Delivery tools més potents del mercat que, sincronitzat amb Jira, eina per l’administració de tasques de projectes, aconsegueix agilitar el flux de treball i optimitzar els resultats.
A aquestes tecnologies se suma l’expertise dels professionals del nostre equip de desenvolupament, els quals adapten el desenvolupament amb Continuous Delivery a cada projecte segons les necessitats de cada client, convertint la personalització en un dels nostres factors diferencials.
Tu també estàs interessat a promoure el control de qualitat i la millora continua en els teus projectes de desenvolupament? Explica’ns-ho i junts començarem a aprofitar tots els avantatges del Continuous Delivery!