大道至简——软件工程实践者的思想读书笔记二

第四章 流于形式的沟通

C语言是程序员与计算机交流的语言,而不是他与客户交流的语言,程序员面对的是计算机,但计算机不是客户。因此,开发人员最好不要直接面对客户。项目经理由这样一种优势: 他可以不用了解C语言,也可以用一种非C的语言来与客户交流。

要深入项目需求阶段的项目经理或者调研人员,被要求深谙项目所涉及的业务。但这往往是做不到的,因此惯常的做法是聘请行业咨询公司(或个人)来介入需求阶段,以协助了解和分析需求。

沟通时需要确认沟通方式的有效性,而不是追求这种方式是不是UML,以及用UML表达得是否正确。客户是因为他认为你理解了他的需求而在“需求确认书”上签字,而不是因为你的UML图画得是否精确。

沟通的三层障碍

1. 沟通并不在于你要表达的内容,而在于你如何表达。此时,你需要组织语言,学会说话。“对不起,先生,我们这里没有你想要的东西……”和“对不起,先生,你想要的东西我们这里没有”的区别:前一句的语气是在“致歉”,后一句则是在“推诿”。

从叙述中揣度结果,是人们子啊交流沟通过程中潜在的意识和行为。如果两个人在努力地交流,那么他们一定会无比细致地去分析对方的描述,因此,他们事实上都回关注对方的措辞、语气、句法,或者分析表达的前后逻辑与关联,这么做的目的是:

  a. 找到对方表达的潜在含义与目的

  b. 找到对方叙述中的逻辑错误

第一个是支持者的心态,第二个是反对者的心态,这两种心态就是一个会议的全部内容。

2. 第二层障碍出现在跟聪明人的讨论中,让人觉得“不知所为”。此时,应当预设前提,并尽早阐述结论。

对于两个聪明人而言,正确的结论通常只有一个,因此,如果出现了争执,那么讨论的一定不是同一个问题。

一个结论是需要在大多数人之间做出,还是只需要在一两个人之间做出,是在一开始就要被确定下来的。

3. 沟通不知缓急。此时,不要把沟通目标设定为“让对方认同”。

用尽可能少的人、在尽可能短的时间内做出决策,是降低沟通成本的关键。

作为管理者,应当去观察、理解和发现问题(或由专人汇报),你要尽量去听,去思考,因为作为这个角色,你总是有机会纠正问题的。但是,不要急于去纠正。在一个会议上即使某种想法有问题,也绝不是在你发言的三分钟里就能纠正的,而是在最后你做出的决策里去纠正。这种决策通常有两种:给出明确答案和存而不论。

沟通不过是手段,是工具之一,而管理者的目标是项目本身。因此讨论不清楚就暂不清楚,让需要讨论的人继续去讨论。

保障每一次沟通的有效性都是最重要的事。你得到的每一次沟通机会,都是向客户了解更深层次需求的机会,因此最好在见到客户之前,你就已经设计了所有的问题和提问方式。

历史记录与注释不是一回事。代码中的注释是为阅读代码而留备的,而历史是为整个项目而记录的。一些参考的记录内容有:

  a. 需求阶段:与谁联系、联系方式、过程、结果以及由此引发的需求或变更

  b. 设计阶段:如何进行设计,最初的构架,各个阶段的框架变化,因需求变更导致的项目结构上的变化(有助于了解构架的可扩充性)

  c. 开发阶段:每一种技术选型的过程,每一种开发技巧的细节和相关文档,摘引的每一段代码、算法、开发包、组件库的出处和评测,程序单元的测试框架,每一个设计和构架变更所导致的影响。

  d. 测试阶段:测试用例和测试报告

其实,沟通是具有目的性的,如果在没有明确目的的情况下与客户沟通,那将是浪费客户和自己的时间。这种目的,可以是了解项目的讯息,挖掘潜在的项目……最末了,才是交流感情。

沟通问题不仅仅存在于你跟客户的交流之中,还存在于项目的各个角色之间。

使用与不使用UML,其根本的问题在于沟通方式的选择。只要是行之有效的、能在各个项目角色间通用的,就是好的沟通方式。

流于形式的沟通,极有可能是你的项目被不断推翻和不断延迟的最直接原因

第五章 失败的过程也是过程

瀑布模型将软件开发过程分成需求、分析、设计、开发和测试五个阶段。

从最开始,从我们编程开始,我们的目的就是实现一个东西,而工程,只是一种实现的途径。

越是简单的东西,往往越是接近于本质。

时间: 2024-07-30 13:37:41

大道至简——软件工程实践者的思想读书笔记二的相关文章

大道至简——软件工程实践者的思想读书笔记四

第九章 现实中的软件工程 理想状况下,软件工程=过程+方法+工具.然而工程成功的真正关键,并不在于你把你的团队“组织”得多好.即使在团队中他们都表现得有条不紊,你一样会面临失败. 愚公如果停下来,思考的问题可能是碎石的方法,而项目经理从细节中跳出来,思考的问题就应当是完成工程的方法.评价这个方法的好坏的标准只有一个:节约成本. 不计成本的项目计划不会得到经营者的支持,毫无目的地消耗成本是项目中的慢性毒药,最致命的风险是成本的枯竭. 我经常注意到的成本因素包括时间.人力.资金和客户成本.而大多数情

大道至简——软件工程实践者的思想读书笔记一

