miércoles, mayo 17, 2006

Gestores de proyectos

¿Qué software de gestión de proyectos utiliza usted... si es que utiliza alguno? Me han pedido consejo sobre este asunto, pero lo cierto es que ni siquiera tengo claro cuál es el nombre genérico de este tipo de utilidades: "control de versiones", que es el otro nombre que recuerdo, me parece muy limitado. Con esto no estoy desaconsejando el uso de estos gestores. Simplemente, que nunca he tenido necesidad de usarlos: he trabajado en aplicaciones muy grandes, pero con equipos muy reducidos. Mi teoría, además, es que nunca dos personas tendrían que tocar el mismo fichero de código: cuando esto se produce, hay probablemente un fallo en el diseño de los módulos del proyecto. Además, detesto de todo corazón el modelo de cooperación que llamo "piloto/copiloto": un tío se sienta a teclear mientras el otro mira y comenta las "jugadas" como si fuese un partido de futbol. Y por desgracia, en esto es en lo que terminan muchos de los casos de desarrollo en equipo. Pero repito: es una opinión muy personal y subjetiva, y si os fijáis, ni siquiera es algo que haya puesto nunca en blanco y negro en un libro.

¿Con qué trabajáis? ¿Qué recomendáis? Para esta persona, es importante que el gestor sea compatible con Delphi y Visual Studio, de ser posible, aunque me parece que su uso principal, de momento, será con Delphi. Por experiencia, sé que muchas empresas usan el viejo Visual Source Safe con Delphi, pero no sé qué tal estará el problema de compatibilidad a estas alturas.

Si tenéis bitácora propia y queréis contestar con un artículo, enviadme la URL y os enlazo desde este mismo tema. Y por supuesto, también podéis hacerlo en los comentarios. En todo caso, muchas gracias, por adelantado...

27 Comments:

Anonymous Sentoki said...

Hola,

tanto en Delphi como en Visual Studio trabajé con el Visual Source Safe. No tuve problemas de compatibilidad porque el VSS lo que hace es copias de los ficheros. Los problemas, cuando los hubo, fue debido a la base de datos interna de VSS, que es algo en formato de texto y guarda todas las versiones.

Compañeros han utilizado el Team Source que venía con Delphi, y me comentaron que era parecido con algunas cosas que le faltaban con respecto al VSS. También conozco a gente que utilizó el Tortoise CVS. Este es un sistema Windows del estandard CVS que utilizan por ejemplo para el control de versiones en GNU. Por lo visto este sistema no se basa en bloqueos, sino en que cada desarrollador abre una rama de modificación de los fuentes y utiliza programas de comparación y fusión de texto para dejar la versión con todos los cambios.

Mi experiencia con el VSS es buena. Lo he utilizado tanto en proyectos grandes con muchos desarrolladores como en pequeños y de uso personal. En los grandes era porque se hacía mantenimiento de ese proyecto y así se sabía quién había modificado qué y porqué. En los pequeños porque me sirve de copia de seguridad y puedo ir haciendo un histórico de los cambios que realizo sobre los fuentes. La otra ventaja es tener un repositorio de código en un servidor pero no tener que trabajar sobre los fuentes en un servidor y poder tener la copia local, con lo que todo va más rápido.

Mi recomendación para proyectos Delphi es que se utilicen los .dfm en modo texto desde un principio, para así poder utilizar las herramientas de comparación de versiones. Si se cogen los .dfm en binario lo único que te dice es que "los archivos binarios son diferentes", incluso cuando ya has convertido el .dfm a texto.

La otra recomendación es acordar primero con todos los desarrolladores unas normas básicas para "Desproteger" y "Proteger" los archivos: No proteger nada que no compile, avisar cuando se añaden nuevas unidades utilizadas por otras unidades, etc. Al final la gente tiende a hacer lo que quiere, pero cuando te pisan las modificaciones tiendes a cumplir las normas.

Espero haber sido de ayuda. Saludos.

Sentoki

miércoles, mayo 17, 2006 12:04:00 p. m.  
Blogger KChis10 said...

Yo trabajo con VSS y esto me permite seguir en casa conectándome a través de HTTP y no tener que llevarme los fuentes siempre de viaje, sino que solo con conectarme con el portátil a internet ya puedo seguir trabajando y que cualquier modificación realizada, probada y terminada la tengan inmediamente a disposición el resto de programadores.

