# Herramientas para el Proceso de Gestión de Configuración del Software

El presente artículo sugiere una propuesta de algunas herramientas utilizadas en el proceso de gestión de configuración del software, para las siguientes actividades: Control de versiones, Gestión de incidencias, Gestión de documentación, Sistema de gestión de proyectos, de las cuales se indica su instalación, su uso y que ventajas y desventajas tiene cada herramienta.

## Introducción

La gestión de configuración del software es un conjunto de actividades diseñadas para identificar y definir los elementos en el sistema que probablemente cambien, controlando el cambio de estos elementos a lo largo de su ciclo de vida, siendo uno de los procesos clave para toda organización dedicada a la ingeniería del software.
En la actualidad existe una gran variedad de herramientas que apoyan a este proceso cada una de ella con características propias y que se adaptan a diferentes metodologías de desarrollo.

## Control de versiones

Realizar a mano el control y seguimiento de las versiones del código fuente trae muchos conflictos como ser:
* Tener muchas copias del mismo proyecto y luego olvidar cual es la copia que funciona.
* Si el dispositivo donde está guardado el proyecto deja de funcionar todo el esfuerzo habrá sido en vano.
* Si estás trabajando con un equipo donde todos modifican el código, será un dolor de cabeza integrar el código de cada uno al proyecto principal.
Por ello el desarrollo de software es una tarea que requiere de buenas prácticas y herramientas adecuadas que permitan a un equipo o persona realizar la construcción del software de la mejor manera teniendo el control de las versiones del código fuente.
Git y BitBucket, dos herramientas que combinadas hacen que el versionado del código fuente sea una tarea más organizada y fácil de controlar y hace que la integración al proyecto principal sea una tarea simple y en un corto tiempo.

### Ventajas

* Simplicidad y el aprovechamiento de los permisos preexistentes de acceso.
* Preparar un repositorio es muy sencillo, simplemente pones el repositorio básico en algún lugar donde todos tengan acceso a él y ajustas los permisos de lectura/escritura según proceda, tal y como lo harías para preparar cualquier otra carpeta compartida.
* Puedes disponer del código fuente en cualquier lugar, y también recuperar rápidamente el contenido del repositorio de trabajo de alguna otra persona.
* Integrar el proyecto cuando se trabaja en equipo ahora es más sencillo y reduce el tiempo de integración.

### Desventajas

* Se necesita de internet que no sea muy lento para poder subir los cambios al repositorio de bitbucket.
Ejemplo de esto, es el siguiente vínculo en el cual se presenta un video tutorial muy completo sobre la instalación y es uso de estas herramientas:
* https://www.dropbox.com/sh/45df92tcf9y8ixz/AAAJ-uORT-ahOig-KdbSuLS4a?dl=0

## Gestión de incidencias

Los cambios y errores son inevitables, por más que de decidamos adoptar todas las previsiones necesarias, monitoreos exhaustivos o establezcamos los controles más rígidos y estrictos posibles. Lo único que nos queda es estar preparados y registrar todas las incidencias para tener el control sobre ellos.
Para esta actividad la herramienta elegida es MANTIS BUG TRACKER (MantisBT) es una herramienta de gestión de incidencias de código abierto que proporciona un delicado balance de sencillez y poder.

### Ventajas

* Es multiplataforma, basada en PHP y con soporte para bases de datos MySQL, PostgreSQL y MS SQL.
* Facilidad de uso e intuitiva.
* Licencia gratuita, ya que es GPL v2 esta define a la aplicación como software libre, con libertad de uso, modificación y distribución.
* Soporte disponible
* Documentación de instalación en diferentes formatos.
* Variedad de plugins disponibles en la web.
* sisi

### Desventajas

* Es una herramienta demasiada sencilla para ciertas empresas, sobre todo para grandes empresas y multinacionales.
Ejemplo de esto, son los siguientes vínculos en los cuales se presentan video tutoríales muy completos sobre la instalación y el uso de esta herramienta:
* https://www.youtube.com/watch?v=Hla3VFy2lUk
* http://www.ejie.eus/y79-03/eu/contenidos/informacion/herramientas_ejie/eu_0213/adjuntos

## Gestión de documentación

La documentación de un proyecto de software es muy importante mantenerla actualizada y que todos los miembros del equipo trabajen en ella desde su última versión.
Este tipo de herramientas nos ayuda a organizar la documentación generada, de forma que sea accesible para todos los miembros del equipo. Para esta actividad la herramienta elegida es MediaWiki.

### Ventajas

* Cualquiera puede editar.
* Fácil de usar y aprender.
* No tiene una estructura determinada, por lo tanto es una herramienta flexible que puede utilizarse para una amplia gama de aplicaciones.
* Hace un seguimiento de cada nueva edición y es un proceso simple el de volver a una versión anterior de un documento.
* Personas situadas en diferentes partes del mundo pueden trabajar en el mismo documento.

### Desventajas

Las ventajas en un contexto, puede ser desventaja para otro.
* Cualquier persona puede editar esto puede ser demasiado abierto para algunas aplicaciones, donde se tiene que la documentación sea confidencial. Sin embargo se puede regular el acceso a los usuarios.
* Requiere una conexión a internet para colaborar.
Ejemplo de esto, es el siguiente vínculo en el cual se presenta un video tutorial muy completo sobre la instalación y el uso de esta herramienta.
* http://www.youtube.com/watch?v=8X4YthUGQQA
La edición y como dar formato al texto se puede encontrar en el siguiente vinculo:
* http://www.mediawiki.org

## Gestión de proyectos

Para esta actividad la herramienta elegida es Targetprocess ya que es una herramienta innovadora para la gestión ágil de proyectos con Scrum, Kanbam, o cualquier otro proceso personalizado. Soporta Extreme Programming.

### Ventajas

* Soporta varios procesos de desarrollo.
* Diseñada para metodologías agiles.
* Seguimiento en tiempo real de la evolución de los proyectos.
* Seguimiento de errores.
* Gestión de permisos por rol.
* Plataforma móvil con apoyo en iOS y Android.
* Integración con varias herramientas como Git, Subversion, Bugzilla, Visual Studio,
* Chat en vivo
rer

### Desventajas

* No está traducida al español.
Ejemplo de esto, es el siguiente vínculo en el cual se presenta un video tutoríal muy completo sobre la instalación y es uso de esta herramienta.
* https://www.youtube.com/user/TargetProcess

## Recomendación

A lo largo de este artículo hemos visto las ventajas y desventajas de las herramientas sugeridas para el proceso de gestión de la configuración del software.
Con la practica realizada se demuestra el poder de estas herramientas sugeridas en este articulo, las cuales nos resuelven diversos problemas que se presentan en el proceso de gestion de configuración del software, se recomienda realizar prácticas con este conjunto de herramientas.

## Bibliografía

* Agile Project Management Sofware | Scrum & Kanban Agile Development Tool. (s.f.). Recuperado el 04 de 12 de 2014, de http://www.targetprocess.com/
* EJIE S.A.,Eusko Jaurlaritzaren. (s.f.). Recuperado el 4 de 12 de 2014, de http://www.ejie.eus/y79-03/eu/contenidos/informacion/herramientas_ejie/eu_0213/adjuntos
* Git. (s.f.). Recuperado el 6 de 12 de 2014, de https://www.youtube.com/results?search_query=git+con+bitbaker