一、引言
二、成败
三、作好充分的准备
四、完美与放弃
五、关于交流
六、整合与测试
七、留住激情
八、确立目标
九、结束语
一、引言
经过两个多月的艰苦熬战,我惊奇的发现我们的系统竟然可以良好的运行,而且完成了需求里所有的功能;虽然并没有完全按原计划完成,但仍可以说:“我们创造了一个神话!”
这段日子每个人都很辛苦。我们日落而作,日出而息;吃方便面,炒鸡蛋;24小时在电脑旁边……这不正是我们曾经梦想的生活么?辛苦的日子总是令人回味的,让我们一起回味这段永生难忘的日子吧。
二、成败
我们把这块骨头啃下来了,就是我们的成功;我们为最终的成功迈出了第一步。当然,我们还有很多不足的地方。成功还是失败,很难下一个具体的定义。不以成败论英雄,不拿胜负谈输赢。重要的是我们能从这次项目开发中学到什么。
如果要指出项目的成功之处,“需求分析”算一个,详尽明确的需求分析为设计和开发明确了方向;失败的地方主要应该在协作开发上,否则我们可能会更早的完成任务。
虽然我们这里有些人在一起合作过,但对于整个团队来说我们是第一次合作,算做一次尝试,我们应该从中吸取经验教训,找到一条适合我们发展的道路。下面把项目中遇到的,我想到的,结合《人月神话》中谈到的一一列出来与大家一起讨论。
三、作好充分的准备
毛主席说:“不打无准备之战。”
我们的这一战作了充分的准备。接到客户的“需求说明书”后便着手分析哪些是可行的,哪些是不可行的。经过多次的协商,终于得到了一份双方都认可的《需求分析说明书》。与此同时对项目中必须要完成的技术进行研究,抢得了时间。
四、完美与放弃
在《人月神化》中有一段被截取,称为“程序员的苦与乐”,在网上广为流传。brooks大师用简短的篇幅,描绘出整个程序世界的苦与乐。在这次项目开发中,有两个苦恼体现的比较明显。
一是追求完美。“因为计算机是以这样的方式来变戏法的:如果口语中的一个字符、一个停顿,没有与正确的形式一致,魔术就不会出现(现实中,很少的人类活动要求完美,所以人类对它本来就不习惯)。实际上,我认为,学习编程最困难的部分,是将做事的方式向追求完美的方向调整。”
看来我再次做出了正确的选择,我是个追求完美的人,而且我也一直认为程序员就应该有这种本性。在写程序的时候,甚至对一个变量名我都要反复斟酌,直到选择一个我认为可以表达这个变量的意义的。我并不认为这是在浪费时间:一是有助于对程序的理解和维护,好的程序本身就是注释;二是减少错误发生的可能。这次开发因为时间短,我尝试采用设计->编码->编译的方式来写程序,经常把一个几千行代码的模块写完之后才开始调试。效果不错,因为对设计考虑的比较充分,基本上都是一些拼写上的错误。不过有一个错误却另我苦恼了很久。因为一个结构的成员变量名与函数参数的变量名一样,而这个参数又在多处使用,写的时候,也可能是拷贝代码的时候,很容易把结构名给忘记或多加了一个结构名,而这时又不会有语法上的错误。吸取了这次教训,我把整个程序检查了一便,并做了一些修改。这段程序我参考的一位大师的原型,令我欣慰的是,他的下一个版本和我的程序做出了同样的一些修改。
另一个“苦恼来自设定目标、供给资源、提供信息。编程人员很少能控制工作环境和工作目标。”后面章节又提到“结构师获得了所有的创造发明的快乐,剥夺了实现人员的创造力”。“实现同样是一项高级的创造性活动。具体实现中创造和发明的机会,产东会因为指定了外部技术说明而大为减少,相反创造性活动会因为规范化而得到增强,整个产品也一样。”程序员要学会放弃一部分乐趣,整个项目也一样,这是我读《人月神化》感触最深的一点。
文章来源于领测软件测试网 https://www.ltesting.net/