《人月神话》阅读笔记(2)
在很多方面,管理一个大型的计算机编程项目和其它行业的大型工程很相似——比大
多数程序员所认为的还要相似;在很多另外的方面,它又有差别——比大多数职业经理
所认为的差别还要大。这是《人月神话》第一版序言的第一段话,这段话可以说是对软
件项目的管理特征进行了一个总体的概括。
过去几十年的大型系统开发就犹如一个焦油坑,很多优秀的程序员在这其中挣扎,各
种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。一个单独
的问题看起来并没有那么糟糕,但是当他们缠绕在一起,团队的进度越来越缓慢,问题
的本质更加捉摸不透,但是为了解决问题我们必须先理解它。因此,作者接下来介绍了
编程的乐趣与苦恼。
职业的乐趣
作者将职业的乐趣的来源分为五种
第一是一种创建事物的纯粹快乐。这种快乐是上帝创造世界的折射,一种呈现在每片
独特、崭新的树叶和雪花上的喜悦。
第二快乐来自于开发对其他人有用的东西。内心深处,我们期望其他人使用我们的劳
动成果,并能对他们有所帮助。
第三是整个过程体现出魔术般的力量——将相互啮合的零部件组装在一起,看到它们
精妙地运行,得到预先所希望的结果。
第四是学习的乐趣,来自于这项工作的非重复特性。人们所面临的问题,在某个或其
它方面总有些不同。因而解决问题的人可以从中学习新的事物:有时是实践上的,有
时是理论上的,或者兼而有之。
第五:乐趣还来自于工作在如此易于驾驭的介质上。程序员,就像诗人一样,几乎仅
仅工作在单纯的思考中。
作为一个程序员不得不说能够创建事物,开发对其他人有用的东西,灵活组合,不重
复任务可以不断学习,易于驾驭使用确实是编程的极大乐趣了。当然这个职业同样有
着自己的苦恼。
职业的苦恼
作者将职业的苦恼分为
第一:必须追求完美。因为计算机也是以这样的方式来变戏法:如果咒语中的一个字
符、一个停顿没有与正确的形式一致,魔术就不会出现。
第二是由他人来设定目标,供给资源,提供信息。编程人员很少能控制工作环境和工
作目标。用管理的术语来说,个人的权威和他所承担的责任是不相配的。
第三——概念性设计是有趣的,但寻找琐碎的 bug 却只是一项重复性的活动。
第四——当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得
陈旧过时。可能是同事和竞争对手已在追逐新的、更好的构思;也许替代方案不仅仅
是在构思,而且已经在安排了。
将做事方式调整到追求完美,其他人会设定一些自己 无法控制的事物,真正权威是
每次任务的完成,创造性活动伴随了枯燥的艰苦的劳动、越接近完成越要命(或者说
收敛过慢)、容易因为自己开发的产品因为环境的进步而显现的老旧。
这,就是编程。一个许多人痛苦挣扎的焦油坑以及一种乐趣和苦恼共存的创造性活动。
当然,我想对于大多数人而言,乐趣应该是大于苦恼的