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

第一章 编程的精义

愚公移山项目,原始需求的产生:“惩山北之塞,出入之迂”

项目沟通基本方式:“聚室而谋曰”

项目目标: “毕力平险,指通豫南,达于汉阴”

可行方案:“扣石垦壤,箕畚运于渤海之尾”

项目中有三名技术人员和一名工程管理人员: “(愚公)率子孙荷担者三夫”

外加一名力量较弱但满腹激情的外协: “邻人京城氏之孀妻,有遗男, 始龀,跳往助之”

以上就是愚公移山整个工程的概况。接下来,愚公向智叟叙述了整个工程的编程实现:

  “虽我之死,有子存焉”——IF条件语句
  “子又生孙,孙又有子……子子孙孙,无穷匮也”——循环结构

作为优秀的程序分析师,愚公清楚明白由于“山不加增”,所以“何苦而不平”,因此这不会是一个死循环。

在愚公的论述中,我们看到了编程的根本:顺序、分支和循环,这,就是编程的精义了。

编程作为一种行为,我们只需要知道其逻辑方法就可以了。所谓编程实际上就是把一件事交给计算机去做,你只需要用“程序语言”描述 给计算机该如何完成这件事。

编程第一要务就是先把事情分析清楚,把事情先后的逻辑关系和依赖关系搞清楚,然后再去写代码实现。

记住:积极工作和勤于思考都要占时间

第一个完成编程本质思考的人提出公式:程序 = 算法 + 结构,这个公式未提及代码,甚至可以说,在这个公式里,代码是不存在的,存在的只是思想

算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体,开发人员只要将算法设计出来,把结构描述出来,剩下的就是劳力活了。

第二章 是懒人造就了方法

人的精力终归是有限的,提出新的“方法”,解决的是影响做事成效的根本问题。

程序 = 算法 + 结构 + 方法

在面向过程的开发中,“过程”是CPU提供的,“单元”则是编译器提供的机制,程序员无须(至少不是必须)再创造什么“方法”,就可以进行愚公式的开发工作了。

第三章 团队缺乏的不只是管理

三个人便可以构成团队,这样便有了团队的一些基本特性:主从,监督和责任。

做管理起码要能承担责任,这是最基本的素质。

从管理的角度来看,项目失败与否与项目经理的经验直接相关。

项目的成功是由两个方面来评估的:项目完成质量,项目完成时间。

项目工期的问题不能解决,就不能保证项目成功。只有经验更加丰富,才更有可能逼近“合理的工期”。在这之前,项目经理面临的就是失败,这个失败可能不是由项目经理本身的能力所决定,或者也不是由团队成员的工作决定,可能在一开始那份给客户的项目协议就签错了。

因此,项目经理是需要时间来成熟的。他需要机会来承受错误,而不是一开始就享受成功。

只有有了确定的团队模式,才能寻求相应的管理制度,并且才能把这样的制度实施在团队之上。

组织模式确定的同时,相应的制度也随之建立,很少有组织几年之后才来补制度的。

明确组织机构,既是团队的关键,也是我们思考问题的基础。

精简团队模型:R模型:

在保障这样一个组织机构模式的过程中,以下几点内容是需要注意的:

  1. 如果项目针对直接客户,而且没有产品化的可能性(或必要性),那么可以将与市场(以及市场部门)相关的问题和角色先放一边。
  2. 已经存在于开发团队中的成员,不适合在品质部门中兼任角色。
  3.(在这个模型里)项目经理应致力于减少团队中开发角色与其他部门的沟通、必要时开发经理应该站在开发人员之前进行部门间的交互。
  4. 品质部门、文档和培训部门以及客服部门应该主要由专职人员构成,尽管开发人员可以(或者经常会)参与文档、培训和客服的工作,但这也通常是他们最不能胜任的角色。
  5. 这是中小型规模的公司和团队的参考组织机构模型,对大型团队并不适用。

在这个模型中,我们仍然看到一个至少由三个人构成的团队。其中,在开发经理和开发人员之间,既存在主从关系,也存在协作关系。而项目经理,则在团队中处于领导者、组织者和团队保障者的地位。

实际上,开发团队并不需要管理,或者说,在你还没有弄清楚状况之前,不要去管它。

协议并不能建立管理者与被管理者的信任,而只是确保了这种关系。

如果有一群开发人员像蚂蚁一样辛勤地工作着,那么,请先不要打扰他们。你应该跟随他们,看看他们是如何做的。发现规律,分析这个规律的价值,最后再尝试改变他们(的一些负面价值的规律)。

你已经确定了组织结构,确定了组织中的角色,还有一个团队的人,作为项目经理,你需要先分工。分工之前,那个团队只能算是一个没有组织与合作的群体。

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

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

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

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

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

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

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

第四章 流于形式的沟通 C语言是程序员与计算机交流的语言,而不是他与客户交流的语言,程序员面对的是计算机,但计算机不是客户.因此,开发人员最好不要直接面对客户.项目经理由这样一种优势: 他可以不用了解C语言,也可以用一种非C的语言来与客户交流. 要深入项目需求阶段的项目经理或者调研人员,被要求深谙项目所涉及的业务.但这往往是做不到的,因此惯常的做法是聘请行业咨询公司(或个人)来介入需求阶段,以协助了解和分析需求. 沟通时需要确认沟通方式的有效性,而不是追求这种方式是不是UML,以及用UML表达得

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

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月

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

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