Administración de Conflictos en el Modelo

La disciplina y el apego a normas en el desarrollo del software,es una exigencia y una conveniencia siempre. Pero cuando se trabaja en un proyecto que requiera coordinar personas, estimar tiempos, establecer etapas, las reglas claras son una necesidad.
Plex administra un modelo del problema, un repositorio que contiene la totalidad del material que fuera descripto. Dentro de este repositorio está incluída la información de versión y nivel, y en él se debe mantener la integridad.
El conflicto aparece cuando dos o más personas actúan directa o indirectamente sobre un elemento del modelo. El modo más simple en que esto ocurre, es si dos desarrolladores hubieran tomado involuntariamente el mismo objeto para trabajar. Pero existen otros problemas: por ejemplo, dos personas toman una función desarrollada por un tercero, que no tiene nombre de implementación, y la invocan en funciones distintas que son generadas y compiladas. El resultado es que probablemente le asignen automáticamente un nombre distinto cada uno, y terminen con un objeto que debe resolver el nombre, y donde uno de los dos debe volver atrás este cambio.

Medidas Preventivas

Existen tres acciones:

Recuperación del Conflicto

La actualización del modelo grupal desde el/los modelos locales, es el momento en que finalmente se producirá una acción que arbitre las diferencias que existieran. Esto sucederá de un modo u otro: o lo manejamos concientemente, o lo resolverá el mecanismo de administración del modelo.
Verificar concientemente la existencia de conflictos, requiere que, al iniciar la actualización de un modelo, previamente tengamos la norma de activar la ventana de Vista Previa de Conflictos
Esta ventana mostrará cada objeto en el que hubiera un conflicto entre el modelo grupal y el modelo local que está actualizando. Es importante tener en cuenta esta nota, porque las diferencias se irán conociendo a medida que cada usuario vaya actualizando al modelo grupal, entre el conjunto de cambios acumulados, y el nuevo modelo que está ingresando.
No obstante, cada modelo entrante tiene facultad para imponer su versión del objeto, o adoptar la existente en el modelo grupal consolidado. Las opciones disponibles desde la ventana de solución de conflictos son:

Antes de tomar una decisión, es posible analizar detalladamente descendiendo en el nivel de detalle hasta el punto en que esté el conflicto. En el caso extremo, es posible entonces traer al modelo local las diferencias, y resolverlas en éste antes de subir su contenido al grupal. Es posible que coexistan en un modelo local dos objetos semejantes. Debe decidirse la sobrevivencia de sólo uno de los dos, antes de volver a actualizar el modelo, pero es posible trabajar con ambas versiones para resolver las diferencias.

Qué pasa si el modelo resuelve automáticamente el conflicto

Existen reglas que se ponen en práctica automáticamente en ese caso, y que aseguran la integridad del modelo. Este no será afectado nunca por un choque en la definición de algún aspecto del repositorio. No obstante, nunca deje de actualizar un modelo usando la opción de Previsión de conflictos.

Triples
Se Actualizan en orden de llegada, aunque sean contradictorios. Siempre el triple más reciente impone su definición.
Nombres
Los objetos tipo nombre que son idénticos, se renombran, agregando "fff" al final del nombre al objeto local.
Large Properties
Se sobreescriben con las nuevas definiciones. Esta es la consecuencia más negativa de un conflicto no administrado.