TFS - Post Implementation Planning (Part 5 of 10)
Continued from Part 1 of 10, Part 2 of 10, Part 3 of 10, Part 4 of 10
Now that we have a team environment and a team project structure, we need to focus on structuring our solution accordingly. The typical choices we can choose from are the single, the partitioned and the multiple solutions as summarized below.
The single solution model encapsulates all projects in one single solution file and is well suited for small projects. It promotes simple build scripts and easy dependency mapping to projects within the same solution and 3rd party assemblies.
- Characteristics
- Benefits
- Simple build scripts
- Easy dependency management
- Challenges
Figure 6 – Single Solution
The partitioned solution model encapsulates all projects in one single master solution file and sub-divides the solution into sub-solutions, each with a separate solution file. The partitioned solution model is well suited for small to large projects.
- Characteristics
- One master solution file
- Multiple solution files, creating multiple solution “views”
- Benefits
- Allows partitioning of large solutions
- Scalable, with improved performance when loading sub-solutions.
- Master solution can be used to build entire solutions and creating dependencies for sub-solutions
- Easy dependency management within sub-solutions
- Challenges
- Increased solution maintenance and complexity
- Complex build scripts
Figure 7 – Partitioned Solution
The multiple solution model encapsulates projects into multiple separate solutions, with no master solution file. The multiple solution model is well suited for large projects, where a single master solution is no longer feasible.
- Characteristics
- No master solution file
- Multiple autonomous solutions and solution files
- Benefits
- Scalable to very large projects
- Supports complex branching and merging strategies
- Challenges
- Increased solution maintenance and complexity
- Complex build scripts
Figure 8 – Multiple Solutions
There is no right solution model for each environment, instead you have to consider the benefits and disadvantages of each model and select the one that suits your solution size and complexity.
We recommend the partitioned approach. It improves performance when loading specific team projects and solutions, and as the complexity and wealth of information is logically broken up. As shown in the following figure the granularity impacts the work item distribution, the methodology choice and the reporting views:
Figure 9 – Solution Model Guidance
... to be continued.