《程序开发心理学》读书笔记

如题所述

第1个回答  2022-07-15
作为一本与计算机有关的图书,在1971年初次出版之后,能够经过45年仍然保持活力,不能不说它是一本神奇的书。“本书开创了一个新的领域,即将程序开发作为一种人类行为来看待,而不仅仅是与硬件、软件相关。” 45年来,虽然计算机软硬件技术在飞速地更新换代,但人类作为程序开发的主体,人类的心理状态和行为模式与45年前并没有太大的不同。因此本书作者温伯格先生45年前的诸多真知灼见如今依然适用。又由于20年前出版银年纪念版的时候,作者没有直接修改原书,而是在保持原貌的基础上增加评注,让我们可以更真切地看到在开始的25年间,软硬件技术进步和管理知识积累给程序开发的各方面带来的或多或少的影响。

我猜有两类人大概会喜欢这本书:第一类是有一些开发经历,喜欢观察、思考并愿意尝试改善开发过程的程序员;第二类是程序员出身转而从事开发管理工作,同样喜欢观察、思考并愿意不断尝试对开发过程做出改善的技术主管。此外,我非常希望其他管理层的主管们也能来读一读这本书,对软件开发的过程及组织能够有更多的了解,不过书里吐槽管理层的地方有点儿多,只怕他们就算勉强来读了也不见得喜欢。

另外在序言中,温伯格先生提醒读者:

这个要求其实适用于读任何书。

本书从 1、作为人类行为的程序开发;2、作为社会行为的程序开发;3、作为个人行为的程序开发;4、程序开发工具 四个方面进行了阐述。

本篇前两章 阅读程序 和 优秀程序的要素 尝试将程序开发看成一项以人为主体的行为加以研究,并论述了进行这种研究的可行性和必要性,第三章 如何研究程序设计 则从人类行为学和心理学研究方法的角度进一步讨论了对程序开发进行研究的可行性。

(作为一名程序员,阅读本书的乐趣与收获更多来自温伯格先生随意挥洒的各种经验之谈。每章结尾的小结、思考题和本章评注,也是值得多花费些时间和精力的部分。)

思考题:

除了回答问题,我们还能从思考题中看到什么呢?哪些作者提出的问题经过这四十多年已经被很好的解决了?哪些问题目前仍然继续存在呢?哪些问题在良好管理的团队里已经不再是问题,而在管理不善的团队中仍然存在呢?

本章评注:

45年之后,情况依旧。

在温伯格先生写作本书的45年前,效率主要指程序在计算机中的运行效率,在硬件性能已经翻天覆地的今天,把“效率”这个词理解为软件的开发效率,这段话同样成立。

思考题:

 

本篇主要从社会行为角度对程序开发进行研究,温伯格先生把程序员集体分成三种类型:程序开发组、程序开发团队和程序开发项目,并用三章的篇幅来依次讨论。

我理解,这里的程序开发组指的是一种自发形成的带有互助性质的最小型的松散组织,它有可能跟正式的组织结构重合(最理想状态,可以极大提高整个组织的开发效率和产品质量),但更多情况下会是一种非正式的结构。小组成员有可能是同事或者前同事、也可能是技术讨论组中正在进行类似的开发工作的网友,而后一种情况也有可能通过换工作转变成前一种情况。成员们乐于把工作和学习中碰到的问题拿出来互相讨论,互相帮助查找问题,取长补短,相互学习,共同进步。技术主管应该致力于把自己领导的团队变成一个这样的开发组。

程序开发团队则是一个正式的组织结构,程序员们被组织到一起来完成一项必须多人协作才能完成的任务。

程序开发项目是进一步扩大的组织,它由多个团队组成,一起完成一项复杂的、可分割的大型项目。随着组织的扩大,程序开发项目主管会遇到更多的组织管理问题,甚至一些社会性问题。

为提高开发的效率与质量,程序员需要避免唯我独尊式的心理,克服认知失调。温伯格先生提出了“无私式程序开发”。

关于绩效评价,温伯格先生举了一个逐层汇报系统的例子。

在探讨了程序开发中人类作为主体的共性问题之后,本篇开始讨论具体程序员的个体偏差。我感觉这部分没有前面两篇精彩,尤其是与性格理论相关部分,温伯格先生在评注中也表示,如果要在25年后重写这本书的话,这一部分将是改动最多的。

在谈到业余程序员与专业程序员时,温伯格先生说:

对照自己前些日子的工作,创造性交流是我目前十分欠缺的。

本篇中温伯格先生花了很多篇幅讨论语言问题。我对此不感兴趣,因此略过。

结语的最后一段我很喜欢,摘录于此:
相似回答