Git TFS

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Introducción

Los sistemas de control de versiones son programas que tienen como objetivo
controlar los cambios en el desarrollo de cualquier tipo de software, permitiendo
conocer el estado actual de un proyecto, los cambios que se le han realizado a
cualquiera de sus piezas, las personas que intervinieron en ellos, etc.

Veremos que es Microsoft Team Fundation y Git, las ventajas y desventajas y


características y como se aplican estas herramientas en el área laboral.
Microsoft Team Foundation Server

Es una plataforma de colaboración para el desarrollo y administración de aplicaciones.


Team Foundation Service es el servicio de ALM (Administración del ciclo de vida de las
aplicaciones de software, por sus siglas en inglés) en nube que provee Microsoft.  Es un
servicio que ofrece un entorno 100% elástico y sin limitaciones de crecimiento, a un costo
sumamente accesible, incluso gratuito como beneficio de una suscripción de MSDN.

Todos los desarrolladores están conscientes de la relevancia de trabajar con buenas


herramientas y bajo una metodología reconocida y probada a nivel mundial. Estas dos
características son ofrecidas por TFS y habilitadas mediante la versión de Visual Studio con
la que el desarrollador, Supervisor, Diseñador o Encargado de Pruebas y Calidad (QA)
interactúe con la herramienta. Ahora bien, si su rol es de jefe de equipo, seguramente su
preocupación no solo se enfoque en contar con una buena herramienta de desarrollo, sino una
herramienta de gestión del ciclo de vida de las aplicaciones de software, seguimiento en el
desarrollo de proyectos, niveles de ejecución y desempeño de su equipo de desarrollo, entre
otros.

TFS es una solución robusta y completa, ya que todos los elementos que la conforman están
integrados de forma natural. Como con cualquier instrumento hay que dedicar un tiempo
inicial de configuración, pero luego el tiempo dedicado al mantenimiento es mínimo
comparado con plataformas heterogéneas.  TFS es una de las plataformas de más rápida
evolución en el mundo Microsoft, ofreciendo nuevas versiones con actualizaciones cada año
o cada 2 años a lo sumo.

TFS ofrece beneficios importantes para organizaciones y equipos de desarrollo de software


enfocados en la excelencia y productividad, pudiendo llevarlos incluso hasta los más altos
niveles de DevOps. Entre sus características más importantes, se encuentran:

 Control de versiones de código fuente, en formato centralizado o distribuido con GIT


 Servidor de integración continua (build server)
 Registro de incidencias (Bug Tracker)
 Gestión de proyectos AGILE (SCRUM o CMMI)
 Varios tableros Kanban para gestionar User Stories o PBIs, tareas, etc.
 Integración nativa con Microsoft Office
 Gestión de pruebas (QA) y casos de pruebas automatizados
 Integración con entornos no Microsoft como Eclipse, Cobol, etc.

VENTAJAS:

1. Team Foundation Server proporciona un conjunto de herramientas de colaboración


que funcionan con su IDE o editor existente, para que su equipo pueda trabajar
eficazmente en proyectos de software de todas las formas y tamaños.
2. Almacena y colabora en código con repositorios privados ilimitados. Use Git para el
control de versiones distribuido para maximizar la colaboración o use el control de
versiones de Team Foundation (TFVC) para el control de versiones centralizado.
3. Soporte a la metodología AGILE.
4. Soporte para múltiples idiomas e IDE
5. Permite la integración de complementos de terceros.

Desventajas

No podrás crear y fusionar ramificaciones del proyecto principal de forma tan rápida como
con, por ejemplo Git. Por norma general un cambio entre las diferentes ramas dentro de TFS
suele tardar de 15 a 30 minutos, mientras que con Git podremos contar este tiempo de transición
en segundos (varios minutos si nuestro proyecto es de gran envergadura), cambiando por
completo el flujo de trabajo de desarrollo. Además no podrás dotar a tu sistema de control de
versiones de un nivel de aislamiento similar al de Git, al tratarse de un sistema de control de
versiones centralizado.
No tendrás a tu disposición herramientas como Pull request (PR), una función compartida por
todas las plataformas Git fundamental en equipos de desarrollo al simplificar el desarrollo de
diferentes componentes de un proyecto del que no somos propietarios , puesto que nos
permitirá crear una “copia” del proyecto o ramificación sobre la que nosotros podremos trabajar
y solicitar al equipo o persona autor o dueño de dicho código si quiere añadir nuestras
modificaciones. Esta “solicitud de extracción” ayudará enormemente si contamos o sabemos de
alguna comunidad de desarrollo que suela implementar o crear mods, mejoras, revisiones, etc…
a raíz de un proyecto base.

