Tools to help a small shop score higher on the “Joel Test”我认为Joel测试中的问题1至问题4与正在使用的开发工具和为开发人员提供的支持系统有关: 我很好奇,对于没有大型银行帐户可用来对这些问题做出肯定回答的小型开发商店,有哪些免费/廉价(但很好)的工具存在。 对于源代码控制,我知道Subversion是一个很好的解决方案,如果您是一个单一商店,甚至可以使用SourceGear的Vault。 我将NAnt用于较大的项目,但尚未设置脚本来构建我的安装程序以及运行混淆工具。还有其他建议吗? 如果您可以在一个步骤中对建筑物做出肯定的回答,我认为创建每日构建会很容易,但是您建议使用哪些工具来自动化那些每日构建? 对于一个或两个人的团队,已经在SO上进行了讨论,您可以使用FogBugz On Demand,但是对于小型团队还存在哪些其他错误跟踪解决方案? 不要忘记使用NUnit,Fit和WatiN进行自动化测试。 1)颠覆 2)蚂蚁/ Maven 3)连续体 4)Bugzilla / Trac 我的首选堆栈: 1)颠覆。我对分布式源代码控制很感兴趣,但是还没有机会尝试一下。对于集中式解决方案,svn坚如磐石。 2)蚂蚁。 Maven工作时会很高兴使用,但是作为老蚂蚁黑客,我发现一旦出现问题,Maven很难追随。 3)哈德森。到目前为止尚未提及,但绝对值得调查。难以置信的实用性和积极维护的工具。 PreviousLy我们为Anthill Pro付了钱,它看起来有些脆弱,每次拧紧时都很难修复。 4)我们支付吉拉。它并不便宜,但比我们研究的开源选项更有用,而且非常灵活。 我是一个只有几个音节的人;-) 确保使用某种版本控制,使开发人员可以轻松地创建私有分支,然后选择其私有分支并将其压缩到主分支上的单个提交中。这样,与组织相对的个人开发人员(而不是组织开发人员)可以获得版本控制的好处,而不会因提交中断而污染其他任何人的代码(并降低他们的工作速度)。 我喜欢git的这个功能。我认为它仅在分布式版本控制系统中才真正存在。但是,使用DVCS并不意味着您实际上必须进行分布式开发。 关于一步构建,make是默认的构建工具,它对大多数任务都非常有效。除非您有充分的理由不这样做,否则我会同意的。 您需要每日构建,请将构建命令放在cron.daily中。如果需要,设置procmail挂钩来处理来自cron的邮件。
对于错误跟踪,请使用 您可能希望查看我现有的问题,以找到Team System的替代方案。也有很多建议。 我的工程堆栈: 毫无疑问,这些选择受我的开发堆栈的影响,开发堆栈通常包括Ruby,Rails,SQLite,Firefox和OSX。 我没有任何建议的工具,但是我确实有关于日常构建的建议。即使我们没有每日构建,我也总是对这个问题回答是。相反,每当有人进行提交时,我们都会进行构建。因此,我们几乎立即发现了任何问题。如果我们的任何项目的LOC足以使构建花费的时间不多,那么这样做也会朝着日常构建的方向优雅地降级。 对于构建自动化和持续集成,请查看Jetbrains的TeamCity。 它具有很多功能,并且设置和使用起来非常容易。 如果您使用Visual Studio 2005/2008,它将直接构建您的解决方案,而无需额外的脚本(如果只需要构建)。 它还将执行您的单元测试,并收集有关构建成功,单元测试执行时间等的统计信息。 最好的是:Pro版本对于拥有20个用户和3个构建代理的团队是免费的。 我目前正在使用SVN,但通常对开发服务器上的网络驱动器结帐有很多问题。往往存在锁定问题,需要大量研究才能解决。也许使用WebDav访问方法可以缓解其中的一些问题,但是我还没有进行过实验。 Bugzilla,Trac或Fogbugz中的任何一个都可以帮助您进行错误跟踪,并且每个都提供导出功能,因此您以后随时可以改变主意。另外,如果您可以让您的团队完全参与进来,那么时间管理软件也可以方便地进行事后调查等(如果每个人都有积极参与的动力)。 查看有关使用MSBuild,CruiseControl.NET,FxCop,NUnit,NCover和Subversion进行持续集成的文章... 从软件开发战es * 4)Redmine 我建议使用Bitnami测试不同的堆栈。它有Trac,Redmine和Subversion,以及其他几个不相关的。 我认为您真的不再需要对.Net进行混淆(请参阅其他回复) 我不会考虑Vault,SVN目前确实是市场领导者(免费)。 Git看起来非常有前途,但是目前只有陡峭的学习曲线才是命令行。 MSBuild击败.NET 2或3.5的NAnt CC.Net非常好。 一个相对便宜的好问题跟踪工具是axoSoft OnTime。在获得MS TFS之前,我已经使用了多年。 Nant和CruiseControl是我的环境的主要内容。 |