<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>BUGBUG: poor title : scm</title><link>http://blogs.msdn.com/richardb/archive/tags/scm/default.aspx</link><description>Tags: scm</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>TFS Team Project whitepaper</title><link>http://blogs.msdn.com/richardb/archive/2007/05/01/tfs-team-project-whitepaper.aspx</link><pubDate>Tue, 01 May 2007 21:27:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2361115</guid><dc:creator>Richard Berg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/richardb/comments/2361115.aspx</comments><wfw:commentRss>http://blogs.msdn.com/richardb/commentrss.aspx?PostID=2361115</wfw:commentRss><wfw:comment>http://blogs.msdn.com/richardb/rsscomments.aspx?PostID=2361115</wfw:comment><description>&lt;p&gt;As &lt;a href="http://blogs.msdn.com/richardb/archive/2007/03/21/tfs-branch-amp-merge-whitepaper-plus-recommended-links.aspx"&gt;promised&lt;/a&gt;, we finally have some guidance around structuring team projects.&amp;nbsp; What can you do within a team project?&amp;nbsp; What can you migrate between projects?&amp;nbsp; Which settings are global, which are scoped only to Team Projects, and which can be broken into their own hierarchies?&amp;nbsp; Doug Neumann &lt;a href="http://www.codeplex.com/BranchingGuidance/Wiki/View.aspx?title=Guidance%20for%20Structuring%20Team%20Projects"&gt;reveals all&lt;/a&gt;.&amp;nbsp; Here's an overview of what he covers:&lt;/p&gt; &lt;blockquote&gt; &lt;h4&gt;What is a Team Project?&lt;/h4&gt; &lt;h4&gt;Strategies for Employing Team Projects &lt;/h4&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;ul&gt; &lt;li&gt;Strategy 1: Team Project Per Application&lt;/li&gt; &lt;li&gt;Strategy 2: Team Project Per Release&lt;/li&gt; &lt;li&gt;Strategy 3: Team Project Per Team&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;h4&gt;Providing Substructure Within a Team Project&lt;/h4&gt; &lt;h4&gt;Other Common Questions&lt;/h4&gt;&lt;/blockquote&gt; &lt;p&gt;What limits are there within a single team project, anyway?&amp;nbsp; My answer has long been: almost none.&amp;nbsp; Don't skim the big chart under "providing substructure" -- those are all important features we use extensively.&amp;nbsp; After all, the entire Developer Division (Visual Studio, Team System, TFS, Silverlight...) works in one team project.&amp;nbsp; I usually don't recommend creating a new TP unless there's a specific feature you can't get any other way.&lt;/p&gt; &lt;p&gt;Another rule of thumb I've used when answering customer questions is to have a one-to-one mapping between TPs and process templates.&amp;nbsp; To me a TP represents not just a "collection of artifacts" but a &lt;strong&gt;physical instantiation of your abstract development process/workflow&lt;/strong&gt;.&amp;nbsp; Currently, if you create a new process template, you have no choice: TFS won't let you update an existing TP, apart from minor changes (e.g. uploading new work item types).&amp;nbsp; More conceptually, if you're feeling like your process needs to change, it's a sign you may need to create a new TP in the future.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Perhaps more controversially, I think the relationship works in the other direction: you usually don't need more than one TP per process template.&amp;nbsp; If several teams are planning to adopt the same process, they can probably share the same TP.&amp;nbsp; Similarly, if you're happy with a process currently in place and don't plan to change it, you probably don't need to create another TP just because you hit a certain release milestone or finished servicing a certain customer.&amp;nbsp; Again, use the&amp;nbsp;extensive charts in &lt;a href="http://www.codeplex.com/BranchingGuidance/Wiki/View.aspx?title=Guidance%20for%20Structuring%20Team%20Projects"&gt;the article&lt;/a&gt; as a checklist to make sure&amp;nbsp;your team project can really handle this -- my guess is you'll be pleasantly surprised.&lt;/p&gt; &lt;p&gt;Note: all recommendations above are my own, not those of Doug, the TFS team, or Microsoft&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2361115" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/richardb/archive/tags/tfs/default.aspx">tfs</category><category domain="http://blogs.msdn.com/richardb/archive/tags/scm/default.aspx">scm</category></item><item><title>TFS Branch &amp; Merge whitepaper plus recommended links</title><link>http://blogs.msdn.com/richardb/archive/2007/03/21/tfs-branch-amp-merge-whitepaper-plus-recommended-links.aspx</link><pubDate>Thu, 22 Mar 2007 06:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1928643</guid><dc:creator>Richard Berg</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/richardb/comments/1928643.aspx</comments><wfw:commentRss>http://blogs.msdn.com/richardb/commentrss.aspx?PostID=1928643</wfw:commentRss><wfw:comment>http://blogs.msdn.com/richardb/rsscomments.aspx?PostID=1928643</wfw:comment><description>&lt;P&gt;It's finally here!&amp;nbsp; Our first real guidance on branching &amp;amp; merging has been posted, on &lt;A href="http://www.codeplex.com/BranchingGuidance/" mce_href="http://www.codeplex.com/BranchingGuidance/"&gt;a Codeplex wiki&lt;/A&gt; no less.&amp;nbsp; I reviewed several drafts of the paper, but the real credit goes to &lt;A href="http://blogs.msdn.com/mrod/" mce_href="http://blogs.msdn.com/mrod/"&gt;Mario&lt;/A&gt; for driving our (the product group's) side of the process.&amp;nbsp; Congrats to him, the UE team, and the VSTS Rangers on this milestone.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Definitely watch the recent Channel9 &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=278226" mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=278226"&gt;"Branching 101" interview&lt;/A&gt;&amp;nbsp;while you're at it.&amp;nbsp; I get asked for branch/merge guidance constantly on the MSDN forums; while there are lots of good resources on the web, the interview &amp;amp; whitepaper above make relevant recommendations much easier, especially for TFS users.&amp;nbsp; If you finish those two and still want more, make CMCrossroad's encyclopedic &lt;A href="http://www.cmcrossroads.com/bradapp/acme/branching/" mce_href="http://www.cmcrossroads.com/bradapp/acme/branching/"&gt;Streamed Lines&lt;/A&gt; your next -- and probably final -- stop.&lt;/P&gt;
&lt;P&gt;Next in the pipeline: best practices for Team Projects, headed up by the same &lt;A href="http://webphysics.davidson.edu/Alumni/DoNeumann/" mce_href="http://webphysics.davidson.edu/Alumni/DoNeumann/"&gt;Doug Neumann&lt;/A&gt;&amp;nbsp;of Channel9 fame.&amp;nbsp; (he doesn't have a blog, so I'm going to embarrass him by linking up his old homepage instead)&amp;nbsp; What substructures can I create within a Team Project?&amp;nbsp; What do the &lt;A href="http://msdn2.microsoft.com/en-us/library/aa974183(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa974183(vs.80).aspx"&gt;TFS Team Project limits&lt;/A&gt; mean for my org?&amp;nbsp; Where do I put shared code?&amp;nbsp; If you finished the branching docs but still had questions like these, that was intentional -- branches and team projects are orthogonal, far moreso than many people think.&amp;nbsp; Stay tuned.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1928643" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/richardb/archive/tags/tfs/default.aspx">tfs</category><category domain="http://blogs.msdn.com/richardb/archive/tags/branch/default.aspx">branch</category><category domain="http://blogs.msdn.com/richardb/archive/tags/branchmerge/default.aspx">branchmerge</category><category domain="http://blogs.msdn.com/richardb/archive/tags/scm/default.aspx">scm</category></item><item><title>When your feature hits the blogosphere: SCM and the Windows Shutdown crapfest</title><link>http://blogs.msdn.com/richardb/archive/2006/12/01/when-your-feature-hits-the-blogosphere-scm-and-the-windows-shutdown-crapfest.aspx</link><pubDate>Fri, 01 Dec 2006 18:23:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1184967</guid><dc:creator>Richard Berg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/richardb/comments/1184967.aspx</comments><wfw:commentRss>http://blogs.msdn.com/richardb/commentrss.aspx?PostID=1184967</wfw:commentRss><wfw:comment>http://blogs.msdn.com/richardb/rsscomments.aspx?PostID=1184967</wfw:comment><description>&lt;p&gt;Moishe Lettvin has a &lt;a href="http://www.drizzle.com/~lettvin/2006/11/windows-shutdown-crapfest.html"&gt;great blog entry&lt;/a&gt;, an inside look at&amp;nbsp;how a&amp;nbsp;Vista feature ate thousands of man-hours on its way to the lowest common denominator.&amp;nbsp; I don't mind the UI myself (and certainly won't justify Joel's histrionics with a link) but it does illustrate several common pitfalls in large-scale software development.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Windows has a tree of repositories: developers check in to the nodes, and periodically the changes in the nodes are integrated up one level in the hierarchy. At a different periodicity, changes are integrated down the tree from the root to the nodes. In Windows, the node I was working on was 4 levels removed from the root. The periodicity of integration decayed exponentially and unpredictably as you approached the root so it ended up that it took between 1 and 3 months for my code to get to the root node, and some multiple of that for it to reach the other nodes. It should be noted too that the only common ancestor that my team, the shell team, and the kernel team shared was the root.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Well, branch integration was &lt;em&gt;my &lt;/em&gt;feature.&amp;nbsp; While my job focused more on finding bugs than architecture, you can't own branching &amp;amp; merging at Microsoft without learning a lot about the broader topic of Source Configuration Management (SCM).&amp;nbsp; So I too feel tied to this debate, albeit for a very different reason.&lt;/p&gt; &lt;p&gt;The comments and trackbacks show lots of people dumbfounded at Vista's SCM practices, and not in a good way.&amp;nbsp; Sorry folks -- there are plenty of things from Vista's ship cycle to complain about, but their branch strategy isn't one of them.&amp;nbsp; Granularity in your source control is important&amp;nbsp;for large teams, and protecting the integrity of the root with intermediate stages is even more important.&amp;nbsp; Feel free to argue that the quality gates were too bureaucratic or&amp;nbsp;the integration schedule too random, but they (finally) got the&amp;nbsp;fundamentals right.&lt;/p&gt; &lt;p&gt;Could the particulars of this situation be improved?&amp;nbsp; Sure.&amp;nbsp; As one commenter noted, active development &amp;amp; testing should've been able to happen closer &amp;amp; closer to the root as the feature matured.&amp;nbsp; Even more clearly, the teamwork between dependent feature groups left something to be desired.&amp;nbsp; Much of that is political.&amp;nbsp; And given everything Moishe described I don't think they could've avoiding RI/FI delays entirely.&amp;nbsp;&amp;nbsp;Still, the leadership&amp;nbsp;should've been more willing to create "interdisciplinary" branches for features that were obviously interwoven.&amp;nbsp; (I'm happy to say DevDiv is pioneering this.)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1184967" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/richardb/archive/tags/tfs/default.aspx">tfs</category><category domain="http://blogs.msdn.com/richardb/archive/tags/branch/default.aspx">branch</category><category domain="http://blogs.msdn.com/richardb/archive/tags/branchmerge/default.aspx">branchmerge</category><category domain="http://blogs.msdn.com/richardb/archive/tags/microsoft/default.aspx">microsoft</category><category domain="http://blogs.msdn.com/richardb/archive/tags/scm/default.aspx">scm</category></item></channel></rss>