从接触GJB5000和CMMI的第一天起,我们就会接触这样一个名词——实践。
实践是什么?
我们都知道那句至理名言:
实践是检验真理的唯一标准。
在汉语词汇中,实践就是实际去做,就是履行的意思。
在GJB5000A中,实践意味着是软件行业中优秀的已经被证明有效的实际做法。
所以,GJB5000里的实践就是前人的经验。
这些实践之所以会出现,是因为我们在软件开发的过程中通常都会存在一些不好的习惯,而且这些坏习惯会严重影响软件开发的进程和软件产品的质量。实践的出现就是希望能够改变团队的工作方式,消灭掉这些坏习惯。
应用实践的目的就是要找到更好的做事方法,把软件团队从泥潭中解脱出来。
而随着软件工程的不断发展,这些优秀实践数不胜数。除了CMMI和GJB5000中已经列举的几百个实践之外,还有敏捷的若干个实践,还有各家软件公司自家的实践……人们很容易被淹没于实践之中。
你会使用用户故事或用例?用例用文字描述,还是用UML风格的可视化用例?你会把它们记录在文档中,还是钉到墙上?你会使用索引卡吗?用即时贴?还是用Excel电子表格?同样的信息,有数十种记录的方式可以使用。这都要看你的团队使用哪种方式最为顺手,正确的答案绝不止一种。
而且当胸尝试使用新的实践的时候,你的团队就会面临两个主要风险。
一个风险是实践本身可能没有价值,而推动这个实践的人对此一无所知。
毫无用处的进度报告会议就是一个最广为人知的例子。一般来说,开这样的会仅仅是为了让领导了解进展情况。难道领导不知道已经有软件管理平台记录了这样的信息,他只要登录上去,几分钟就可以搞明白的事儿,却偏偏让这些一线干活的儿人把手上事情都丢掉,耗费几个小时的时间来开会,而且还没有任何有效的产出。
第二个风险是某个实践确实很不错,但团队成员们却无法理解其意义,执行起来效果很差。比如代码走查实践。尽管程序员们都认为代码评审是个好主意,可是当你在他们的日程中安排上代码评审,他们就不满意了。就算真的做了代码评审,收效也甚微,因为参与者们对其价值并不完全相信,他们也不愿意努力投入到其中。结果就是每个人都认为代码走查没有效果,以后也就不再这么做了。
如果你希望在自己的团队中推行某个新实践,那就要做说服团队中每个人,让他们觉得这样做是值得的。特别是要让那些为此要耗费时间和精力的人知道推行这个实践能够带来哪些价值。
因为好的实践能够带来长期回报,但很多人确实对此不甚了解(特别是不用亲手写代码的人)。
总之,实践就是帮助团队克服坏习惯,找到适合自己的路,让团队成员以更好的方式来开发软件。
这正是:
实践克服坏习惯,开发过程得改善
引入实践有风险,认识价值并不难
参考文献:程序之美系列:团队之美、项目管理之美,Andrew Stellman,Jennifer Greene,Scott Berkun,机械工业出版社
联系客服