miércoles, mayo 17, 2006 12:22:00 p. m.  
Anonymous santi said...

He utilizado VSS en un proyecto en Delphi de 4 personas trabajando en la misma oficina.

También he usado TortoiseCVS para un proyecto en .NET de dos personas separadas físicamente colgado en Sourceforge.

Ambas soluciones me han ido bastate bien aunque si los miembros del equipo no se encuentran en la misma ubicación descartaría un sistema de bloqueo/desbloqueo.

CVS es muy cómodo. Si alguien ha subido los cambios de un archivo antes que tu solo tienes que revisar en que consisten y poner en comunión los tuyos con los de la otra persona.

Además, diria que no solo sirve para controlar los cambios sino para disponer de una copia local en todo momento del código fuente actualizado.

miércoles, mayo 17, 2006 3:08:00 p. m.  
Anonymous Anónimo said...

Para Delphi está muy bien el FreeVCS, que se integra en el IDE de Delphi. No es tan potente como otros, pero es gratis y lo importante lo hace.

miércoles, mayo 17, 2006 4:04:00 p. m.  
Blogger Ian Marteens said...

¡Muchas gracias a los tres! Más o menos lo que me imaginaba, pero una cosa es imaginárselo y otra haber trabajado de verdad. La verdad es que es un tema que he descuidado bastante... pero es que por el tipo de proyectos en que he estado metido a lo largo de estos años, no me ha hecho falta.

Dos cosas:

1- En general, repito lo que decía en el mensaje principal: quienes tengáis bitácora o página, dadme el enlace y lo pongo donde mejor quede: bitácoras en la bitácora y páginas en la sección de enlaces de mi página. Y una presentación en la bitácora, que no ocurre lo mismo que con la página, que con el tiempo se sustituye y pierde contenido(otra ventaja de este formato: aunque desaparezca de la página de presentación del blog, sigue estando al alcance de los buscadores).

2- Le he estado dando vueltas a esto otro: ¿merecería la pena si creásemos un grupo de usuarios de C#, o de Visual? Sobre Delphi no: ya hay buenos grupos, y no creo que haga falta uno más. Más grupo significaría más dispersión. Pero quizás si merezca la pena hacer algo de este tipo para quienes empezamos con .NET a través de Visual Studio.

Motivos para un grupo: por ejemplo, veo muy interesante la posibilidad de negociar compras en grupo de software, para lograr mejores precios. Claro, esta es una idea, y habría que tantear la posibilidad con los mayoristas, o quizás incluso con la propia Microsoft Ibérica. La unión hace la fuerza, ¿no? Ya sé que existen unos cuantos grupos de usuarios en España, pero son casi todos de gente que lleva tiempo trabajando con Microsoft... y quienes venimos de Delphi somos "advenedizos". Otra ventaja es que podría ser un grupo verdaderamente internacional: las estadísticas de acceso de mi página muestran que un poco más de la mitad de los accesos vienen de España, luego viene México, y sorpresa, el tercero es Uruguay. Pero entre México, Uruguay, Argentina, Chile y Colombia están repartidos los accesos con bastante uniformidad.

Hay otro tema que me interesa para el que un grupo de usuarios podría ser una solución: llevo tiempo pensando en cómo hacer precios especiales para estudiantes universitarios. Claro, el problema que tengo ahora es cómo validar que realmente alguien lo es. El grupo no lo resolvería automáticamente, pero se podría idear un sistema de avales: Fulano, que es profesor de la Universidad Talycual avala que Mengano es estudiante de la carrera.

Y aparte, por supuesto, estaría el acceso a foros, consultas y descuentos (al menos en mis productos), bolsa de trabajo, publicidad para las empresas que patrocinen el asunto, etc, etc. Revistas no hacen falta, porque sinceramente, la Dotnetmanía es muy buena, es una revista impresa, y hay que reconocer el valor de los editores en meterse en una aventura de este tipo. Pero ahí tenéis otro ejemplo: quizás se podría negociar un descuento por subscripciones en grupo (no lo sé).

¿Cómo lo veis? Si no lo veis claro, decidlo sin problemas. Es sólo una idea...

