软件开发人员面对工期压力的正确打开方式
除了小白,具备一定开发经验的软件开发人员都知道基本的软件工程原则——代码编写完成之后要通过测试才能交付使用。可是,当面临工期压力的时候,你还能坚持那些本该坚持的正确的软件工程原则吗?
某单位在顺利通过了GJB5000的二级资质之后,单位做出了成立软件开发中心,将军用软件集中开发。交给软件开发中心开发的第一批软件有20多个,小李准备按照GJB5000体系的要求开展开发工作。可是,等他用了一个多月,刚组织几个软件进行完需求规格说明评审,系统方已经通知1个多月后软件产品要编写完成,参加系统联试。这样一来,软件开发就无法按照现有的体系进行下去。小李刚开始还想采取敏捷的方式,每天进行立会,掌控开发进度,可是开发人员抱怨没用时间,短短的几分钟也不来参加,软件的测试更没有人去做……小李请示了领导,领导说一定要保证交付系统进行联试的节点,没时间测试,只要软件运行起来就行。小李的第一次按照GJB5000管控软件开发的实验以失败告终。
这些开发人员不知道软件测试会减少软件Bug,减少软件在系统联试过程中出现问题的概率吗?当然不是!但是系统根本没有考虑软件开发周期,制定系统联试的时间并没有征询软件开发中心的意见,迟迟不下发软件研制任务书导致软件开发周期被大大压缩也没有征询软件开发中心的意见,领导不去争取软件开发周期,却要开发人员保证交付软件联试的节点,开发人员不这样做又能怎样?
面对压力,人总会作出一些妥协。
但是,这不是一个专业的软件开发人员应有的素质。
一个专业的软件开发人员应当在面对压力的时候仍然保持着高度的纪律性。就像面对装备精良、强大的敌人的志愿军战士。
软件开发人员的纪律性指的是即使面临再大的压力也要遵循那些行之有效的原则,比如评审、测试。
评审能够在软件开发早期发现需求、设计存在的缺陷,做好评审远比测试有着更高的缺陷去除效率和更低的缺陷去除成本。测试能够发现软件在异常情况下存在的缺陷,减少交付使用后软件出错的概率。这些都是已经被证明的优秀实践,即使工期再紧张都应该坚持去做。为了节省时间,可以在组织形式、相关产品样式上做裁剪,但评审、测试活动不能不做。
还有软件复用,代码审查……
越是工期紧张,这些优秀实践越不能扔掉。因为这些实践本来就有提高开发效率之能。如果你因为工期紧张,抛弃这些优秀实践,只想用最简单最直接的方法完成代码编写,那你只会陷入更大的麻烦之中。
这正是:
面对压力不要慌,优秀实践要用上
形式方式可裁剪,实践核心不走样
参考书目:代码整洁之道:程序员的职业素养,作者:(美)罗伯特 C. 马丁(Robert C. Martin),出版社:人民邮电出版社