24/3/2011 11:15 El Bruno

[EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

image

Buenas,

anoche estuvimos con los amigotes de MadridDotNet en las oficinas de AulaVulcan hablando de nuestras experiencias con las herramientas para la gestión de código fuente. Si bien el ambiente era bastante heterogéneo (todos con tecnologías Microsoft), confirmé que una vez más en este aspecto no hay soluciones mágicas que apliquen a todos los escenarios.

Hablamos de bastantes cosas, desde herramientas hasta Moles, pero para resumir dejo los siguientes puntos:

Herramientas de control de código fuente

En este punto hubo 2 herramientas que se utilizaban: Visual Source Safe y Team Foundation Server 2010.

Si bien es una herramienta que da muchos problemas, no tiene soporte y es bastante pobre todavía hay muchos VSS en el mundo. Yo comenté mis nefastas experiencias con SubVersion y la verdad me hubiese gustado escuchar a alguien que utilice GIT o Mercurial de manera más frencuente para tener una opinión válida del mundo de los DVCS.

Estrategias de Branching

Parece imposible pero todavía en el 2011 y todavía existen equipos que no tienen definida una estrategia de Branching. Si nunca has visto este tema y no sabes de que va, pues la Visual Studio TFS Branching Guide 2010 de Codeplex, seguro que te abre los ojos. Si en cambio ya sabes de que va el tema, como era el caso de @javierholguera pues aquí la cosa se pone más interesante.

Javi y su compañero nos comentaron como era su estructura actual de código fuente y comentaron un caso interesante > “No hacen un full branch para las ramas donde trabajan”. A primera vista esto puede parecer un poco ilógico, pero despues de ver un poco el modelo de negocio con el que se manejan, pues la cosa tiene bastante sentido, aunque claro también nos comentaron que cuando hacen los MERGEs tienen cuidado especial.

Miedo al MERGE (más que a la crisis !!!)

Esto lleva otro tema > mucha gente le tiene miedo a los MERGE. Personalmente yo creo que la acción de merge no es mala, es más, prefiero enfrentarme a los merge lo antes posible porque eso significa que estoy integrando trabajo en early stages. Cuanto más frecuentes sean los merges menos problemáticos serán los mismos. Aunque claro, eso es solo mi opinión y no es lo mismo hacer Merge con la herramienta que trae por defecto Visual Studio 2010 que con WinMerge.

¿Debemos mantener los históricos?

Sobre la marcha y relacionado con el tema anterior también surgió el tema de si era necesario mantener o no los históricos en el Source Control. A mi el instinto me dice que no destruya nunca nada, pero claro “cada bit se paga en €uros” y cuando trabajas con soluciones grandes, o tienes muchas ramas, pues esto se paga en espacio en disco, backup, etc.

El tema también estaba relacionado con la forma de trabajo de los equipos > “siempre hacemos un Get Latest de todo el Source Control en local y claro, eso es mucho”; aquí Luis (@lfraile) sugirió la posibilidad de configurar los Workspaces utilizando Cloack en los mismos para no tener que descargar todo (sobre esto escribí hace más de 2 años aquí) y quedó como una solución. Aunque yo no descarto educar un poco al equipo de trabajo y solo descargar lo que necesito para trabajar, esta es una de las ideas principales en las que se basan los Workspaces en Team Foundation Server.

CheckOut exclusivo > good or evil

Pues en el medio de checkin/checkout, workspaces, source control y demás, no podía dejar de aparecer el clásico y popular > “CheckOut exclusivo”. Aquí @javierholguera, Gisela, Jorge y otros estaban a favor de habilitar el checkout exclusivo para evitar problemas de MERGE, especialmente en archivos de proyectos donde el auto merge hace verdaderas obras de arte en Visual Studio.

Yo defendí mi posición “anti checkout exclusivo”, pero como no había cervezas de por medio apostadas, pues decidí no darle más vueltas, aunque veo que si bien es un cambio muy agradable incorporado en TFS2005, hay personas que prefieren trabajar con modo “lock”.

Organización de la estructura del Source Control

La última para no hacer de un post un libro, comentaré sobre otro tema que está atado a todo lo demás > “Cómo organizo mis soluciones?” aqui Javier comentó escenarios complejos de organización teniendo en cuenta proyectos de bases de datos, fachadas de servicios, etc. Un escenario interesante que se planteó fué el de como llevar adelante el desarrollo de productos que utilicen varias bases de datos SQL Server y cada una de ellas gestionada con proyectos dbproj. El problema surgía cuando nuevos productos compartían parte de un schema en una DB existente y se quería lograr tener integración contínua en las builds utilizando los proyectos de db para 2 productos diferentes. Básicamente se estaba mezclando por un lado funcionalidad de negocio en una misma base de datos, pero si se separaba quedaba un tanto complicado el proceso de CI. La solución: pues no hay ninguna de libro, aqui toca adoptar un modelo y ver si el mismo funciona Open-mouthed smile

 

Links, herramientas y otras cosillas para revisar

Finalmente dejo un pequeño listado de cosillas para ver que surgieron durante el evento:

 

Conclusión

Finalmente yo creo que lo mejor es lo siguiente:

  1. Formación
    1. Conocer las capacidades de las herramientas
    2. Conocer la problemática del negocio
  2. Tomar una decisión para comenzar a trabajar
  3. Cada 6 semanas/meses ajustar la forma de trabajo
  4. Go To 2

Update: me he olvidado de hablar un poco de la charla de café con las magdalenas y los cafecitos que nos tomamos después !!! Lo siento Open-mouthed smile. Obviamente esto fué lo mejor

 

Saludos @ Here

El Bruno

   

Archivado en: ,,,
Comparte este post:

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Thursday, March 24, 2011 11:47 AM by David Rodríguez

Aiinsss! Por lo que has descrito, ¡Qué buena pinta tenía el evento! a todos no se puede ir y menos desde tan lejos :(

Pues no conocía lo del WinMerge, le voy a echar un vistazo (sorry me perdí ese post).

P.D. si quieres un aliado "anti checkout exclusivo" aquí me tienes :)

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Thursday, March 24, 2011 11:57 AM by David Rodríguez

Por cierto, se me olvidó poner lo más importante sobre integración con TFS trabajando con los esquemas de bases de datos.

Ahora mismo estoy evaluando la herramienta de RedGate Source Control 2.0 (www.red-gate.com/.../sql-source-control). Se me instaló cuando descargué el paquete completo de herramientas para trabajar con SQL Azure.

La integración con MSSMS por lo que he visto funciona bastante bien, y como opciones de integración se puede integrar con TFS y Subversion (esto último no lo he probado).

Cuando tenga un poquito más de experiencia escribo algún post con los comentarios, pero parece una solución muy interesante.

# Check Out exclusivo... te vi a daaar...

Thursday, March 24, 2011 11:58 AM by Braulio

Bruno,

 Cada vez que te dejo una máquina tienes más peligro :-).

 Habilitaste el checkout compartido en el proyecto del Master, ayer 12 personas trabajando en paralelo y el resultado fue el "super pollo"... hasta que alguien me dijo, me acuerdo que el Bruno dijo "Che el maricón del Brauliono trabaja con check outs compartidos voy a cambiarselo"... :D

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Thursday, March 24, 2011 12:01 PM by David Rodríguez