miércoles, mayo 17, 2006 4:24:00 p. m.  
Blogger Ian Marteens said...

:) Gracias a los cuatro, quise decir. No había leído el cuarto mensaje...

miércoles, mayo 17, 2006 4:25:00 p. m.  
Blogger SHArQ said...

Lamento no poder aportar mi opinión sobre estas herramientas, principalmente porque las desconozco totalmente (la única "sincronización" de código que alguna vez he usado se basaba en herramientas muy sencillas, y destinadas a un único usuario, como PasDiffPro).

La idea del grupo de usuarios me parece buena. Más que nada porque en este "invento" (que ya no sé si llamarlo país, estado, nación o bocata de mortadela) que aún lleva por nombre España, estamos a años luz de la organización que hay en Latinoamérica, en temas de comunidades de usuarios. Aqui tenemos 200.000 grupos de usuarios (El de Madrid, el de Oviedo, el de Huelva, el de Barcelona, el de la calle Manolo Pérez 26 5º 3a...) y cada uno tira para un lado. No hay unión. No hay coordinación. No hay COMUNIDAD.

Y todo lo anterior, sin perjuicio de que efectivamente, los grupos de usuarios de .NET que hay están formados principalmente por ex-programadores de los lenguajes Visual "clásicos", Visual Basic sobretodo, y también por algún que otro Javero que ha perdido el norte y se ha adentrado en el Lado Oscuro :) pero faltamos los que durante mucho tiempo hemos sido (y aún somos, al menos laboralmente) Borlanders.

Mi voto pues, a favor de secundar la moción. :)

miércoles, mayo 17, 2006 6:25:00 p. m.  
Anonymous Sentoki said...

Yo el tema de tener un blog pues como que me da mucha pereza, lo de opinar, si es facilito y me lo se no tengo poblema, lo de hacer un artículo serio pues como que no y lo del grupo me mola, porque con esto de Internet no hago más que apuntarme a grupos, el primero el de mi música favorita (www.spanishcity.net), luego me compré un coche y buscando opiniones sobre él me apunté a otro de pirados (www.clubpeugeot307.com), el móvil (www.t610yz600.com), me bajo el adobe premiere para editar una peli y me encuentro con más (www.videoedicion.org)...

Creo que la mayoría utiliza PHPNuke y MySQL o algo parecido, aunque creo que el de spanishcity está en ASP y una bd en Access. Creo Ian que te veo, te veo evolucionando a un portal de ese tipo... ;-D

miércoles, mayo 17, 2006 6:30:00 p. m.  
Anonymous Miguel said...

Me apunto al grupo desde ya, de los controladores de versiones, pues me pasa lo mismo, que no los he utiliado, aunque tengo un grupito desarrollando juntos, tengo claro lo que debe de hacer cada cual, y el que se hecha fuera del 'tiesto' pos lo despido :).

Saludos

jueves, mayo 18, 2006 12:00:00 a. m.  
Anonymous maxi said...

Me sumo a lo del FreeVCS que en realidad ahora se llama JediVCS. Está hecho en Delphi y pensado principalmente para Delphi, se integra bastante bien en el IDE. Además soporta varios motores de base de datos para almacenar los archivos como por ej. MySQL, SQLServer, Oracle, Firebird y algún otro que no recurdo en este momento. Este producto pertence al grupo Jedi, es decir, es open source y está en continuo desarrollo.
Obviamente no solo sirve para Delphi, de hecho lo usamos actualmente un grupo de 6 desarrolladores concurrentes y además de administrar el código fuente de los proyectos, almacenamos los archivos de documentación, ayuda, etc.
Por mi parte es una opción bastante interesante a considerar.

Creo que por más chico que sea el grupo de desarrollo hay dos herramientas casi indispensables para administrar un proyecto: una es un controlador de versiones o VCS y otra es un bugtracking.

jueves, mayo 18, 2006 12:19:00 a. m.  
Blogger Enrique Rangel said...

