<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.claritycon.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>Search results matching tags 'Project Management' and 'Software Tools'</title><link>http://blogs.claritycon.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Project+Management,Software+Tools&amp;orTags=0</link><description>Search results matching tags 'Project Management' and 'Software Tools'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Practicality when Branching in TFS</title><link>http://blogs.claritycon.com/blogs/bryan_dougherty/archive/2008/08/10/practicality-when-branching-in-tfs.aspx</link><pubDate>Sun, 10 Aug 2008 19:05:00 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:9903</guid><dc:creator>bdougherty</dc:creator><description>&lt;p&gt;Here at Clarity, we hold infomal internal training events&amp;nbsp;a couple times a month to discuss new technologies, tools, or other things related to software development.&amp;nbsp; Recently, &lt;a class="" href="http://blogs.claritycon.com/blogs/don_peterson/default.aspx"&gt;Don Peterson&lt;/a&gt; led a discussion on source control management strategies for development teams using Team Foundation Server.&amp;nbsp; Some of what was discussed was based on &lt;a class="" href="http://www.codeplex.com/BranchingGuidance"&gt;Microsoft&amp;#39;s Branching Guidance white paper&lt;/a&gt;.&amp;nbsp; I&amp;#39;ve read the paper before and I think it is a good read, full of good info.&amp;nbsp;&amp;nbsp;The focus of our discussion the other day was Release Isolation since that is probably the most commonly used strategy.&amp;nbsp; The paper shows branching for release isolation&amp;nbsp;in this way:&lt;/p&gt;&lt;img src="http://employees.claritycon.com/bdougherty/blog/images/tfsPracticalBranching/guidance.jpg" alt="" /&gt; 
&lt;p&gt;I agree with the approach in spirit, but I think it&amp;#39;s worthwhile to ask yourself a few questions to see if you need this much complexity:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;How big is my team?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Do we need isolated feature changes?&amp;nbsp; &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;How does development process work?&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;For small teams (&amp;lt; 10&amp;nbsp;developers), I think it can be in&amp;nbsp;your best interest&amp;nbsp;to simplify your branching structure to something more like this:&lt;/p&gt;&lt;img src="http://employees.claritycon.com/bdougherty/blog/images/tfsPracticalBranching/simpler.jpg" alt="" /&gt; 
&lt;p&gt;First, let&amp;#39;s&amp;nbsp;recognize that TFS, like any product, has some issues.&amp;nbsp; As I&amp;#39;ve experienced lately, merging large structural refactoring changes can cause problems.&amp;nbsp; I think you&amp;#39;re best off limiting merges and merging often.&amp;nbsp;And with smaller teams you don&amp;#39;t necessarily have a lot of independent work going on and may not&amp;nbsp;need separate Dev and Main branches.&amp;nbsp;&amp;nbsp;Main is meant to be your stabilization branch, but if your development team works together well in a single branch you can limit some of the merging needed by conceptually combining those branches.&amp;nbsp; Feature separation is still possible by creating branches off of Main as needed.&amp;nbsp; When it&amp;#39;s time for QA, I think it&amp;#39;s okay to simply branch off for the release and build your QA release out of the release branch (i.e. Release 1.0).&amp;nbsp; Bugs found in QA testing can be fixed in the Release Branch and then merged back to Main.&amp;nbsp; The&amp;nbsp;final signed off QA build becomes the release version and then the release branch can have security locked down so that the only changes that will ever go into the release branch will be for approved hot fixes.&lt;/p&gt;
&lt;p&gt;In summary, I&amp;#39;m not suggesting the approach described in the white paper is flawed.&amp;nbsp; These are smart guys and everything makes sense.&amp;nbsp;&amp;nbsp;I simply think that it&amp;#39;s best to be practical and consider what you really need to succeed.&lt;/p&gt;</description></item><item><title>Visual Studio Team Edition for Database Professionals: A Developer Productivity Tool</title><link>http://blogs.claritycon.com/blogs/bryan_dougherty/archive/2008/03/17/visual-studio-team-edition-for-database-professionals-a-developer-productivity-tool.aspx</link><pubDate>Tue, 18 Mar 2008 01:23:00 GMT</pubDate><guid isPermaLink="false">da947a97-509e-40e6-bbb5-1443ad47bf4e:4199</guid><dc:creator>bdougherty</dc:creator><description>&lt;p&gt;I wanted to share a few quick thoughts on &lt;a class="" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718807.aspx"&gt;Visual Studio Team Edition for Database Professionals&lt;/a&gt;.&amp;nbsp; Over the past several months I’ve found this to be an invaluable tool.&amp;nbsp; Aside from being a mouthful, the name is a little misleading as it implies that it is only targeted at DBAs.&amp;nbsp; This is not the case.&amp;nbsp; This component of the Visual Studio Team Suite is something that developers can use to gain productivity. &lt;/p&gt;
&lt;p&gt;On most of the projects I’ve been involved in, developers are making changes to databases and a DBA may not even exist.&amp;nbsp; Coordination of those changes during the development phase can be a challenge.&amp;nbsp; Even more challenging can be the deployment of those changes to integration, testing, and production environments. VS DB Pro allows developers to track the database structure in a Visual Studio project, just like a class library.&amp;nbsp; A project can be created from an existing database or a new project can be started.&amp;nbsp; The main component of the tool is ability to perform a Schema Comparison, comparing one database or database project to another database.&amp;nbsp; Developers can use the comparison to apply the changes to their local database, or to make changes to the project.&amp;nbsp; I’ve found that this is very helpful for getting changes from one developer to another quickly.&amp;nbsp; The integration with source control helps track your changes.&amp;nbsp; Later in the application life cycle, developers and/or the operation team members can generate a script using the comparison to deploy changes to a test or production environment.&amp;nbsp; In addition to schema comparison, there are other features the tool provides like refactoring and unit testing, which I haven’t used much of yet. &lt;/p&gt;
&lt;p&gt;As always, you can’t beat good communication across a team as a key component of a successful project.&amp;nbsp; However, I think that adding Visual Studio Team Edition for Database Professionals can make your project even more successful.&amp;nbsp; I’ve got some further ideas about “best practices” for using the tool on a project and I’ll try to post those at a later date. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;A couple notes for full disclosure&lt;/em&gt;:&amp;nbsp;I’ve only used VS DB Pro with SQL Server 2005 databases and TFS source control so I can’t tell you about the experience beyond that.&amp;nbsp; Also, I’ve never compared its feature set to that of other tools - I’ve simply taken it for granted as part of the Team Suite.&amp;nbsp; And there are a few gotchas.&amp;nbsp; For example, sometimes after getting latest from source control, even when clicking the “update schema” button, the local temp database doesn’t get updated and that can cause some problems.&amp;nbsp; I’ll give MS a little break chalking this up to a first version of the tool (But it better work better in future releases!).&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>