《人件集:人性化的软件开发》

内容简介:如果提到软件开发中人的因素。那么没有谁能比LarryL_Constantine更有发言权了,全世界的开发人员和管理人员都通过《康斯坦丁人件集》一书认识了这位人件领域的大师。而《人件集:人性化的软件开发》也成为了人件领域中的经典著作。在《人件集:人性化的软件开发》中。作者对《康斯坦丁人件集》一书中包含的52篇著名的专栏文章进行了重新整理,并加上了25篇首次以书本形式发表的文章。 在软件开发中经常会遇到各种各样的挑战。比如:技术问题和社会问题难以完全分割、心理学问题和控制论问题相互干扰、理论和实践相互交织。这类问题统称为“非人性化开发”问题。《人件集:人性化的软件开发》针对上述问题进行了深入浅出的介绍。起到了极其重要的指导作用。《人件集:人性化的软件开发》主题包括:项目管理、团队开发、纪律与无序、工具、模型、方法、过程、个人特性、可用性等。 《人件集:人性化的软件开发》还包括两个全新的部分:一个是组织文化。另一个是如何让软件对象更为可用,这些文章包括了作者提倡的突破性方法——“以使用为中心”。

30年前的巨著《人月神话》读过了,是时候读20年前的巨著《人件集》。《人月神话》对于软件这样的行业来说可能真的是上古天书了,尤其是《人月》里面有不少的当时技术实现的描述,什么汇编,纸带都出来了。

虽然《人件集》是《人月》十年之后的书,但是毕竟离现在13年也有20年时间,那个时候我才3 4岁的样子啊!还没看之前,我就想,估计《人件》中的内容对于现在环境也不适用了吧?

但是看了第一部分 团队开发,发现书中提及的方式和理论一点都没有过时,对于现在还非常实用,我总结原因有2:

  1. 《人件集》讨论地更多是人,是心理学;软件会过时,会新旧交替,但是方法论不会
  2. 虽然现在移动领域,云,大数据这样的技术兴起使得从外看,软件开发已经变得完全不一样了,但是可能在公司内部开发还是那样的流程,没有太多变化,只是使用的技术变化而已。

《人件集》本身是一本很有趣并且使用的书,每一章节都给出了不少中肯可操作的意见。或者在以后工作中可以参考:

第一部分 团队开发

1.决策,决策

研究表明,集体的决策比个体独立做选择更具有风险倾向。在做决策和解决问题时,团队有一种均衡的效果,这会将个人的贡献和能力降到最低

我们知道如果使用“一致意见”方法来做决策,而且想要获得第一流的问题解决方案,最重要的因素之一就是采用中立领导。讨论会的主持人尤为重要,无论哪个领导来主持讨论会,他都必须时刻努力保持中立,这样才能从所有的意见中得到最好的结论。

TODO:当我作为一个Team Leader或者比其他团队成员在某件事情上更有经验的时候,切记要自觉站在中立的位置,这样才能保证不同意见能够顺利高效地提出。

2.一致意见和折衷

折衷意味着所做出的选择是一种似是而非的东西。

感悟:产品经理一定要有自己的想法。如果一个产品是由老板意志,个别用户反馈,研发和设计贪图方便的想法混杂而成的产物,那这个产品肯定没有前途。

将事实和意见分开。对于一个协同工作的团队来说,如果期望创造性地解决问题并获得最好的结论,他们必须知道他们已经掌握了那些信息,并能够随时所得更好的信息。

TODO:在团队讨论或者会议之前,一定要将当前已经的情况和资料共享出来。随后的讨论应该在这些事实之上产生。如果有成员希望开展其他方面的讨论,那对不起,请在下次会议之前将资料准备好,并且共享出来。当然如果情况紧急,也可以再启动一次临时会议。不过资料还是提前准备好。

3.达成一致意见

书中对于“为每个指标设置不同的加权指数,并将最后要得到的结论简化为一个数学公式”这样量化的设置优先级方式表示不同意。 主要的原因是:

  1. 这样的公式是“伪客观的”,不一定就能表示真实的优先级,可能会忽视一些重要的因素
  2. 这些公式,或者直接说就是部门KPI,容易造成部门之间扯皮,也容易造成部门单纯优化自己的目标而忽视总体的目标

