基础构建的必要性

工作思考 by 达达 at 2007-10-30

    我曾建议在团队手头的这个项目中引入“每日构建”(Daily Build)和单元测试等手段,来保证项目的质量。团队成员的普遍意见是每日构建对我们目前的项目并没有什么作用,另外无形中又增加了开发的工作量。既然大家都一致这么认为,那我也不能强求大家去做。

    不过我对这些基础构件的想法还是有所保留的,因为我们的项目是需要长期维护的,而且质量对一个产品来说也是非常重要的。 所以我想接下来的项目还是应该尝试把每日构建和单元测试规则等项目的基础构件做好。

    今天看了《移山之道--VSTS软件开发指南》的其中关于基础构建的一段模拟对话,觉得其中的比喻用得很好。在这里跟大家分享下。     作者把项目的基础构件比喻成建房子时搭的脚手架。就算项目再紧,建房子的师傅也不会随随便便搭脚手架,或者不搭脚手架的。因为脚手架没搭好,楼盖高了万一脚手架塌下来就出人命了,没搭脚手架那更不可能建房子了。

    同样道理,软件开发项目的脚手架就是基础构件,如果这个脚手架随随便便搭,那项目同样会很难走的长远。所以,以时间紧或者增加任务,这些理由来拒绝做基础构件工作,是站不住脚的。

    另外作者在书中将开发人员和建筑工匠做类比。如果一个不会搭脚手架或者脚手架搭不好的工匠,工头会敢要吗?所以,搭建基础构件是开发人员应具有的基本素质之一。

    每个开发人员都会安装和使用IDE,这就算是懂得搭建基础构件了,IDE当然是开发中必不可少的基础构件了,当然,不排除某些牛人用编辑器+SDK,但是这也算是简单的IDE了。有了IDE,开发人员就可以开发东西了。但是如果这个项目要走得更远,搭建一个版本控制器就成了必不可少的。如果这个项目要保证质量,那引入单元测试等测试机制也要列入考量....不同规模的项目有不同的基础构件选择,就如同建不同规模的楼房,需要不同的脚手架...如果你搞个狗屋,那脚手架就不必了,有材料,工具和灵巧的手就可以。

    为你的项目选择什么样的基础构件,就在于你对项目的看法了。我希望大家都能实事求是的分析自己项目的情况,然后选择正确的基础构件。不过除了实事求是外...我还建议大家对自己的要求能高一些,作为对自己的一种挑战和锻炼 :)