Saludos, he estado siguiendo el blog practicamente desde el inicio, bien, a lo que vamos, en cuanto a la pregunta del blog, creo que ahi que dividirla en dos, una cosa es la gestion del proyecto (administrativamente) y otra el control del codigo fuente,
esta es mi experiencia en ese sentido, para el control de versiones tanto de los proyectos de delphi (Devrace Athlant es la libreria que usamos para delphi http://www.devrace.com/en/athlant/) como de .NET usamos el VisualSourceSafe de Microsoft, y para llevar el seguimiento de avances, tareas, documentos y otros (la parte administrativa a la que me referia) usamos el Windows Sharepoint Services que viene como componente del Windows 2003 Server.

En cuanto a lo del grupo de Usuarios, me apunto de una vez a la lista.

Golo.

jueves, mayo 18, 2006 6:19:00 a. m.  
Blogger Enrique Rangel said...

Ampliando el comentario realizado, si el equipo de desarrollo es pequenio, te recomendaria llevar unicamente la parte del control de versiones y lo que son tareas puedes llevarla a traves de un archivo de excel, aun asi te recomendaria usar Sharepoint, que es muy ligero, no te recomiendo pensar en algo mas grande (digase Project Server por ejemplo) porque la carga administrativa se vuelve demasiado pesada (por experiencia lo digo :) ).

Saludos.

Golo.

jueves, mayo 18, 2006 6:24:00 a. m.  
Blogger kaleidoctic said...

Lo del grupo de desarrolladores .NET con pasado Borland me parece una idea fantástica :D Creo que puedo incluirme en ese saco. He loggineao para que se vea mi blog que es muy cutre y practicamente dejé de actualizarlo pero bueno.

Santi

jueves, mayo 18, 2006 4:52:00 p. m.  
Blogger mizar said...

Gracias Ian y a todos los que habéis contestado. Veo que no me he equivocado del todo al interesarme por este tema, con el cual solo llevo 2 semanas.

Primero miré CVS, ya que he visto que todos los proyectos que conozco de sourceforge lo usan. Pero como no me gusta quedarme con la primera opinión, miré en ClubDelphi, donde Neftalí comentaba algo sobre JediVCS. Elegí este último, ni por mejor ni por peor. Porque fundamentalmente usamos Delphi y se integra en su IDE. Lo he instalado y la verdad es que para la gente poco ordenada como yo es un coñazo. Pero cuando lo ves funcionar despues de 2 semanas, te das cuenta de que es el zapato de tu medida, todo lo que haces queda registrado.

Hemos probado con una aplicación de unos 10 formularios y funciona muy bien, claro está con el inconveniente de bloquear y desbloquear los módulos. Somos 2 programadores, con varios proyectos simultaneos y poder tener un seguimiento de los cambios es fundamental.

Despues de esta prueba, creo que da igual el que se elija. Pero deberiamos usar alguno.

Por otra parte, hay algo que echo de menos. Cada uno de nosotros tenemos un nivel de conocimiento mayor o menor de uno o varios lenguajes de programación. Pero a veces, esto es como saber todas las palabras del inglés y no saber formar frases. ¿Que hay de los métodos de analísis, control de versiones, normas de programación, UML, etc..? Nadie nos cuenta nada en ESPAÑOL que no sea pura teoria, algun ejemplo práctico no nos vendría mal. Creo que un blog sobre esto no sería mala idea.

En cuanto a lo del grupo me sumo a la opinión de kaleidoctic.

Saludos.

Juanjo.

jueves, mayo 18, 2006 6:02:00 p. m.  
Blogger Ian Marteens said...

Juanjo: estoy preparando un "post" sobre lo de UML, en particular... porque la respuesta es laaaaaaarga, incluso centrándome en lo de UML. La respuesta va a traer cola, pero eso es bueno: que haya debate :)

A ver si lo termino esta noche...

jueves, mayo 18, 2006 8:34:00 p. m.  
Blogger Fantasma said...

Hola Ian.

Primero, me entusiasma la idea de lo del grupo, me apunto si se puede.

Segundo, nosotros realizamos un experimento con Team Source y, precisamente lo que no nos gusto fué el trabajo con los módulos de datos bloqueados. La división del proyecto provoco en un momento la necesidad de que varios modificaramos los archivos al mismo tiempo...

Por último, tengo un remedo de blog que lo actualizo cada ciclo lunar pero lo pongo a disposición en http://lcrusan.blogspot.com

viernes, mayo 19, 2006 1:04:00 a. m.  
Anonymous Santi Prieto said...