第一章 编程的精义 愚公移山项目,原始需求的产生:“惩山北之塞,出入之迂” 项目沟通基本方式:“聚室而谋曰” 项目目标: “毕力平险,指通豫南,达于汉阴” 可行方案:“扣石垦壤,箕畚运于渤海之尾” 项目中有三名技术人员和一名工程管理人员: “(愚公)率子孙荷担者三夫” 外加一名力量较弱但满腹激情的外协: “邻人京城氏之孀妻,有遗男, 始龀,跳往助之” 以上就是愚公移山整个工程的概况.接下来,愚公向智叟叙述了整个工程的编程实现: “虽我之死,有子存焉”——IF条件语句 “子又生孙,孙又有子……子子

大道至简——软件工程实践者的思想读书笔记三

第六章 谁是解结的人 在一个模式化的公司里,体制上最大的敌人其实是模式本身. 在通常情况下,一个团队的特质是管理者在团队生活和行为过程中逐渐形成的. 成功的经验往往最不可信,因为一方面,成功者沉醉于成功的喜悦,并急于与人分享快乐与荣誉,而不关注这些成功的前提与背景.另一方面,听取这些经验的人则因为那些“既有的成功”而丧失了应有的警惕. 经验,是源于对过去的思考,而不是对过去的复制. 只有提出质疑,才能换个角度去看到那些成功经验所依赖的背景,也才能看到某些成功背后的偶然或者关联的因素. 你的团队无

《大道至简---软件工程实践者的思想》阅读笔记二

08大道至简——软件工程实践者的思想阅读笔记之二 2015-06-02 16:41 第五章 失败的过程也是过程 以得失而论,在瀑布模型与RUP模型之间,学习前者而不成,可思过程的本质:学习后者而不成,可得文字的架子. 如果懂得了所谓的模型原本都演化自那个简单的瀑布,那么文档是按XP写还是按RUP写,也就可以应时.应需,因地置宜,择善而从了. 越是简单的东西,往往越是接近于本质. 项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同地完成这个项目. 第六章从编程到工程 我

《大道至简---软件工程实践者的思想》阅读笔记一

07大道至简——软件工程实践者的思想阅读笔记之一 2015-05-29 16:41 第一章编程的精益 作者将<列子·汤问篇>中的<愚公移山>与软件工程巧妙的结合起 来,通过分析证明其实在两千多年前的愚公除了在移山的过程中担任 “项目组织者,团队经理,编程人员等众多角色”,还已经具备了编 程人员的基本素质. <愚公移山>                                项目管理 惩山北之塞,出入之迂                       项目原始需求的

阅读《大道至简--软件工程实践者的思想》有感(3)

阅读完<大道至简--软件工程实践者的思想>,明白了软件与程序的区别,<战国策-秦策>中的那句话,“王不如远交而近攻,得寸,则王之寸:得尺,亦王 之尺也.”程序只是程序员与电脑之间的对话,而软件却是让程序员把用户与电脑连接到一起,作为桥接.程序不一定是用来卖的,但软件是用来卖的,所以软件包含了商业因素,而程序却没有. 做软件,达不到好.快.省三点.我们的项目,无经费可言,无充足的时间,所以总是图快.图省,然而这样做出来的项目,只能是应付老师,并不是真正的学会了什么东西.然而想要达到好

《大道至简--软件工程实践者的思想》读后感

<大道至简--软件工程实践者的思想>读后感       "工程其实很简单,只是大家把它做复杂了."或许,这就是作者周爱民想阐述给我们的软件工程的核心思想.       愚公移山,看似是一个庞大的工程.可既然山不加增,又何苦而不平?正如书中所说,除了先天智障或后天懒惰,任何人都是可以写程序的.在愚公身上就可以看到编程的基础,顺序.分支和循环,移山这等的工程都可以通过编程来简单实现,这便是编程的精义.       积极工作和勤于思考都要占时间,只要开发人员把这个程序的算法设计出

《梦断代码》、《你的灯亮着吗?》、《最后期限》、《大道至简——软件工程实践者的思想》的阅读计划

作为从事IT行业的必读枕边书目,没理由不拜读一下.以下是我的阅读计划,希望自己能认真执行,阅读自己慕名已久的书目. (每天的阅读时间晚上9点半以后,看一个小时的书籍) 一.<梦断代码>的阅读时间跨度(3月5号~~~4月4号) 随书笔记的发表时间:第一篇3月14号 第二篇3月21号 第三篇3月28号 二.<你的灯亮着吗?>的阅读时间跨度(4月5号~~~5月4号) 随书笔记的发表时间:第一篇4月14号 第二篇4月21号 第三篇4月28号 三.<最后期限>的阅读时间跨度(5月

《大道至简----软件工程实践者的思想》

愚公移山的故事想必大家都听过,而愚公移山的过程恰恰能够描述一个项目的实施和编程的精义.首先,要有对解决项目的兴趣和信心,我认同这句话:没有会不会,只有喜不喜欢.只要把自己投入其中,有自己的思考方式,就一定会有所成就.在实施过程中,从需求的产生到团队之间的交流,从技术方案的提出到程序具体的实现,一个项目就完成了.其中程序功能的实现则由简单的语法:顺序.循环.分支一点一点地拼凑而成,就像愚公说的:"虽我之死,有子存焉:子又生孙,孙又生子:子又有子,子又有孙.子子孙孙,无穷匮也(循环).而山不加增,何