开发人员的显著特点之一即他们趋向于密藏信息。晓人所不晓的能力常常引起错误的优越感。相反,分享信息则有助于团队扩充知识。另外,随着其他团队成员的加入,分享的信息还可得到改进。最后,当你向另一个或一组开发人员解释一个观念或理念时,你的知识也得到扩充。
团队合作精神是Agile Software Development之类运动的驱动力。另外,许多团队利用同行代码评估(peer code reviews),即开发人员对其他开发人员的代码进行审查及评论,这种方法促进了双方的学习与理解。
3.忽略代码注释
给自己的代码加注释是一个简单而直接的方法,但为什么大家总是忽略这一点呢?一些开发人员错误的认为减少文件证明(任何形式的)能够改善工作安全。这与前面讨论过的独占信息一样,是一种谬误。
少量合理安排的注释能大大改善代码的可读性,并方便代码的管理。现在有一种过于使用注释的趋势。基本上来说,这些注释应对代码、变量、方法等作一简要描述。许多团队在对代码作出修改时喜欢插入注释。当(如果)出现问题,我们容易找出以前做过哪些修改。
4.没有看到版本控制系统的价值所在
大多数开发人员都十分熟悉这种情形:你推出一个重要网络应用的新版本,第二天一大早你的手机就响个不停,里面满是网站问题的叫声。
只要你愿意承认你可能犯过一两个错误,在这种情形下版本控制系统就是你最好的朋友。通过使用版本控制系统如CVS, IBM Rational ClearCase, 和Microsoft Visual SourceSafe,你就可以轻易地还原到以前版本的应用软件并进行生产。这让你有时间在生产地点已经准备好的情况下在开发环境中找出问题所在。这种方法比通过搜寻生产代码来找出问题要优越得多。
另外,源控制系统允许不同的团队成员同时开发相同的代码。当开发人员检查对系统所作的修改时,这些改变就结合起来。
一些开发人员不喜欢版本控制系统的原因之一是因为它给开发过程增加了一个步骤,这意味着向源控制系统提交代码并通过它来恢复代码的过程要减慢。这个额外等待的时间打击了一些开发人员的耐心。
5.认为所有项目都需要网络服务
由于对网络服务的过分宣传,许多开发人员认为在开发项目时必须以某种形式用到网络服务。尽管在开发过程中使用网络服务可能是必要或是恰当的,但并不是完全可能。你需要分析不同的情形,以决定是执行网络服务是否恰当。例如,另的技术如remoting可能更为恰当。
6.忽视了确认数据的重要性
在应用代码中,数据以不同的形式进行处理。因为这一原因,开发人员应该在开发过程中确认数据的完整性与有效性。这就是说,数据要通过可返回零字符的终端数据库读取。在执行前,就对数据进行检查,因为大多数的操作中都不能使用零值。