Perdón por escribir de nuevo :)

Justo me acaba de entrar un correo de RedGate con información sobre la herramienta, esto parece El Gran Hermano. Os dejo parte de la info porque es interesante:

The SQL Sourced Control 2.1 early access release

This version supports new source control systems, including Git, Mercurial, CVS, and Perforce

You can sign up for the early access program here: www.surveymk.com/.../SqlSourceControl_EapSignup

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Thursday, March 24, 2011 12:21 PM by Luis Ruiz Pavón

Un evento bastante productivo e interesante, me fui con muchas ideas y a parte de aprender cosas nuevas sobre TFS.

Gracias también a Javier por compartir con todos nosotros su caso concreto en cuanto a temas de branch, organizaciónd e soluciones y demás, siempre es bueno saber como lo hacen los demas y comparar y tomar ideas de como mejorar tu trabajo diario.

A por el siguiente evento!!!

Un saludo

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Thursday, March 24, 2011 1:20 PM by Rodrigo Corral

No me puedo creer que alguien piense que los Checkout exclusivos son buenos... :(

<ironic>

Quizás sea gente que tiene proyectos más complejos que Office, el Kernel de Linux etc... y por eso son buenos para ellos...

</ironic>

Si necesitas bloqueos exclusivos es porque:

1) No tienes una buena organización de tus fuentes.

2) Tu diseño OOP es mediocre.

3) No usas la politica de ramas adecuada.

4) Tus desarrolladores no son capaces de entender el código de otros y tiene problemas para hacer merges.

Resumiendo necesitar bloqueos es un claro 'smell' de que algo huele mal en tu proyecto.

¡Muerte a los bloqueos exclusivos!

Una pena no poder estar en el evento... muy interesante sin duda.

Me pemito un pequeño aporte 'offline' ya que no pude estar presente:

geeks.ms/.../exprimiendo-scrum-scrum-y-la-gesti-243-n-de-la-configuraci-243-n-i.aspx

Un saludo.

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Thursday, March 24, 2011 3:31 PM by El Bruno

@David, gracias por el dato, le voy a echar el ojo al producto, tiene muy buena pinta :D

@Braulio, JUAAARRRR !!!!

@Luis, gracias a ti, que los desarrollos de Sharepoint son muy masivos ahora :D

@Rodrigo, jejeje tal cual! el "checkout exclusivo" es mal indicador > te dejo que lo hables con Jorge y Gisela jejeje

Salu2 y gracias

# re: [EVENTO] Conclusiones sobre la mesa redonda sobre gestion del código fuente en MadridDOtNet

Friday, April 08, 2011 11:49 AM by Adolfo

Hola Bruno & Co.

El martes 5/04/2011 en un evento de Second Nug, Haddi Hariri hizo una "introducción al git" y el es un convencido del GIT, yo no lo he probado mucho, pero después de su charla, le voy a dar una oportunidad.

¿alguna experiencia catastrófica?