<p>Questions #1 through #4 on the <a href="http://www.joelonsoftware.com/articles/fog0000000043.html" rel="nofollow noreferrer">Joel Test</a> in my opinion are all about the development tools being used and the support system in place for developers:</p>

<ol>
<li>Do you use source control? </li>
<li>Can you make a build in one step? </li>
<li>Do you make daily builds? </li>
<li>Do you have a bug database? </li>
</ol>

<p>I'm just curious what free/cheap (but good) tools exist for the small development shops that don't have large bank accounts to use to achieve a positive answer on these questions.</p>

<p>For source control I know Subversion is a great solution, and if you are a one man shop you could even use SourceGear's <a href="http://www.sourcegear.com/vault/index.html" rel="nofollow noreferrer">Vault</a>.</p>

<p>I use NAnt for my larger projects, but have yet to set up a script to build my installers as well as running the obfusication tools all as a single step.  Any other suggestions?</p>

<p>If you can answer yes to the building in a single step, I think creating daily builds would be easy, but what tools would you recommend for automating those daily builds?</p>

<p>For a one or two man team, it's already been discussed on SO that you can use FogBugz On Demand, but what other bug tracking solutions exist for small teams?</p>

[{'answer_id': 15028, 'author': 'jacobko', 'author_id': 1318, 'author_profile': 'https://Stackoverflow.com/users/1318', 'pm_score': 2, 'selected': False, 'text': '<p>1) <a href="http://subversion.tigris.org/" rel="nofollow noreferrer">Subversion</a></p>\n\n<p>2) <a href="http://ant.apache.org/" rel="nofollow noreferrer">Ant</a> / <a href="http://maven.apache.org/" rel="nofollow noreferrer">Maven</a></p>\n\n<p>3) <a href="http://continuum.apache.org/" rel="nofollow noreferrer">Continuum</a></p>\n\n<p>4) <a href="http://www.bugzilla.org/" rel="nofollow noreferrer">Bugzilla</a> / <a href="http://trac.edgewall.org/" rel="nofollow noreferrer">Trac</a></p>\n'}, {'answer_id': 15035, 'author': 'ESV', 'author_id': 150, 'author_profile': 'https://Stackoverflow.com/users/150', 'pm_score': 5, 'selected': True, 'text': '<ol>\n<li>source control: <a href="http://subversion.tigris.org/" rel="nofollow noreferrer">Subversion</a> or <a href="http://www.selenic.com/mercurial/wiki/" rel="nofollow noreferrer">Mercurial</a> or <a href="http://git-scm.com/" rel="nofollow noreferrer">Git</a></li>\n<li>build automation: <a href="http://nant.sourceforge.net/" rel="nofollow noreferrer">NAnt</a>, <a href="http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx" rel="nofollow noreferrer">MSBuild</a>, <a href="http://rake.rubyforge.org/" rel="nofollow noreferrer">Rake</a>, <a href="http://maven.apache.org/" rel="nofollow noreferrer">Maven</a></li>\n<li>continuous integration: <a href="http://ccnet.thoughtworks.com/" rel="nofollow noreferrer">CruiseControl.NET</a> or <a href="http://continuum.apache.org/" rel="nofollow noreferrer">Continuum</a> or <a href="http://jenkins-ci.org/" rel="nofollow noreferrer">Jenkins</a></li>\n<li>issue tracking: <a href="http://trac.edgewall.org/" rel="nofollow noreferrer">Trac</a>, <a href="http://www.bugzilla.org/" rel="nofollow noreferrer">Bugzilla</a>, <a href="http://www.countersoft.com/" rel="nofollow noreferrer">Gemini</a> (if it must be .NET and free-ish)</li>\n</ol>\n\n<p>Don\'t forget automated testing with <a href="http://www.nunit.org/" rel="nofollow noreferrer">NUnit</a>, <a href="http://fit.c2.com/" rel="nofollow noreferrer">Fit</a>, and <a href="http://watin.sourceforge.net/" rel="nofollow noreferrer">WatiN</a>.</p>\n'}, {'answer_id': 15045, 'author': 'Jon Dewees', 'author_id': 1365, 'author_profile': 'https://Stackoverflow.com/users/1365', 'pm_score': 0, 'selected': False, 'text': '<p>A good issue tracker that was relatively inexpensive was <a href="http://axosoft.com/products/ontime.aspx" rel="nofollow noreferrer">axoSoft OnTime</a>. I used it for years before getting MS TFS.</p>\n\n<p><a href="http://nant.sourceforge.net/" rel="nofollow noreferrer">Nant</a> and <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET" rel="nofollow noreferrer">CruiseControl</a> are staples of my environment.</p>\n'}, {'answer_id': 15050, 'author': 'Keith', 'author_id': 905, 'author_profile': 'https://Stackoverflow.com/users/905', 'pm_score': 0, 'selected': False, 'text': '<p>I don\'t think you really need obfuscation on .Net any more (<a href="https://stackoverflow.com/questions/2525/best-net-obfuscation-toolsstrategy">see another response</a>) </p>\n\n<p>I wouldn\'t consider Vault, SVN is really the market leader at the moment (and free). Git is looking pretty promising but currently is command line only with a steep learning curve.</p>\n\n<p>MSBuild beats NAnt for .Net 2 or 3.5</p>\n\n<p>CC.Net is excellent.</p>\n'}, {'answer_id': 15064, 'author': 'James A. Rosen', 'author_id': 1190, 'author_profile': 'https://Stackoverflow.com/users/1190', 'pm_score': 2, 'selected': False, 'text': "<p>My engineering stack:</p>\n\n<ol>\n<li>Git (I love GitHub, but Git doesn't require a hosted solution)</li>\n<li>Rake</li>\n<li>CruiseControl.rb</li>\n<li>FogBugz</li>\n</ol>\n\n<p>No doubt these choices are influenced by my development stack, which most often includes Ruby, Rails, SQLite, Firefox, and OSX.</p>\n"}, {'answer_id': 15072, 'author': 'Jeff', 'author_id': 1650, 'author_profile': 'https://Stackoverflow.com/users/1650', 'pm_score': 0, 'selected': False, 'text': '<p>*4) <a href="http://www.redmine.org/" rel="nofollow noreferrer" title="Redmine">Redmine</a></p>\n\n<p>I recommend <a href="http://bitnami.org/stacks" rel="nofollow noreferrer">Bitnami</a> for testing out different stacks.  It\'s got Trac, Redmine, and Subversion, as well as several other unrelated ones.</p>\n'}, {'answer_id': 15077, 'author': 'Jon Bright', 'author_id': 1813, 'author_profile': 'https://Stackoverflow.com/users/1813', 'pm_score': 1, 'selected': False, 'text': "<p>I don't have any tools to suggest, but I do have a suggestion about the daily builds.  I always answer yes to that question, even though we don't have daily builds.  Instead, we do a build every time someone does a commit.  We thereby catch any problems almost immediately.  If any of our projects ever has enough LOC that building takes more than trivial time, doing this will also gracefully degrade in the direction of a daily build.</p>\n"}, {'answer_id': 15080, 'author': 'Dale Ragan', 'author_id': 1117, 'author_profile': 'https://Stackoverflow.com/users/1117', 'pm_score': 2, 'selected': False, 'text': '<p>You may want to look at an existing question of mine for <a href="https://stackoverflow.com/questions/11857/what-do-you-use-as-a-good-alternative-to-team-system">finding an alternative to Team System</a>.  There are plenty of recommendations in there also.</p>\n'}, {'answer_id': 15161, 'author': 'Zack Peterson', 'author_id': 83, 'author_profile': 'https://Stackoverflow.com/users/83', 'pm_score': 0, 'selected': False, 'text': '<p>Check out these articles on Continuous Integration using MSBuild, CruiseControl.NET, FxCop, NUnit, NCover and Subversion...</p>\n\n<p><a href="http://dotnet.org.za/cjlotz/archive/tags/ContinuousIntegration/default.aspx" rel="nofollow noreferrer">From the software development trenches</a></p>\n'}, {'answer_id': 15362, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': "<p>I'm currently using SVN but I've generally had a lot or problem with checkouts to a network drive on a dev server. There tend to be locking issues that require a lot of fishing around to fix. It may be that using the WebDav access method, would ease some of these problems, but I haven't experimented yet.</p>\n\n<p>Any of Bugzilla, Trac or Fogbugz will help you with your bug tracking, and each offer an export feature, so you can always change your mind later on. Also, if you can get your team to fully buy in, time management software can also be handy for post-mortems, etc (if everyone is motivated to fully participate.</p>\n"}, {'answer_id': 15427, 'author': 'Rob Oxspring', 'author_id': 1867, 'author_profile': 'https://Stackoverflow.com/users/1867', 'pm_score': 2, 'selected': False, 'text': "<p>My preferred stack:</p>\n\n<p>1) Subversion. I'm intrigued about distributed source control but haven't had chance to try any in anger yet. For a centralized solution svn is rock solid.</p>\n\n<p>2) Ant. Maven is a joy to use when it's working but as an old ant hacker I find maven to be hard to follow once things go wrong. </p>\n\n<p>3) Hudson. Not been mentioned so far but definitely worth investigating. Incredibly usable and actively maintained tool. PreviousLy we paid for Anthill Pro which seemed flakey and was painful to fix each time it screwed up. </p>\n\n<p>4) We pay for jira. Not cheap but much more usable than the open source options we looked at and very flexible too.  </p>\n"}, {'answer_id': 16744, 'author': 'colivier', 'author_id': 1999, 'author_profile': 'https://Stackoverflow.com/users/1999', 'pm_score': 0, 'selected': False, 'text': '<p>For build automation and continuous integration take a look at <a href="http://www.jetbrains.com/teamcity/" rel="nofollow noreferrer">TeamCity</a> from <a href="http://www.jetbrains.com" rel="nofollow noreferrer">Jetbrains</a>.</p>\n\n<p>It has a lot of <a href="http://www.jetbrains.com/teamcity/documentation/featureMatrix.html" rel="nofollow noreferrer">features</a> and is really a breeze to set up and use.</p>\n\n<p>If you use Visual Studio 2005/2008 it will build your solution directly without the need for extra scripts (if a build is all you want.)</p>\n\n<p>It will also execute your unit tests and gather stats on build success, unit test execution times, etc, etc.</p>\n\n<p>Best of all: The Pro edition is free for teams with up to 20 users and 3 build agents.</p>\n'}, {'answer_id': 904897, 'author': 'Jonas Kölker', 'author_id': 58668, 'author_profile': 'https://Stackoverflow.com/users/58668', 'pm_score': 2, 'selected': False, 'text': '<ol>\n<li>Git</li>\n<li>Make</li>\n<li>Cron</li>\n<li>Trac</li>\n</ol>\n\n<p>I\'m a man of few syllables ;-)</p>\n\n<p>Be sure to use some kind of version control where developers can easily create private branches willy-nilly, then take their private branch and squeeze it into a single commit on the main branch.  That way, individual developers---as opposed to the organization---can get the benefits of version control without polluting anyone else\'s code (and slowing down their work) with broken commits.</p>\n\n<p>This feature is what I like about git.  I think it\'s only really present in distributed version control systems; using a DVCS doesn\'t mean you actually have to do distributed development, though.</p>\n\n<p>Regarding one-step building, make is the default build tool and it works quite well for most tasks.  I\'d go with that unless you have a good reason not to.</p>\n\n<p>You want daily builds, put the build command in your cron.daily.  Set up a procmail hook to handle the mail from cron if need be.</p>\n\n<p>For bug tracking, use <code>$(apt-cache search bug tracking)</code>.  Basically, as long as it says "bug tracker" on the box and you know other people are using it, it\'s probably going to work fine.  Among the regulars are bugzilla, mantis and trac.</p>\n'}, {'answer_id': 964550, 'author': 'chrmue', 'author_id': 111069, 'author_profile': 'https://Stackoverflow.com/users/111069', 'pm_score': 0, 'selected': False, 'text': '<ol>\n<li>source control: cvs</li>\n<li>build gnu make</li>\n<li>cron job that calls bash scripts</li>\n<li>bugzilla</li>\n</ol>\n'}]
['https://Stackoverflow.com/questions/15024', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1795/']