《人件》读书笔记

《人件》读书笔记

前言

软件系统的主要问题不在于技术,而在于社会性因素

实际上读到这句话的时候,我已经明白了这本书的主旨,它与《人月神话》中所讲述的核心观点实际上是一致的。

我们回到《人月神话》中第一章所引出的那一个问题:

为什么我们的项目看起来好像没有问题,实际上却出现了这么多的问题

实际上上述观点便是这个问题的回答:软件工程的本质问题不在工程本身。什么叫“社会性因素”,我们也可以对《人月神话》中《没有银弹》里最核心的结论进行一个回顾

软件开发中困难的部分是规格说明、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼真程度进行验证。

人的困难

我认为,开发过程里最根本的困难还是“人”的困难。而“人”的困难是不可能被解决的。就像一个国家有再先进的社会制度,再高的国民素质教育,你还是可能看到有人闯红灯,排队不遵守规则——只要涉及到人,它就还会涉及到社会学课,心理学科,管理学科。这些显然不只是单纯的软件工程领域就能简简单单说清楚的问题。

对于一般的工程而言,事实上没有难管的事情。无论多难管的事情,都可以进行拆分,当规模拆的足够小,我们就能够在一个小的范围内解决一个小问题,进而解决大的问题。但是人不一样,对人进行管理实际上是非常难的一种活动。

软件开发本身,实际上和雕塑,画画这类艺术创造过程,并没有什么本质的区别。因为都是给定既定工具(画笔,锤子,现代编程语言),然后进行创造的智力活动
既然是智力活动,本身它就是无法被描述成一个“工程”的。
工程在某种意义上而言,它讲究的是一种:只要你有这样的知识,不管谁来做,都能够按流程完成这件事。比如说,化学里生理盐水的配置,只要我们遵守配比,得出来的结果都是一样的
但程序显然不是,同一个功能,即便最终的实现一样,写出来的代码也天差地别。虽然在短时间内看不出来,但是代码质量会影响可扩展性,可读性。
比如读取数据库的功能,是否采用工厂模式,可扩展性修改性是截然不同的。

开发者之间的交互

而软件开发中还一定会涉及到“代码艺术家”与“代码艺术家”之间的合作与交互。试想一下,如果彼此之间性格不合,那么很难以开展合作,做出来的软件自然也无法保证质量;但反过来说,如果团队里大家都是一个类型的人,没有一个多元化的团队,那么这个团队一定会缺少某种特质,做出来的软件自然也是如此。比如设想一下,如果一个团队里全是完美主义的开发者,那这个项目大概率是糟透了——大家都在吹毛求疵,没有人真正关心整体的软件到底变成了什么样子。

一-管理人力资源

我们研究的绝大多数失败项目中,没有一个是因单纯的技术问题导致失败的。

对于如何对开发中的人力资源进行管理,我抽取了其中最有启发意义的几个观点。

错误在所难免

我们必须容许团队和别人犯错,实际上这一点也普遍出现在我们的家庭教育中——不允许人犯错。

这样的场景实际上在我们的生活中很常见(经常就是我们自己):一个小学生,期末的英语考试拿了59分,被妈妈拿起扫把打了一顿。那么妈妈把孩子打了一顿,这个行为能让小孩学习更好吗?实际上完全没有帮助,甚至大多数情况是副作用。

孩子实际上只学会了一件事:考不及格会给妈妈打一顿。他学习的只有恐惧,而不是一个能改善现状的办法。这也像孩子小时候经常干的事情一样——把不及格试卷的分数改高。

这就是一个害怕失败的典型例子——不容许别人失败,并不会让被管理者做的更好。他们只会在犯错了以后,疯狂地找办法掩饰这个错误。

人力不是齿轮

人力不是齿轮,像我们给机械换零件一样,拿下来,放一个新的上去就好。事实上在人力资源管理领域,员工离职,工作交接,培训员工这些问题对公司造成的内耗已经有了很显然的结论。

如何管理最优秀的员工实际上是一门学问,书中说了一些例子,书中说管理者需要富有洞察力。我个人认为,更准确的表述应该是,管理者更需要一种胸怀。如同古谚所说的“宰相的肚子里能撑船”。如果你都不能容忍它,又如何能去管理他/她呢。

多花时间进行思考和学习

