In our company we have started using VS 2010 to model our systems, in so called modeling projects. These are kept under TFS2010 source control.
It's all good for a single user, but as soon as we introduced this tool to our entire architecture team we ran into a major problem: It handles multiple users extremely badly! Let me run you through a simple scenario.
As I have understood this, the problem is that the architecture project is based on several xml files, and in particular one important huge chunk of xml called ModelDefinition/Architecure.uml. It contains a lot of knowledge about the diagrams in the modeling project. When multiple people do multiple changes to this file simultaneously, the tools (TFS, VS) does not handle the required merging automatically, and we're left with huge concurrency issues.
So in my scenario, because the Architecture.uml that architect 1 checked in does not know anything about the elements that architect 2 added, these elements are overwritten or otherwise ruined.
We want to avoid splitting the project into several smaller ones, because that would mean that we'd have to re-define our modeling components (classes, actors, use cases, components, etc) multiple times. By using a single solution, we can define such elements in one place, and re-use them in every other diagram.
So, our current 'solution' is to work using exclusive check outs. So only one architect can work at a time!
I was hoping that someone had come up with a better solution to this, which allows us to work more effectively.
Try divide & conquer: Is it possible that each architect works on her personal branch & then everything is merged into a 'Trunk'?
Conflicts should get visible during these merges.
EDIT
You could employ an XML-specific tool, like the ones presented here.
By doing so, you should keep the branching-per-architect approach, BUT instead of using a single-step TFS-merge you could:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With