# Gestió de versions

La gestió de versions és el procés de gestió de les versions del programari des del desenvolupament a les proves i des de les proves als entorns de producció. És una disciplina relativament nova, però en ràpid creixement dins de l'enginyeria de programari. Com els sistemes de programari, processos de desenvolupament de programari i els recursos estan cada cop més distribuïts, invariablement cada vegada són més especialitzat i complex. A més, els productes de programari (especialment aplicacions web) són en general en un cicle continu de desenvolupament, proves i posada en marxa. Cal afegir a això una evolució i la complexitat creixent de les plataformes en què aquests sistemes funcionen, i es fa evident que hi ha un munt de peces que han d'encaixar a la perfecció per garantir l'èxit i valor a llarg termini d'un producte o projecte. Per tant, la necessitat de dedicar recursos a supervisar la integració i el flux del desenvolupament, les proves, la implementació i el suport d'aquests sistemes existeix. Encara que els cap de projecte han fet això en el passat, en general, estan més preocupats pels "grans" aspectes d'un projecte o aplicació, de manera que, sovint no tenen temps per supervisar alguns dels aspectes més tècnics o de dia-a-dia del projecte. L'administrador de versions (també conegut com a "RM" o Release Managers) cobreixen d'aquesta necessitat. Han de tenir un coneixement general de cada aspecte del procés de desenvolupament de programari, de diversos sistemes operatius aplicables i aplicacions o plataformes, així com diverses funcions de negoci i perspectives.

## Gestor de versions o release manager (RM)

Un administrador de versions fa les següents funcions dins un projecte:
* Facilitador: serveix d'enllaç entre diversos unitats de negoci per garantir el lliurament puntual i sense problemes dels productes de programari o actualitzacions.
* Gatekeeper: «té les claus» pels sistemes de productius i/o de les aplicacions i pren la responsabilitat de les seves implementacions.
* Arquitecte: ajuda a identificar, crear i/o implementar processos o productes per gestionar eficientment l'alliberament del codi.
* Enginyer de suport al servidor d'aplicacions: ajuda a solucionar els problemes amb una aplicació (encara que no necessàriament a nivell de codi).
* Coordinador: coordina fonts disperses, projectes, equips i components.
Alguns dels reptes que enfronta un administrador de versions del programari inclouen la gestió de:
* defectes en el programari
* problemes i/o imprevistos
* Riscos i/o amenaces
* Sol·licituds de canvi de programari
* Les noves peticions de desenvolupament (característiques o funcionalitats addicionals)
* Implementació i empaquetat
* Les noves tasques de desenvolupament

## Impacte dels desenvolupaments àgils en la gestió de versions

Les metodologies de desenvolupament àgils han portat a les organitzacions que les han adoptades a un nombres radicalment més alt d'alliberament. Entregar més desenvolupaments ha augmentat la pressió sobre els equips d'administració de versions i els seus companys d'IT per realitzar el seguiment i execució d'aplicacions i processos cada cop més complexes. Els equips d'operacions han utilitzat metodologies -com ara Technology Infrastructure Library ITIL v3 Book: Service Transition (el qual conté una secció sobre gestió de versions) per millorar les seves capacitats d'administració de versions, ja que es relacionen amb les aplicacions internes de negoci i serveis IT. Les Àgils també ha impulsat els equips de desenvolupament i operacions a col·laborar més estretament durant l'alliberament a producció dels esdeveniments -aquesta tendència es coneix com a DevOps (Development and Operations).

## Vegeu també

* Gestió del canvi

## Referències

* ↑ Roebuck, K. (2011). Release Management, Emereo Pty Limited.

## Bibliografia

* Beck, B., Fowler, M. (2000). Planning Extreme programming, Addison Wesley.
* Erenkrantz, J. R.(2003) Release Management Within Open Source Projects. In: Proceedings of the 3rd Open Source Software DevelopmentWorkshop. Portland, Oregon, USA, May 2003, S. 51–55.
* Hoek, A. van der, Hall, R. S., Heimbigner D., Wolf, A. L. (1997) Software release management, Proceedings of the 6th European conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering, p.159–175, September 22–25, Zurich, Switzerland.
* Hoek, A. van der, Wolf, A. L. (2003) Software release management for component-based software. Software—Practice & Experience. Vol. 33, Issue 1, pp. 77–98. John Wiley & Sons, Inc. New York, NY, USA.
* Humble, J., Farley, D. (2010). Continuous Delivery, Addison Wesley.
* Krishnan M. S., (1994). Software release management: a business perspective, Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research, p.36, October 31–November 3, 1994, Toronto, Ontario, Canada