关于读书的统计结果让人尤为失望:以软件开发人员的平均水平为例,平均每人没有一本和工作相关的书,甚至没有阅读过一本相关书籍。这种现状让每一个重视质量的人心怀忧虑。对我们这些写书的人来说,简直就是一场悲剧。

我们在初高中的时候,最常听老师们说的一句话就是:你们一定要多总结,要有自己的错题本。

实际上虽然以前学的化学,物理,生物,到了今天可能不再有用——但是学习方法本身仍然对我们的生活工作有着指导意义。就像以前的错题本一样,它实际上是我们不断学习,实践,然后在实践中犯错后,进行总结回顾的一个产物。

放到软件开发这件事情本身而言,我们也需要不断地进行这样的实践——学习,实践,犯错,总结回顾思考,再学习,再实践。。。

西班牙理论

历史学家很早之前就抽象出了不同的价值理论:西班牙理论认为世界上的价值总量是定额的,因而财富积累的道路就是学会从大地或者别人的背上去攫取。另一种英国理论则认为,价值是通过智慧和科技创造出来的。所以,在英国人进行着工业革命的时候,西班牙人推动着他们的轮子来开发新大陆的土地并统治印第安人。他们越洋过海,将大量的黄金搬运回国,而他们的努力换来的却是通货膨胀(黄金太多,而可用商品太少)。

加班就像冲刺:跑马拉松跑到最后100码,体力还有剩余才算有意义。若一开始就冲刺,那你纯粹就是浪费时间。让人们过度冲刺,只能让大家失去对管理者的尊重。最优秀的员工在之前都经历过这种事:当管理者极力鼓吹工作必须在4月完成时,他们目光闪烁,明白此时应该保持沉默。然后,他们只要逮着机会就会补偿性地做与工作无关的事情,到最后,他们真正工作的时间还是每星期40个小时。最好的员工都会这样反应,其他不这样的全是工作狂。

其实从这两段话我们可以去回顾一下物理学里的牛顿第三定律——力的作用是相互的;以及能量守恒定律,实际上是一样的道理。没有无缘无故跑出来的时间,尤其在人与人的关系之间,你剥夺的东西,即便短时间内让自己受益了,但长此以往,实际上对于喜欢压榨的管理者而言,失去的比得到的更多。

管理者的艺术

管理者的作用不是让大家去工作,而是创造环境,让大家可以顺利开展工作

马云曾经说过一句话:“我的员工能力都比我强。”。其实我当时看到这句话非常诧异,如果老板或者管理者没有下属更强,如何能成就一家伟大的公司呢?

回到前言里所说的那个观点:

软件系统的主要问题不在于技术,而在于社会性因素

为什么不在于技术?因为技术只决定这个系统,这个软件是否有理论上和技术上的可能性,但是技术不决定这个软件是否可以做出来,是否可以做得好。就像我们的社会,无论哪个朝代都有石砖,但是并不是每个时代都能建成长城

那么什么叫“社会性因素”,浅显的理解便是“人与人之间的关系”,如何构建一个团队。一个优秀的技术团队,单论职业水平而言,对于他们能否再构造一个阿里巴巴系统,我们信心满满。但是问题是,作为管理者,谁能让这么多的牛人都在一个团队里和谐地工作不散伙呢?我认为这才是真正的管理

最棒的成功就是看不到任何明显的管理

书中第四部分给了一个很有意思的“意面晚餐”例子。很形象地说明了这个问题,管理者实际上需要管好的绝不仅仅是表面上的工作,对于团队的各个部分,都要有一些“艺术”的手段进行把控

二-办公环境

花钱就是省钱

本部分的主要思想可以总结为一句话:对于工作环境进行一定的投入,所用的整体成本会更低。其实这部分的思想和第一部分的西班牙理论,核心是一样的。

首先开发软件的是人,只要还是人在开发软件,就摆脱不了“人”本身的属性。人必然是对自己生活的空间,环境有一定的要求的。就像在2020年的今天,如果你住的房子,没有自来水,没有电,没有WI-FI,那你一定会想,那这种地方我为什么要住呢?这就是一个典型的完全不合适的办公环境的例子

其次便是西班牙理论的延伸,我想将其概括为:如果管理者和企业在必须要支出的部分省钱了,那就一定会在其他的地方(比如工作效率,员工稳定性)付出响应的代价。

