《灯》的故事
《你的灯亮着吗?》(杰拉尔德.温伯格)下文简称为《灯》,说一些关于《灯》其它的故事。
1 似曾相识
想起来,大约还在大学时代就听说过“隧道尽头的灯”的故事,当时不曾想到,也想不到“隧道尽头的灯”《你的灯亮着吗?》其中的一篇。尽管听过、看过,但没有发现特别有用,当然也没有仔细的看,也没有认真的思考,只是当作一般的哲理故事听了,于是擦肩而过。
后来听到有很多程序员的文章中提过《灯》的时候,也没觉得有太大的新鲜。原因之一是《Java夜未眠》。《Java夜未眠》这本书影响比较广泛,以至于当时“夜未眠”的说法十分流行。不过对蔡学镛的其它几篇文章印象很深,如《程序与香鸡排》、《再论香鸡排》。应该说大部分程序员都看过,或者听说过。夜未眠自然要开着灯了,所以基本上两本书就归于一类了。《Java夜未眠》毕竟是谈论Java编程技术的书,由于个人工作中几乎用不到Java,所以那本书仅仅翻过一遍,后来还给同学就再也没有再看。
直到后来在一次培训中再次听到隧道尽头的灯的故事,讲师的讲解使我产生很大的疑惑。
2 隧道尽头的灯与客户焦点
在2007年底的一次培训中,再听到了隧道尽头的灯的故事。本次培训主要是讲解过程控制的一些知识。整个培训讲到内容很多,时间很仓促,讲师也讲的有声有色,不过记住的不多。这个故事出现在ISO9000/9901质量体系的章节之中,客户焦点是ISO质量体系中一个重要原则。
讲师引用到《隧道尽头的灯》的故事,听到这个故事笔者就有似曾相识的感觉。不过笔者的感觉是两者关系不大。之前在大学期间听着个故事时,笔者还远没有像现在重视严密逻辑思维,所以下来之后反复思考两者之间的联系,并促使对于《隧道尽头的灯》的研究,这就是《你的灯还亮着吗?》的由来。
客户焦点是一个企业质量体系的重要原则,但是“隧道尽头的灯”的故事,用意是对于问题的分析和解决,尽管隧道的有一个明显的客户,即司机。不过隧道所引发的问题不是说明设计者要认识并满足客户的焦点,实际上司机及乘客的焦点在日内瓦湖,因为修建隧道的起因是方便游客,即司机及乘客中大多数。隧道问题反映了在设计者立场解决问题的局限。这个故事牵涉了多个方面的因素,需要从复合的关联中找到问题的真正所在和解决问题的最好方法。这就是这个故事的寓意,而不是客户焦点。
本来打算给讲师提个建议删掉这个故事,一是这个故事很精彩,二是笔者也没有想到说明客户焦点的好的故事,加之工作中事务繁多,最后作罢。
3 巧合还是缘分?
隧道尽头的灯的故事促使我研究复合问题的解决方法,却不经意间发现了这个故事是《灯》的一章。于是在下载了几章,发现对于软件开发来说也非常有用。最终笔者买了一本,用两天的空袭时间就阅读完了它,讨论正是我长期思考而没有解决的问题。对于《灯》的最大感触是,多数观点竟不谋而合。“蓦然回首,她在灯火阑珊处”。《灯》的理论水平和体系完善程度远高于笔者来至于实践得出的经验。当然没有实践的积累也不会深刻感受《灯》的重要价值。“隧道尽头的灯”的故事的再次出现也许是一个巧合,不过对于软件工程问题特别是对于设计和实现的思考应该说与《灯》有解不开的缘分。
在软件开发过程中的诸多问题,如:软件过程、设计与实现、维护等等,都具有复合问题的特征,而《灯》为之提供了思考的方法和方向。
《灯》是讲述问题解决的书籍,其要旨是发现问题的真正所在。不过《灯》的意义不限于此,问题的定义、问题的分析、发现问题的真正所在和问题解决,反映人们对于问题的认识和解决的一般规律。
4 后话
这本书给予笔者很大的帮助,推荐各位读者认真阅读这本书。
一个有趣的事,很多人都用的书名《你的灯还亮着吗?》,实际上是《你的灯亮着吗?》。耐人寻味!