En efecto, contaréis con TFS changeset (Conjunto de Cambios TFS) que os permitirá revisar las
anotaciones de los testers sobre el código del proyecto o rama que estén trabajando para corregir
aquellas anotaciones o comentarios. No obstante, en Git encontramos funcionalidades avanzadas
en este campo, pudiendo limpiar el historial de cambios y anotaciones del proyecto (o de una
parte de este) antes de combinarlo con la línea principal de desarrollo. Al pasar esta nueva
revisión de la app a los testers, éstos no conocerán comentarios anteriores por lo que
comprobaremos de nuevo desde cero si existe algún fallo en lugar de que se centren
únicamente en los referentes a los comentarios previos.

Disfrutaréis de multitud de conflictos a la hora de combinar ramas entre sí. Git a diferencia de


TFS y su control de versiones centralizado, sabe exactamente en qué punto inicia una
rama, dónde dos ramas se diversificaron una de la otra, etc… Además, TFS no atenderá al
tipo de archivo mientras que Git en función del tipo de archivo realizará la fusión de código y
cambios de una forma u otra.

Uso de la herramienta en el trabajo

La finalidad principal de Team Foundation es permitir la colaboración en un equipo para


facilitar la creación de un producto o la realización de un proyecto. Existen muchos tipos de
proyectos. Los proyectos de software implican la generación y la publicación de un producto
de software, que normalmente es un nuevo producto, una actualización de un producto ya
existente, o la publicación de una versión secundaria.

Team Foundation permite la colaboración a través de la comunicación mejorada, admitiendo


funciones multidisciplinarias, realizando el seguimiento del estado del trabajo, representando
el proceso del equipo y la integración de las herramientas.

Historial del elemento de trabajo

Todos los elementos de trabajo tienen un historial en el que se registra toda la actividad. Cada
vez que cambia un elemento de trabajo, ya sea porque el estado de éste cambia a cerrado o
porque se actualiza alguna nota con nueva información, se registran todos los cambios para
que las personas autorizadas puedan consultar en cualquier momento el historial completo de
la actividad del elemento de trabajo.
¿Qué es Git?

Git es un software para generar proyectos donde varios desarrolladores pueden


trabajar al mismo tiempo.

Desarrollado en 2005 por Linus Torvalds precisamente para la creación del Kernel de Linux,
hoy se utiliza para diseñar cualquier sitio web, software o código de forma rápida e
inteligente.

Pero el recurso que hace que esta herramienta sea tan útil y práctica es el sistema de control
de alteraciones.

Eso significa que cada vez que alguien cambia el código, se genera una nueva versión para el
proyecto. Así, no hay riesgo de perder ninguna información.

En Git, tampoco hay problema con los códigos sobrescritos y la pérdida de informaciones, ya
que las versiones se guardan en el repositorio — directorio donde se almacenan todos los
archivos de tu proyecto.

¿Qué es GitHub?

GitHub es una red social de desarrolladores. La primera parte del nombre, “Git”, se debe
al uso del sistema de control de versiones y la segunda parte, “Hub”, tiene que ver con la
conexión entre los profesionales de programación de cualquier parte del mundo.

Además, GitHub es una de las plataformas de trabajo colaborativo en línea más grandes del
mundo.
Git es una herramienta que realiza una función del control de versiones de código de
forma distribuida, de la que destacamos varias características:

 Es muy potente
 Fue diseñada por Linus Torvalds
 No depende de un repositorio central
 Es software libre
 Con ella podemos mantener un historial completo de versiones
 Podemos movernos, como si tuviéramos un puntero en el tiempo, por todas las
revisiones de código y desplazarnos una manera muy ágil.
 Es muy rápida
 Tiene un sistema de trabajo con ramas que lo hace especialmente potente
 En cuanto a la funcionalidad de las ramas, las mismas están destinadas a provocar