关于“流”

在单一思考的工作时间里,理想情况下人们处于心理学家称为“流”(Flow)的状态中。流是一种深度的近乎于冥想的融入情况。在此种状态下,有一种普适幸福感存在,人们几乎不会意识到时间的流逝:“我开始工作。等我抬头一看,三个小时就过去了。”这里不会有工作量的感知;工作开展就像流一样自然。

关于“流”,大部分的开发者应该都比较熟悉。实际上也有一个比较有意思的现象:很多开发者都喜欢戴着耳机听音乐来进行编程工作,或是头戴隔音耳塞。

这其实就是一个敏锐的管理者可以觉察的一个小细节:为什么很多开发者喜欢戴着耳机?显然并不是每个人都会在放着音乐的时候,提升工作效率。更重要的一个原因是:耳机能够帮助开发者屏蔽工作环境里的噪音。这包括其他人发出的传统意义的噪音,以及减少了其他人因为非必要的沟通而打断我们工作“流”状态的“噪音”。

结论也是很显然的:我们专注的时间的效率非常高。那么对于开发者而言,如何创造这样的环境来保证开发者的“流”状态自然也就显得比较重要。

这也包括了本书中提到的电子邮件与电话的问题。结论也很显然:电话能强行打断我们正在进行的任何活动。这实际上也是目前为什么微信流行的一个原因:人与人的沟通可以碎片化了,发信息的人给了我任意时间回他信息的权利。而不像电话一样,必须停止任何正在进行的事情来进行处理。处理好这个问题也是保证“流”的一个手段

人既是个体的人,又是群体的人

没有一起聚餐的人类不可能形成群体

人就是这样的一种生物,渴望独立,但又渴望社交。希望有自己的空间,但也希望和别人有所联系。希望能实现自己的价值,又希望对一个团体甚至社会产生一定的影响。

实际上回想自己身边的朋友,关系最好的几个一定是和我们有一定的共同经历的:一起奋斗过,或者一起玩耍过,看过电影等等。

同样的,工作伙伴之间也必须通过一定的活动将他们连接起来。

三-正确的人

正确的人

无论做出何种努力,最终结果更多在于是谁来做而不是怎么做

进取者都是天生的,而不是后天练就的

人分多种多样,有的人激进大胆,有的人保守,有的人喜欢完美主义。实际上性格本身没有任何问题,关键在于——是否合适我们的团队

书中还提到了一位非常有意思的女士——领导看不出她有任何才华,但是她参与的项目全都成功了。因为她能够作为团队的一个很好的粘合剂

实际上这是不难想象的,就像一个团队里如果有一名能给团队带来快乐的“开心果”,整个团队的气氛必然会更加融洽,那么反馈到工作上自然也能有一些反馈。

而好的团队,我认为最重要的一个因素在于多样性。多样性满足后,这个团队才能更加健康

管理热力学第二定律

管理热力学第二定律:组织里的熵总是增加的。

实际上这反映了很多人一直不解的一个问题:为什么企业总是在调整,或者是进行裁员。为什么“丑恶的资本家”总是要裁掉一些在企业奋斗多年的老员工,去招一批更年轻的员工。

抛开纯经济利益的原因不谈,我们可以从熵来看到这个问题。

就像询问一个稍有经验的开发者,你是愿意自己从头开发一个软件,还是接管别人的代码进行开发?我相信答案是很肯定的:一定是自己从头开发。因为理解别人的代码和逻辑,需要用的时间远比自己重写这个代码来的要慢——更何况一些情况下你甚至可能看不懂。

当熵增加时,必然会造成管理上的困难。

为什么人力不是齿轮

简单而言,离职造成的影响总是比人们想的要大。就像前面说的,人力不是齿轮,像我们给机械换零件一样,拿下来,放一个新的上去就好。事实上在人力资源管理领域,员工离职,工作交接,培训员工这些问题对公司造成的内耗已经有了很显然的结论。

管理者总是有一种错觉,我把能力很强很了解项目但是个性比较强的Bob辞退了,我能找到一个能力很强很了解项目个性没这么强的小Bob。

也许是可以找到,但是即便如此,重新让小Bob熟悉这个项目所耗费的时间成本,依然超过我们的预期

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页