Hola Ian y compañía.
Sobre los comentarios de las herramientas de control de versiones, yo las considero indispensables para el desarrollo, independientemente del tamaño del equipo. Hace más fácil compartir, controlar, revisar, versionar y en general, manejar todo el código fuente. Además existen muy buenos sistemas grauitos (CVS, o mejor Subversion, FreeCVS) con los que llevar el control.

Como herramienta de control de versiones, he utilizado VSS, TeamSource, TeamCoherence y actualmente StarTeam. De todos ellos me quedo con TeamCoherence. Tiene integración con todas las versiones de Delphi, y con otros entornos de desarrollo, incluido Visual Studio. Por cierto, que además incluye una utilidad para la automatización de construcciones (TCBuilder), al estilo de Ant, pero en modo gráfico. Esto de los builders ha sido un descubrimiento reciente por mi parte. Hasta hace poco no había encontrado nada para Delphi que permitiera automatizar tareas. En la empresa donde trabajo, tenemos automatizado la generación de las instalaciones de nuestro software, en un proceso que: descarga el código fuente del control de versiones, asigna número de versión, compila el código fuente, y genera el fichero de instalación, todo ello ello en tiempo mínimo. Hace poco he encontrado otra herramienta gratuita para la automatizazión; se trata de BuildIT. No tiene todas las capacidades de otros sistemas de automatización (FinalBuilder, VisualBuild, TCBuilder, ...) pero permite automatizar bastantes cosas. Yo, por ejemplo, lo uso para testear scripts de SQL Server, sin tener que ir cargándolos manualmente.

Sobre las herramientas para el controls de tareas, hace poco he encontrado una pequeña utilidad para el seguimiento de proyectos, muy sencilla y que funciona bastante bien. Se trata de TodoList. Sólo ocupa 400Kb y tiene una interfaz bastante agradable.

viernes, mayo 19, 2006 9:10:00 a. m.  
Blogger mizar said...

Gracias Santi, por tu comentario y enlaces. La verdad es que para gente como yo. Que además de programador, es administrador del sistema y otras cosas innombrables y despues de probar al modesto JediCVS. Creo que las molestias que te causa, se pagan de sobra con las posibles ventajas que pueda darte. Es una maravilla poder volver a la versión de hace una semana que funcionaba y poder compararla, marcándote solo las diferencias, con la actual que no funciona.

La pasada seria que el TodoList que mencionas u otro, pudiese integrarse con el IDE de desarrollo.

Pero bueno, hay que empezar por algo y en mi caso ha sido CVS.

Saludos

Juanjo

viernes, mayo 19, 2006 5:30:00 p. m.  
Blogger LibertaCom said...

Yo nunca he usado control de versiones, pero por lo que he ido cogiendo en el mundo linux, subversion está pegando fuerte.
Sobre organizador de tareas, voy a probar el TodoList pero a mi me encanta freemind. Aparte de la organización de tareas, permitiendo utilizar colores e iconos, facilita y potencia la organización mental de las tareas. Además el poder contraer y expandir las distintas ramas del mapa mental, te permite una muy buena organización ya que te evita confundirte con el bosque y centrarte en los árboles.
En esta entrada de mi blog pueden ver un pantallazo de sus resultados.

sábado, mayo 20, 2006 10:31:00 a. m.  
Blogger A.G. said...

Hola a todos,

Muy buen tema Ian, en realidad nunca he utilizado gestor alguno para proyectos, cuando hago uno y mas adelante quiero hacer modificaciones o agregaciones, siempre creo un nuevo proyecto, ya sea porque descubro nuevas librerias o controles que implementar, solo tomo la idea del anterior y claro le hago las mejoras.

Sobre el grupo, pues claro me sumaria a este cuando estuviese.

Vengo de programar en VB6 antes de este lo hacia con Clipper 87 y 5.2, pero hace como 2.5 años que me preocupe por ponerme al dia y me dedique a aprender c# ni si quiera he aprendido lo suficiente de C# y Microsoft ya tiene C# 2.0 y va por C# 3.0.

Saludos,

A.G.
Guatemala, C.A.

lunes, mayo 22, 2006 4:05:00 p. m.  
Anonymous Perico said...

