软件开发的“佛脚”

来源:百度文库 编辑:神马文学网 时间:2024/05/23 14:02:58
独木不成林。一个项目组有1~2个高手,也很难保证整个项目组的成功。一般来说,水平越高,负责的任务往往也就越多越重,要他们在工作之余挤时间指导其他成员、像检查作业一样的检查其他人的代码是不现实的。而等到问题真正出现了再去解决、规避、重构代码,早已经为时已晚了。代码紊乱程度就像熵一样只会增加不会少的,如果不在早期阻止代码往不良方向发展,代码就会越来越烂,最终导致产品的可靠性没有保证。因此,项目成功的关键因素之一就是要缩小项目组成员间的“贫富”差距,水平越相近,价值观就越统一,也就越容易实施管理策略,制定的规则就越容易被所有成员认同。对此,我的建议是,把培训重点放在帮助中下技术水平的成员提高基础技能、构架认识、全局观、软件工程理念上;而对于水平较高的成员,适当地规范其开发过程中的行为,略加引导就可以了。项目组地平均水平提高了,整个项目组的开发能力就上去了。
以往我推荐的书都是纯粹提高技术能力的,并不能有效的提高其全局观、软件工程理念。不可否认的是,每个项目组都会存在这样一些“高手”,他们debug能力很强,但是缺不愿遵守编码规范、不认同流程规范;他们把重点放在技巧编码方面,而从来没考虑文档和代码是写给别人看的,也从来没有担心过孤立的代码会增加后期维护的成本和移交工作的成本。他们是属于瘸着腿跑也比一般人跑的快的人。(所以,瘸也就不用治了,他们是这么认为的。有的甚至根本不觉的自己瘸,只觉的自己跑的快) 我的看法是:这种人的代码杀伤力往往比低手还大。因为低手往往按部就班的编码,不敢挑战流程,低手也往往得不到编写核心代码的任务,所以低手的代码对整个工程造不成大的伤害。相反,编码意识如果不好,技术水平越高,其代码的危害就越大。编码不仅要提高技术水平,也好同时提高培养编码意识和大局观。
我曾极力向初涉软件开发的同事推荐下面三本书,收到了很好的效果:
《C程序设计语言(The C Programming Language)》Brain W.Kernighan & Dennis M.Ritchie 著 徐宝文 李平译
《Joel说软件(Joel on Software)》Joel Spolsky 著 谭明金 王平译
《程序设计实践(The Practice of Programming)》Brain WKernighan & Rob Pike著 裘宗燕译
三本都是价格不贵的小薄书,很容易看完。(为什么这么说?看过C++ Primer的都有体会,真是又厚又贵)第一本能够使读者达到胜任C开发工作的水平,一本小书容纳了语言、算法、模式、代码风格艺术的精华。第二本,以散文随笔的方式介绍了软件工程的思想,介绍了软件开发的理念,能够使读者的编码品德、设计品味提高。第三本,分别介绍了代码风格、算法、接口设计、排错方法、测试、性能优化、可移植性等诸多软件实践,作者水平极高,写的深入浅出,令人反复阅读反复受益。
这三本书组成了一个开发人员必备要素的铁三角。相信细细品味于小书的字里行间,思维就越来越受教于世界顶级的大牛,悟性、能力、修养都会不断提高。我衷心的希望初涉软件开发领域的朋友们能从这三本书入手,从白纸开始就写好每一个字。找工作或者搞突击时,临事抱抱佛脚,也不失为一种快速溶入优秀开发团队的捷径。
-------------
乾坤一笑 写于2006年06月22日  转载请标明出处和原文链接