¡Hola de nuevo! Siento ser un tanto pesado con este hilo pero seguimos sin conseguir una arquitectura de cajas lo suficientemente cómoda para trabajo en equipo.
El trabajo en equipo se puede resumir en crear (1) nuevos bloques/objetos de programa y en (2) modificar/ampliar/corregir bloques/objetos existentes y finalizados. Estamos utilizando la estrategia propuesta en el blog de Velneo (y recientemente este post que habla del tema) y nos funciona bastante bien para el punto (1) pero para el (2) la cosa ya no es tan cómoda; y a medida que crece el proyecto peor.
Adjunto una imagen de cómo lo tenemos organizado ahora mismo (vscrum_arch_1.png). En el proyecto de aplicación principal (vScrum) existe una carpeta "Pendientes de revisión". La idea es que los proyectos de aplicación de cada desarrollador queden vacíos una vez terminan con sus tareas, y los muevan a dicha carpeta "Pendientes de revisión" en la que me estoy encargando de comprobar objeto por objeto, revisando posibles fallos (aunque cada miembro del equipo prueba todo lo que hace antes de moverlo a revisión) y validando que se cumple con las reglas de estilo. Finalmente todo lo existente en "Pendientes de revisión" se reorganiza en sus respectivas carpetas en el proyecto y esta carpeta también debe quedar vacía en cada fin de ciclo.
El problema es que una vez colocamos objetos en la caja de abajo, no conseguimos encontrar una solución cómoda para poder subirlos de nuevo arriba cuando queramos volver a trabajar con ellos y permitir mantener protegido el proyecto principal para que otra persona pueda meterse en ella y mover a su caja los objetos con los que desee volver a trabajar.
Por ahora la única solución que se me ocurre es cambiar momentáneamente la dirección de la herencia, de modo que se muevan los objetos de abajo a la caja de arriba que sea y, posteriormente, reestablecer la relación de herencia original. Luego se lleva a cabo la modificación y se vuelve a mover al proyecto principal, a la carpeta de Revisión.
Otra opción sería la siguiente pero no es posible (vscrum_arch_2.png). Las rayas esas discontinuas cutres (Paint power!) las he metido yo jejeje. La idea sería tener un proyecto de aplicación "limbo" que contuviera tres directorios "Lucas", "Pablo", "Quique" de manera que cada desarrollador moviera sus objetos a su respectiva carpeta en el proyecto Limbo. A este proyecto se entraría solamente para posteriormente mover de ahí a su proyecto de aplicación personal, de manera que el limbo también quede protegido en todo momento para el resto de desarrolladores. Esta solución no es viable porque este tipo de "herencia cíclica" no es legal :-)
Quizá adoptar la solución propuesta en vscrum_arch_2.png y realizar los cambios de herencia desde ahí. Aunque sería menos cómodo incluso porque implica cambiar varias herencias y luego reponerlo todo.
La solución de velavisual le pasa un poco lo mismo. Si cada desarrollador se va a encargar de su/s módulo/s o partes concretas del programa, y nadie más tocará dichas partes, entonces es buena solución partir de "arriba hacia abajo" y tener modularizado el programa en varios proyectos. Pero cuando todos se encargan de todo entonces vuelves un poco a lo de antes.
¡Necesito más ideas! :-D y gracias por aguantar la chapa jejeje ¡Un abrazo!
[attachment=12330,1126] [attachment=12330,1127]