感悟:可能对于团队和部门之间的合作,公式化的设置优先级不是最优的办法。但是对于个人来说的确是一个不错的方法。我在做一些重要的决定是,例如,选择升学,选择工作这样重大的选择时,使用公式化的方法,可以帮助我认清我需要考虑的因素以及不同因素之间的重要性。所以,我个人还是比较喜欢公式化优先级设置方法。

缺乏明确的标准并不是达成技术一致意见的唯一障碍。过分强烈的讨论,很有可能演变为争论,对于软件开发团队来说不是好事。

TODO: 团队讨论不应该让最能说会道的人主导,应该鼓励每一个人开口,尤其是那些表达能力欠佳的技术大牛开口。

4.记录员,低下还是高贵

组织的学习依靠的是记录,而不是人的大脑,组织应该将政策,实践,执行的过程都记录下来。在工作的过程中,所记录的内容越多,组织学习的能力就越强。

对于软件开发来说,如果过程记录以一种连续的,非结构化的形式存在,那么这些信息使用起来是非常不方便的。

我们可以将讨论或者会议结构化为以下四个方面 :

  1. 执行列表(do-list):记录讨论中做出的决策,为什么做这样的决策
  2. 决而未定 :记录暂时无法决定的问题,放到下次会议或者获得更多“事实”之后再讨论,并且确定下次讨论的时间。
  3. 片段箱 :记录一些不完善的想法
  4. 否决箱 :记录已经被否决的方案,并且一定要记录否决的原因

感悟:对于上面四个方面,1 和 2还好,3和4的确是很容易就忽略的部门。当时就因为缺少记录 否决的方案,而吃了不少亏。

项目的后台结构由于个人版和企业版的功能相互不确定,导致有点混乱,并且加上过度设计,导致后台比较混乱。两三个月之后功能最终比较清晰了,需要添加新功能的时候,发现后台很多地方都已经不知道当时为什么这样设计,也不知道为什么不使用一个更加简洁的方式设计了。

TODO:一个会议没有一下几个条件就是不完整的,每日的会议都应该不断实践,形成一种本能反应:

  1. 议题
  2. 记录
  3. 结论

另外,以前做记录并共享是一个比较痛苦的过程。但是现在很多轻量级的团队协作工具可以很好的帮助到我们,我现在就是用Teambiton,已经挺方便了。

5.办公空间

建筑或办公室的设计和装修情况极大地影响着人与人之间的交流和协作。为了有效地协同工作,项目组确实需要足够的工作空间,他们需要一个能够容纳整个小组的空间。另外,团队需要一个可以当作“指挥部”的地方,整个团队可以在那里方便地开会,讨论问题,借以躲避外面的喧嚣嘈杂。

TODO:办公环境我暂时还没有能力设置,但是有可能的话,还是尽量使用"指挥部"吧!还有,以后找工作的时候一定要预先观察公司的办公环境,办公环境很容易看出公司的办公风格。

6.讨厌打扰

工作团队需要一个简短,简单,轻便的词语表来表达打扰,所以我们的办公室里,我们使用“中断(IRQ)”,“相应(ACK)和“拒绝(NAK)”来进行一次打扰。

感悟:外部干扰的确是一个头疼的问题,一不留神就被中断了,然后自己的工作也无法完成。对于书中这样团队的暗语,现在感觉还是有点GEEK,还有点奇怪。所以我还是按照番茄工作法里面的方法来对抗外部中断吧。

