您如何进行日常构建并努力实现零缺陷环境?这是否意味着在我杀死新代码中的所有错误之前我永远不会回家?或者它是否意味着我只是不检查我的代码,直到我完全测试它,这使代码有效地分支了更长的时间?
我是第一次与少数程序员合作(而不是单独工作,或者只与其他一个程序员一起工作),所以我只是第一次与这样的决定搏斗.我们应该采用软件开发流程吗?
简单:永远不要在代码中检查(已知)错误.这并不意味着您每天登记一次.在实施有意义的更改时签入,以便其他开发人员可以访问它.
我们总是在本地集成,对代码运行我们的测试,当所有通过时,我们都会检查.我在工作时每天检查大约20-30次.构建服务器获取更改,并针对系统运行构建.连续集成(CI)是一件好事.:d
从成功构建开始,尽可能保持这种方式.这在团队环境中至关重要.请记住,构建会破坏.预计他们会偶尔打破一次.这表明你无意中检查了一些不好的东西,并且你停止了你正在做的事情,使构建再次变为绿色.从未破坏过构建的构建服务器是一个警告标志!
我也同意chadmyers的回答:无论你决定什么,它都需要自动化和自动化.自动化工具为你做这种事情的最好的事情是你不再需要考虑它或记住这样做.或者像乍得说的那样,你不要停止这样做.我可以建议为CI工具提出建议,但请看一下:您使用哪些工具进行自动构建/自动部署?为什么?
一旦你拥有了CI,你可以通过引入一个破坏的构建令牌来注入一些幽默(和羞耻),从而获得更高的质量!http://ferventcoder.com/archive/2008/08/20/continuous-integration-enhancement--the-broken-build-token.aspx
.NET中的大多数人使用NAnt或MSBuild脚本来实现自动构建,以后可以将它们连接到CI服务器.如果你刚刚开始,我的建议是使用UppercuT,它是一个非常容易使用的构建框架,使用NAnt.这是第二个更深入解释的链接:UppercuT.
除非您仅为发布版本打开trunk(这意味着其他所有人都在与您在同一个分支中工作),否则您不必进行分支.但我会在主干和活动开发分支上都有CI.
另外,为了回答有关软件开发过程的问题,答案是肯定的.但除非需要进行大幅度的改变,否则不要急于做任何事情.选择要迁移的流程,然后慢慢开始采用流程.并评估,评估,评估.如果特定过程对您的小组不起作用,请确定您是否做错了或者只是需要消除它.然后呢.无论你最终需要什么过程都需要为你工作,否则它将无法工作.
是的,请采用软件开发流程.那里有各种各样的,我相信不止一个适合你的团队.即使是一个不完美匹配的东西也比没有任何过程好得多.
那么我的公司如何进行日常构建并努力实现零缺陷?我们在检查代码之前运行测试套件.对我们来说唯一的问题是我们的测试套件的完整运行时间超过72小时,因此我们在检入代码之前运行一组有限的单元测试.对于我们的夜间构建,我们运行一组测试,大约需要8个小时才能运行.然后在周末我们运行完整的测试套件.每个阶段都会遇到越来越多的问题,但是超过90%的问题都是在5分钟的开发人员测试中发现的,而夜间测试可能会超过98%.在他们向我们的客户出去并且需要花费很多钱来修复之前,这仍然会让我们很早就发现问题.