<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>configuration management</title>
        <link>http://geekswithblogs.net/btudor/category/9938.aspx</link>
        <description>configuration management</description>
        <language>en-US</language>
        <copyright>Bill Tudor</copyright>
        <managingEditor>btudor@nycap.rr.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>The Joel Test for 2010</title>
            <link>http://geekswithblogs.net/btudor/archive/2010/01/04/137329.aspx</link>
            <description>&lt;p&gt;Back in June, I posted my own version of the &lt;a href="http://www.joelonsoftware.com/articles/fog0000000043.html"&gt;Joel Test&lt;/a&gt; – updated for 2010. [&lt;a href="http://geekswithblogs.net/btudor/archive/2009/06/16/132842.aspx"&gt;See Here&lt;/a&gt;.]&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;p&gt;Do you have a change management system?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Can everyone make a build in one step?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do your daily builds include automated tests?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Is work item tracking integrated with source control?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do you fix bugs &lt;em&gt;and&lt;/em&gt; write new code?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do you track progress and manage change?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do you have a requirements management system?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do programmers have quiet working conditions and teaming rooms?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do you use the best tools money can buy?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Are your testers involved in requirements management?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do new candidates review code during their interview?&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Do you do hallway usability testing?&lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt; &lt;img src="http://geekswithblogs.net/btudor/aggbug/137329.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Tudor</dc:creator>
            <guid>http://geekswithblogs.net/btudor/archive/2010/01/04/137329.aspx</guid>
            <pubDate>Mon, 04 Jan 2010 10:52:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/btudor/comments/137329.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/btudor/archive/2010/01/04/137329.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/btudor/comments/commentRss/137329.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/btudor/services/trackbacks/137329.aspx</trackback:ping>
        </item>
        <item>
            <title>Three&amp;rsquo;s a Charm?</title>
            <link>http://geekswithblogs.net/btudor/archive/2009/10/02/135243.aspx</link>
            <description>&lt;h1&gt;Three’s a Charm&lt;/h1&gt;  &lt;p&gt;It looks like the third iteration of Team Foundation Server might be a good one. I just finished reading &lt;a href="http://blogs.msdn.com/bharry/archive/2009/10/01/tfs-2010-for-sourcesafe-users.aspx"&gt;Brian Harry’s post on TFS 2010&lt;/a&gt; and it contains some interesting references.&lt;/p&gt;  &lt;h3&gt;SourceSafe Replacement?&lt;/h3&gt;  &lt;p&gt;I never could understand why TFS was often compared to SourceSafe. All the sessions on migrating from VSS to TFS, TFS for VSS users, etc. Is a team really going to migrate from VSS to TFS? Really? You have got to be kidding me! TFS is&lt;em&gt; change management&lt;/em&gt; (to borrow a phrase from Rational), and &lt;em&gt;VSS was barely version control&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;… but now I think I get it …&lt;/p&gt;  &lt;p&gt;All those VSS (or CVS, etc.) users were left stranded – there was no lightweight version control server for individuals (or very small teams). So they all went to SVN. Quick setup, version control, painful (but possible) branching and merging, command line, nice shell client, poor VS client, and all of that.&lt;/p&gt;  &lt;h3&gt;VSTS 2010&lt;/h3&gt;  &lt;p&gt;In steps Visual Studio Team System, Team Foundation Server, 2010.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Can run locally on Windows 7 and Windows Vista &lt;em&gt;client&lt;/em&gt; OS’&lt;/li&gt;    &lt;li&gt;Simple installation / Configuration &lt;/li&gt;    &lt;li&gt;Can optional use SQL Server express edition &lt;/li&gt;    &lt;li&gt;Can be installed on a domain controller &lt;/li&gt;    &lt;li&gt;Stand-alone version includes Work Item Tracking, Version Control &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Note that this stand alone version also appears to include the build server/services!&lt;/p&gt;  &lt;p&gt;I assume with the new project collections feature, you could move your SQL Express database over to a real SQL Server when your team gets a bit bigger. And good pricing is also on the Redmond minds.&lt;/p&gt;  &lt;p&gt;Looks to me like they did their research. And did it well.&lt;/p&gt;  &lt;p&gt;Nice.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/btudor/aggbug/135243.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Tudor</dc:creator>
            <guid>http://geekswithblogs.net/btudor/archive/2009/10/02/135243.aspx</guid>
            <pubDate>Fri, 02 Oct 2009 10:10:48 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/btudor/comments/135243.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/btudor/archive/2009/10/02/135243.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/btudor/comments/commentRss/135243.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/btudor/services/trackbacks/135243.aspx</trackback:ping>
        </item>
        <item>
            <title>The Joel Test &amp;ndash; Updated for 2010</title>
            <link>http://geekswithblogs.net/btudor/archive/2009/06/16/132842.aspx</link>
            <description>&lt;p&gt;The &lt;a href="http://www.joelonsoftware.com/articles/fog0000000043.html" target="_blank"&gt;Joel test&lt;/a&gt; is intended to gauge the quality of a software development organization. Ten years later, it is in need of an update. Below is a possible “New Joel Test”, updated for 2010. &lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;1. Do you use source control?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;1. Do you have a change management system?&lt;/h2&gt;  &lt;p&gt;There needs to be a configuration management plan, control of assets beyond “source code”, branching and merging strategy (even if it’s not to branch), release stabilization and deployment plan, security permissions and roles, quality gates for checking and/or merge, etc. Otherwise, “use source control” is just referring to a &lt;em&gt;glorified backup system&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;2. Can you make a build in one step?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;2. Can everyone make a build in one step?&lt;/h2&gt;  &lt;p&gt;Individual developers need access to the automated build system. The official nightly build can “build everything”, but developers need to be able to build individual parts, pull together the required assets, and run from a representative staging area – maybe a virtual machine (or two), a network share, or just a folder on disk.&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;3. Do you make daily builds?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;3. Do your daily build include automated tests?&lt;/h2&gt;  &lt;p&gt;It’s not enough to just &lt;em&gt;build&lt;/em&gt; – we need an indication of build quality. “Break the build” should mean more than “does not compile”, it should also mean “does not pass the tests”.&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;4. Do you have a bug database?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;4. Is work item tracking integrated with source control?&lt;/h2&gt;  &lt;p&gt;What artifacts were changed with a given bug fix? What bug or development task is associated with the most recent change-set? Which bugs are associated with a given merge? &lt;/p&gt;  &lt;p&gt;Check-outs (or commits, depending on the source control system in use), must be associated with bug reports or development tasks. Each check-in should reflect changes for one task (unless they are coupled tasks). You should also be able to query, based on a bug report, which artifacts were changed (or ideally, currently in the process of being changed). In other words, change management must be integrated with bug tracking and project task tracking.&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;5. Do you fix bugs before writing new code?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;5. Do you fix bugs &lt;em&gt;and&lt;/em&gt; write new code?&lt;/h2&gt;  &lt;p&gt;A properly run project will have a branching / merging strategy (or tagging/labeling policy) that allows simultaneous bug fixes with new development. A quality organization will be able to correct bugs in previous releases, and ensure those corrections are in the current release. Without copying or duplicating the code base.&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;6. Do you have an up-to-date schedule?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;6. Do you track progress and manage change?&lt;/h2&gt;  &lt;p&gt;Project tracking must include processes that allow for managing (planning / executing / tracking) change as well as tracking progress and periodic re-planning of the remaining work.&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;7. Do you have a spec?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;7. Do you have a requirements management system?&lt;/h2&gt;  &lt;p&gt;The “&lt;em&gt;spec&lt;/em&gt;” will change; that change needs to be managed. Too often I see organizations with an excellent process for development of the “spec” and a horrible process for managing change in the spec. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: In 2010, if you don’t have a “&lt;em&gt;spec&lt;/em&gt;”, you automatically get a ZERO on the new Joel Test and there is no point in continuing on.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;&lt;strike&gt;8. Do programmers have quiet working conditions?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;8. Do programmers have quiet working conditions and teaming rooms?&lt;/h2&gt;  &lt;p&gt;The teaming rooms are more than a room with a white-board. There is a conference phone, computers (more than one), projector, and lots of white boards. Code reviews, code walk-through, mentoring, design, dispute resolution, meeting with customers – can all take place here. &lt;/p&gt;  &lt;h2&gt;9. Do you use the best tools money can buy?&lt;/h2&gt;  &lt;p&gt;No change needed. This one is timeless. &lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;10. Do you have testers?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;10. Are your testers involved in requirements management?&lt;/h2&gt;  &lt;p&gt;The test team needs to be involved in the requirements management system as well as the product validation process. Tests are executed against the requirements. The testers should have authority to approve/reject a deployment as well as approve or reject a requirement. Otherwise, &lt;em&gt;they’re just testers&lt;/em&gt;.&lt;/p&gt;  &lt;h2&gt;&lt;strike&gt;11. Do new candidates write code during their interview?&lt;/strike&gt;&lt;/h2&gt;  &lt;h2&gt;11. Do new candidates review code during their interview?&lt;/h2&gt;  &lt;p&gt;“Writing code” is one thing – understanding code is another. Candidates should be able to answer questions like “is this code thread-safe?”, “is the code well-commented?”, or “Is the implementation appropriate” – and why. Printing fizz-buzz is one thing; being able to appropriately critique a page of code is another. As a bonus, you could always ask them to &lt;em&gt;re-write&lt;/em&gt; it and get the best of both.&lt;/p&gt;  &lt;h2&gt;12. Do you do hallway usability testing?&lt;/h2&gt;  &lt;p&gt;Huh? I’ll have to go and read the original on this one, again. I will leave it alone here.&lt;/p&gt;  &lt;p&gt;*  *  *  *  *&lt;/p&gt;  &lt;p&gt;The Joel Test updated for the year 2010. And a few more months to get it right.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/btudor/aggbug/132842.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Tudor</dc:creator>
            <guid>http://geekswithblogs.net/btudor/archive/2009/06/16/132842.aspx</guid>
            <pubDate>Tue, 16 Jun 2009 09:23:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/btudor/comments/132842.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/btudor/archive/2009/06/16/132842.aspx#feedback</comments>
            <slash:comments>15</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/btudor/comments/commentRss/132842.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/btudor/services/trackbacks/132842.aspx</trackback:ping>
        </item>
        <item>
            <title>Setting up Subversion 1.6 Server</title>
            <link>http://geekswithblogs.net/btudor/archive/2009/04/12/130919.aspx</link>
            <description>&lt;p&gt;Subversion 1.6 was release a few weeks back, and I am finally getting around to installing on a server here. I plan to create a new repository with this install, importing older projects in as required. I will be installing into a virtual machine instance, since they are easier to manage and move around.&lt;/p&gt;  &lt;h2&gt;Downloads&lt;/h2&gt;  &lt;p&gt;I downloaded the (free) subversion components from Tigris.org:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Binaries (as a simple ZIP file) &lt;/li&gt;    &lt;li&gt;TortoiseSVN as an MSI installer &lt;/li&gt;    &lt;li&gt;ankhSVN as an MSI installer &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These files were placed (staged) in a shared folder on the server so that I can easily install on various clients around the network. The “Windows Binaries” download contains both the server side and the client side command-line tools. TortoiseSVN is a client-side Windows shell extension (I downloaded both the 32-bit and 64-bit versions). ankhSVN (I always forget what that stands for – the name should be changed if you ask me) is a Visual Studio integration package for vs2008. Note that this component, at version 2.1, is not yet in final release form – I had to download the latest daily build to get subversion 1.6 support.&lt;/p&gt;  &lt;h2&gt;Server Install&lt;/h2&gt;  &lt;p&gt;There is no “installer” for the server install. Yes, I know there are people out there with “server packages” to download – some are even free - but it is just as easy to do it all yourself. Here are the steps I took:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Created a folder named “Tigris Subversion” under the Program Files folder &lt;/li&gt;    &lt;li&gt;Changed permissions to: Administrators:Full, [ServiceAccount]:Full, Users:Read &lt;/li&gt;    &lt;li&gt;Copied in the folder “svn-win32-1.6.0”, which is just the un-zipped distro package      &lt;blockquote&gt;       &lt;p&gt;Note: I plan to use a special [ServiceAccount] user to run the subversion server service so that user can be setup with proper security rights. By this I mean the user can read/write the subversion repository, log on as a service on the server machine, and very little else (no rights anywhere else on the network).&lt;/p&gt;     &lt;/blockquote&gt;   &lt;/li&gt;    &lt;li&gt;Create/register a service with the Service Control Manager (SCM) using the command:      &lt;br /&gt;&lt;strong&gt;sc create svnserver binPath= "C:\Program Files\Tigris Subversion\svn-win32-1.6.0\bin\svnserve.exe"&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Use “regedt32” to modify the service entry to include --service -r "C:\Program Files\Tigris Subversion\repository" on the command line, Tcpip as a “depends on” service, and startup set to Auto (last two items not critical). &lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: Step 5 can be done along with step 4 assuming you know how to use the “sc.exe” command properly. I can never figure it out, particularly when there are spaces in the pathnames, so editing the service entry in the registry is easier for me.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Create Repository&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Run the command: &lt;strong&gt;svnadmin create "C:\Program Files\Tigris Subversion\repository"&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Edit the file “svnserve.conf” in the repository folder; turn on username/password. &lt;/li&gt;    &lt;li&gt;Edit the file “passwd” in the repository folder; add some users and passwords. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This creates an empty repository in a folder named “repository” in my installation area. For added security, I then removed the Users:R permission completely from this folder. Only administrators and the special TFSService account can access the repository, which includes the source code as well as the password and configuration information. &lt;/p&gt;  &lt;h3&gt;Final Steps – Running the service&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Punch a hole in the firewall for Tcp port 3690. I set the scope of the firewall inbound rule to “local subnet” since I do not plan to come in over the internet. If I did plan internet access, I would probably run subversion server under Apache and come in using port 80. I do not know how to do this, as I have never attempted to do so. The “SVN” protocol over port 3690 is perfect for a little LAN. (and super-fast, too). &lt;/li&gt;    &lt;li&gt;Start the service using “net start svnserver” (or whatever you called the service), or using the Services MMC snap-in. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If all goes well, you will have an SVN server running as a service on port 3690. Check the task manager. View ports on “netstat –a ”. The subversion server process is pretty light-weight, clocking in with a mere 3Mb working set.&lt;/p&gt;  &lt;p&gt;You can run more than one server (on different Tcp ports), to serve up more than one repository.&lt;/p&gt;  &lt;h3&gt;Testing the Install&lt;/h3&gt;  &lt;p&gt;A quick test: run the command &lt;strong&gt;svn info svn://localhost&lt;/strong&gt; on the server. The response let’s you know everything is working. Well, almost everything. We can’t test the firewall settings until we move over to a client. In any case, we can log off the server now. Time for client installs.&lt;/p&gt;  &lt;h2&gt;Client Install&lt;/h2&gt;  &lt;p&gt;I recommend using both the free Explorer shell extension (Tortoise SVN) and the free Visual Studio integration package (ankhSVN). &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Run the MSI installer for Tortoise SVN &lt;/li&gt;    &lt;li&gt;Run the MSI installer for ankhSVN &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Once installed, I like to change the Tortoise SVN settings to perform “Icon Overlays” only on my planned SVN workspace folder. To do this, choose settings from the Tortoise SVN context menu, available with a right-mouse on virtually any file or folder in Windows Explorer, and set the exclude path to “*” and include paths appropriately under the “Icon overlay” section. I don’t normally change anything else. The SVN icons are a bit cheesy, if you ask me. Must be the lack of open source designers.&lt;/p&gt;  &lt;p&gt;As for Visual Studio, the Subversion add-on functions just fine along side Team Explorer (TFS Client). You just have to remember to change your current Source Control Plugin in Tools|Options from time-to-time when working with different projects that are controlled under the different systems. I have not run into any issues.&lt;/p&gt;  &lt;p&gt;To access your subversion server, just use the URL “svn://servername” and the username/password you setup earlier. Both clients cache this information locally, so you typically only have to enter it once.&lt;/p&gt;  &lt;h2&gt;Final Thoughts&lt;/h2&gt;  &lt;p&gt;Overall, not too difficult. Of course, you don’t really need a separate server machine – you can run svnserv.exe right on the client machine, and store the repository on local disks, removable disks, or a network share. I like using a server, however, so that I can primarily work on my desktop machine but can quickly checkout a source tree on the laptop, go on the road, and sync up all the changes with a commit when I get back home. [This process works equally well with Team Foundation Server’s new “work offline” feature introduced in vs2008].&lt;/p&gt;  &lt;p&gt;There’s a lot to like about subversion, particularly if you only need source control. It’s perfect for my setup, here.&lt;/p&gt;  &lt;p&gt;One gripe I have with Subversion on Windows is that it does not (to my knowledge) integrate with Active Directory, therefore you have to maintain an “alternate” username/plain text password file system. There may be other ways to handle this, but I am not aware. &lt;/p&gt;  &lt;p&gt;My Approach:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Lock down the passwd file, allowing only [ServiceAccount] and administrators access. &lt;/li&gt;    &lt;li&gt;Create users &lt;/li&gt;    &lt;li&gt;Use reasonably strong passwords &lt;/li&gt;    &lt;li&gt;Never use Windows account passwords &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Subversion clients cache login information so lack of integration with Windows Authentication is really not much of a big deal after all.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/btudor/aggbug/130919.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Tudor</dc:creator>
            <guid>http://geekswithblogs.net/btudor/archive/2009/04/12/130919.aspx</guid>
            <pubDate>Mon, 13 Apr 2009 03:47:26 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/btudor/comments/130919.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/btudor/archive/2009/04/12/130919.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/btudor/comments/commentRss/130919.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/btudor/services/trackbacks/130919.aspx</trackback:ping>
        </item>
    </channel>
</rss>