《人件集》笔记(一)相关推荐

  1. 【经济学】【综合篇】经济机器是怎样运行的

    原视频:经济机器是怎样运行的 (时长30分钟) Ray Dalio 前言:经济与我们每一个人息息相关,经济社会的一些变革或举措也会直接或间接的反映到我们每个个体身上.了解经济,提高自己的认知,可以帮助 ...

  2. 经济机器是怎样运行的

    经济机器是怎样运行的 经济机器是怎样运行的是桥水基金创始人/<原则>作者-瑞·达里奥,制作的一部30m的视频,如下是他的简单经济学观点原文所述: 经济就像一部简单的机器那样运行,由几个简单 ...

  3. 经济机器是怎么运行的

    近年来,随着全球化和信息技术的蓬勃发展,经济机器已经成为了社会发展必不可少的组成部分.那么,经济机器是如何运转的呢? 首先,我们需要了解经济机器的基本构成要素.经济机器由供求关系.产业链和市场三大要素 ...

  4. 《经济机器是怎样运行的》笔记(三)

    19:20-31:00 19:20 去杠杆化导致债务过重,减轻债务有四种办法: 削减支出:个人.企业.政府削减支出(紧缩) 减少债务:通过债务违约或重组(萧条) 财富再分配:将财富从富人转给穷人 发行 ...

  5. 《经济机器如何运转》笔记

    视频链接:[Ray Dalio]三十分钟看懂经济机器如何运转(比尔盖茨推荐) 影响经济的三要素 生产率的提高 短期债务周期 长期债务周期 理解交易 每次交易中:买方使用 货币/信用 向卖方获取 商品. ...

  6. arm-linux 程序开发入门(QT窗口应用程序、编码、交叉编译、调试)(三机器和双机器搭建方法)(笔记)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 文章目录 前言 一.Arm-Linux程序开发平台简要介绍 1.1程序开发所需系统及开发语言 1.2系统平台搭建方式 二.Linux开发平台 ...

  7. 《基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统》论文笔记

    <基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统>论文笔记 链接:Machine Vision Recognition System of Edible and Poisonou ...

  8. 让VC编译的Release版本程序在其他机器上顺利运行

    让VC编译的Release版本程序在其他机器上顺利运行 Posted on 2011-07-29 15:06 单鱼游弋 阅读(939) 评论(0) 编辑 收藏 链接的时候分静态链接和动态链接两种. 静 ...

  9. Qt5.5-msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误

    问题描述:在win7系统上,使用Qt5.5+msvc2013-x64编译的程序在其它机器上无法运行,提示0xc000007b错误. 解决过程: 在网上查看解决方案,一度受到误导,看到大量的说需要安装D ...

  10. 基于神经网络的机器阅读理解综述学习笔记

    基于神经网络的机器阅读理解综述学习笔记 一.机器阅读理解的任务定义 1.问题描述 机器阅读理解任务可以形式化成一个有监督的学习问题:给出三元组形式的训练数据(C,Q,A),其中,C 表示段落,Q 表示 ...

最新文章

  1. 结构光测距相位差_ROHM确立新型VCSEL模块技术 有助于提高测距精度
  2. nginx+lua 配置302 不改写白名单哈希表
  3. CloudStack无法添加模板和iso
  4. 《Excel与VBA开发》一书上市时间
  5. 用神经网络分类陀螺和遥远星体
  6. js中的cookie
  7. 单点登录原理与简单实现【转载】
  8. RHEL 7.5 部署 OpenStack Queens 踩坑记
  9. BUAAOO电梯作业总结
  10. python个数计算公式_用python计算1-100的合数的个数
  11. kindle刷机ttl_kindle咕咪版如何刷成普通kindle版本?
  12. c语言定时器中断实验报告,单片机实验报告-定时器中断实验.doc
  13. python:实现希尔密码算法(附完整源码)
  14. 计算机学报论文字数要求,常见EI学报综述类文章分析
  15. Win10 wifi无法上网,连网线却可以正常上网的解决办法
  16. 华北理工大学计算机考研怎么样,华北理工大学考研难吗
  17. vue3 provide和 reject
  18. C语言确定某年星期六,c语言 怎么算某年某月某日是星期几啊?
  19. Java IO中涉及到的哪些类以及哪些设计模式
  20. 美国国土安全部仍然使用COBOL语言

热门文章

  1. Leetcode 765:情侣牵手 Couples Holding Hands
  2. 智慧政务云平台建设方案架构介绍
  3. 【计算机毕业设计】511社区维修平台
  4. Druid-连接池简介
  5. 2019年支付寒冬将至,我们如何应对?
  6. Alpha-beta 算法
  7. 爱立信MGW的IP地址应用
  8. 推荐一个ps3的六轴手柄在windows下的驱动
  9. 如何压缩PDF文件大小?两个方法教你如何压缩
  10. 英语语速测试软件,中英文朗读专家设置语速的操作流程