proyectos divergentes de un proyecto principal, para hacer experimentos o para probar
nuevas funcionalidades.
 Las ramas pueden tener una línea de progreso diferente de la rama principal donde
está el core de nuestro desarrollo. En algún momento podemos llegar a probar algunas de
esas mejoras o cambios en el código y hacer una fusión a nuestro proyecto principal, ya
que todo esto lo maneja Git de una forma muy eficiente

Sistemas de Control de Versiones Distribuidos

Los Sistemas de Control de Versiones Centralizados (VCS), como por ejemplo Subversion,
que es una herramienta en la que se ha confiado para albergar el histórico de revisión de
versiones, es un punto centralizado, lo cual puede llegar a suponer una merma de trabajo si
perdemos la conectividad de la red.

Los Sistemas de Control de Versiones Distribuidos (DVCS) salvan este problema. Algunos


ejemplos de sistemas distribuidos, aparte de Git, son Mercurial, Bazaar o Darcs. En este tipo
de herramientas, los clientes replican completamente el repositorio.

Git es el gestor de código fuente que domina el panorama desde hace años y que la práctica
mayoría de desarrolladores y empresas utilizan hoy en día.

Git ofrece varias ventajas frente a otros sistemas tradicionales:

 Sistema distribuido, sin un punto central de fallo, que permite el trabajo incluso sin
conexión.
 Superrápido y ligero, optimizado para hacer operaciones de control muy rápidas.
 Crear ramas y mezclarlas es rápido y poco propenso a problemas, al contrario que
en otros sistemas tradicionales.
 La integridad de la información está asegurada gracias a su modelo de
almacenamiento, que permite predecir este tipo de problemas. En sistemas
tradicionales este era un problema grave.
 Permite flujos de trabajo muy flexibles.
 El concepto de área de preparación o staging permite versionar los cambios como
nos convenga, no todo o nada.
 ¡Es gratis! y de código abierto.

Pero, como todo, también tiene sus problemas:

 Es más complejo que los sistemas centralizados tradicionales porque entran en juego


más repositorios, más operaciones y más posibilidades para trabajar en equipo, que
hay que decidir.
 La curva de aprendizaje es empinada. Lo básico lo aprendes enseguida, pero la
realidad te demuestra que no es suficiente "tocar de oído" con él. La documentación
es tan compleja que muchas veces no resulta de ayuda.
 Los comandos y algunos conceptos que usa pueden llegar a ser confusos, al igual
que algunos mensajes que muestra.
 Por defecto, se lleva mal con archivos binarios muy grandes, como vídeos o
documentos gráficos muy pesados. Por suerte existen soluciones para ello (Git LFS).
 itHub es una excelente herramienta para el trabajo en equipo. Cuando se trata de
software o de un sitio web que necesita crearse juntos, por ejemplo, la plataforma en
línea sin duda facilita la gestión de proyectos.
 Y esta herramienta también está disponible para empresas: es conocida como GitHub
Enterprise. Allí, encontrarás una manera inteligente de administrar el trabajo de un
equipo.
 Además, la seguridad se convierte muy en serio, lo cual es fundamental cuando se
trata de proyectos digitales.
 Sin embargo, lo que realmente llama la atención es el hecho de que el equipo puede
trabajar al mismo tiempo, desde diferentes lugares, no solo en la misma ciudad, sino
también en el mundo.
 Hoy en día, para cualquier negocio, la automatización de los flujos de trabajo es
esencial y GitHub lo hace posible. Los recursos encontrados en la plataforma ayudan
en el desarrollo de proyectos, facilitando el crecimiento de la empresa como un
todo.
Conclusión

Estas herramientas a nivel empresarial, han reforzado mucho la producción y servicios de las
aplicaciones ya que se mantienen los equipos comunicados.

En git, pdemos hacer todas las operaciones básicas a nivel local. Crear o clonar repositorios y
visualizar el historial de cambios en un repositorio.

Para Microsoft Team Fundation, es una solución robusta y completa, ya que todos los
elementos que la conforman están integrados de forma natural. Como con cualquier
instrumento hay que dedicar un tiempo inicial de configuración, pero luego el tiempo
dedicado al mantenimiento es mínimo comparado con plataformas heterogéneas.

También podría gustarte