Aquí he encontrado un post que habla sobre control de versiones desde un punto de vista práctico (y en español):

Integración continua y gestión de la configuración

Saludos

Perico

miércoles, mayo 24, 2006 1:06:00 p. m.  
Anonymous Anónimo said...

Sólo añadir que en mi empresa utilizamos JEDIVCS desde hace unos años (antes se llamaba FreeVCS) y consideramos que es muy productiva: la forma de trabajar en la que cualquier cambio queda registrado, proporciona seguridad :-)

jueves, mayo 25, 2006 5:35:00 p. m.  
Blogger REDMAN- said...

REDMAN: Aunque trabajara sólo en un proyecto siempre utilizaría VSS pues me da una tranquilidad de poder tirar atrás versiones, comparar fuentes en caso de fallos nuevos y hacer pruebas con los fuentes que finalmente descarto. Lo uso incluso para ficheros que no son código fuente. VSS es ideal porque precisamente no necesariamente se tiene que integrar con nada pues lo que gestiona son ficheros de cualquier tipo Binario/Texto (si queremos poder comparar).
Por otro lado sería interesante crear un gurpo de .NET 2.0 en mi caso me interesa V.B porque es el lenguaje al que da más soporte MS pero habría que generalizar porque a fin de cuentas no importa demasiado.
Creo que habría que crear una área de PROYECTOS, otro de INTERFACES y otro de ACCESO A DATOS. Además dentro del acceso a datos dividiría entre uno estandar ADO.NET 2.0 tal y como lo propone MS y otro más especifico en el que yo estaría más interesado que es gestión de reglas de negocio/datos desde dentro de la base de datos. SQL Server 2000/2005 son muy buenas opciones.

viernes, mayo 26, 2006 9:47:00 a. m.  
Blogger Ian Marteens said...

Me parece bien. A ver si hoy me da tiempo y cuento lo que se me ha ocurrido en un post. Un adelanto: el grupo debe ser una iniciativa colectiva. Quiero decir, que no se trate del "grupo de usuarios de IntSight": la gente debe tener una garantía de que cualquier esfuerzo que dediquen siga siendo suyo, y no se pierda. Por otra parte, veo problemas en descabezar completamente la iniciativa. Por ejemplo, si hay una lista de correo, dejar que todo el mundo pueda verla directamente sería un desastre: si Pepito quiere la lista para enviar spam, le bastaría darse de alta. Estos son dos requisitos opuestos. Luego escribo con calma una idea inicial, y vamos iterando sobre ella, o al menos, que nos sirva como punto de partida.

viernes, mayo 26, 2006 10:59:00 a. m.  
Anonymous Anónimo said...

Hello
That was useful info...thanks and Welcome to live chat FETISH. If you search the aldactone? Click here - aldactone
Enjoy

domingo, febrero 04, 2007 6:58:00 a. m.  
Anonymous Anónimo said...

Hola

Acabo de descubir este blog y me parece buena idea lo del grupo de usuarios, lo del CVS yo lo he usado con Java para un ERP y es bueno el VSS lo teniamos en una empresa donde trabaje y nunca supe para que servia (en descargo, mi jefe ni siquiera sabia lo que significa programacion). Para A.G. de Guatemala, sobre C# no es que haya varias versiones, sino que el Framework o maquina virtual es lo que cambia, un programa en C# para el Framework 1.1 te funciona en el 2.0 o 3.0, el Framework solo te da nuevas caracteristicas y de tu parte esta usarlas o no.

miércoles, febrero 07, 2007 9:20:00 p. m.  
Anonymous Anónimo said...

Hola

Acabo de descubir este blog y me parece buena idea lo del grupo de usuarios, lo del CVS yo lo he usado con Java para un ERP y es bueno el VSS lo teniamos en una empresa donde trabaje y nunca supe para que servia (en descargo, mi jefe ni siquiera sabia lo que significa programacion). Para A.G. de Guatemala, sobre C# no es que haya varias versiones, sino que el Framework o maquina virtual es lo que cambia, un programa en C# para el Framework 1.1 te funciona en el 2.0 o 3.0, el Framework solo te da nuevas caracteristicas y de tu parte esta usarlas o no.

miércoles, febrero 07, 2007 9:25:00 p. m.  

Publicar un comentario

<< Home