读书笔记
qinhl99
这家伙很懒,什么都没有留下……
展开
-
软件项目风险管理——《与熊共舞》读书笔记(六) ——改进的风险管理处方
1.1、通过风险发现过程调查得到项目面临的所有风险; 2.2、确认风险清单里已经包含核心风险; 3.3、初始化每项风险的属性; 4.4、指出致命风险并进行风险交接,作为项目假设; 5.5、假设没有任何风险具现,进行一次日程估算; 6.6、用风险图来描述风险,并量化其不确定性; 7.7、创建一个完整的WBS,并估算其工作量; 8.8、在项目初期,要求项目参与各方原创 2008-04-30 00:31:00 · 1248 阅读 · 0 评论 -
《人月神话》读书笔记(九)——胸有成竹,软件项目的时间估算和生产率
1、仅仅通过对编码部分的时间估算,然后乘以其它部分的相对系数,是无法得到整个项目的精确估算的;2、构建小型程序的数据不适和系统型项目;3、程序开发的工作量和复杂度是随程序规模的指数增长(我倒觉得需要加条件,这个和各个子系统之间或组件之间的接口或者说交互的复杂度有关);4、据IBM的数据显示,生产率是系统各个部分交互的函数,在1.5千代码行一人年至10千行代码一人年之间变化。(这个数据也原创 2008-09-21 16:06:00 · 1011 阅读 · 0 评论 -
《人月神话》读书笔记(十)——削足适履
1、除了运行时间之外,内存也是程序一个主要开销,特别是系统软件;2、程序的规模不是坏事,但不必要的规模是不可取的,软件开发人员必须设置规模目标,控制规模;3、除了运行时间和内存之外,控制范围硬盘的次数也是很重要的;4、对项目经理而言,规模控制既是技术工作的一部分,也是管理工作的一部分。必须研究用户和他们的应用,以设置将开发系统的规模。接着,把这些系统划分成若干部分,并设定每个部分的规模原创 2008-09-21 16:17:00 · 953 阅读 · 0 评论 -
《人月神话》读书笔记(十一)——项目经理的基本职责和主要日常工作
1、 在一片文件的汪洋中,少数文档成为了关键的枢纽,每个相关管理的工作都是围绕它们展开的,他们是项目经理的主要工具;2、文档的跟踪维护是项目监督和预警的机制,文档本身可以作为检查列表、状态控制,也可以作为汇报的数据基础。3、软件项目文档的内容:目标。待完成的目标、迫切需要的资源、约束和优先级产品技术说明。进度表。资金预算。工作空间分配。人员组织。4、为什么要原创 2008-09-21 16:43:00 · 939 阅读 · 0 评论 -
《人月神话》读书笔记(十二)——未雨绸缪,为变更而计划,程序维护的哲学
1、对于大多数项目,第一个开发的系统并不合用。可能太慢、太大,而且难以使用,或者三者兼而有之。要解决所有的问题,除了重新开始以外,没有其他的办法,即开发一个更灵巧或者更好的系统。系统的丢弃和重新设计可以一步完成,也可以一块块地实现。所有大型系统的经验都显示,这是必须完成的步骤;2、一旦认识到实验性的系统必须被构建和丢弃,具有变更思想的重新设计不可避免;3、用户的实际需要和用户感觉,会随着程原创 2008-09-21 17:07:00 · 836 阅读 · 0 评论 -
《人月神话》读书笔记(八)——关于项目的组织结构
1、项目组织的目标是为了减少必要的交流和协作量;2、为了减少交流,组织结构包括人力资源的划分和限定职责范围;3、传统的树状组织结构反映了权力的组织原理——不允许双重领导;4、组织中的网状结构,是为了进行调整,以克服传统树状结构交流缺乏的困难;5、每个项目或者子项目具有两个领导——产品负责人,技术主管或架构师,这两个职能有很大的区别,需要不同的技能;6、两种角色的任意组合都可以是原创 2008-09-21 15:27:00 · 813 阅读 · 0 评论 -
《人月神话》读书笔记(十三)——干将莫邪
1、项目经理应该制定一套策略,并为通用工具的开发分配资源,并意识到专业工具的需求;其实,对过去的确应该是这样的,但现在已经完全不同,主流的开发所用到通用软件和专业软件现在已经很丰富,对于我们一般的开发来说,已经足够了,需要的是,我们去学习使用,掌握这些工具,而不是去开发,但是,对于学习专门分配资源也是非常必要的,因为巧匠因为它的工具而出名。工具的重要性是不言而喻的,您看做足底按摩的,擦皮鞋的都有一原创 2008-10-05 13:35:00 · 1388 阅读 · 0 评论 -
《人月神话》读书笔记(十四)——如何测试和集成
1、煞费苦心的、详尽的设计不但使得产品更容易使用,而且更容易开发,bug也少;2、许许多多的失败,完全源于那些产品未精确定义的地方;3、在编写代码之前,必须将规格说明提交给外部的测试小组,以详细的检查其完整性和明确性,开发人员无法自己完成这项工作;4、自上而下地进行设计,逐步细化是最重要的软件开发方法之一,至今天也依然是这样,不管是对于大型的软件和小型的软件;5、好的自上而下的设计原创 2008-10-05 13:59:00 · 663 阅读 · 0 评论 -
《人月神话》读书笔记(十六)——关于文档
1、文档和程序对于软件产品一样重要,即使是程序的用户是自己;2、培训和管理人员基本上没有能向编程人员成功的灌输对待文档的积极态度——文档能在整个生命周期对克服惰性和进度压力起到促进和激励作用,这样的失败,使由于没有能够展示如何有效地、经济的编制文档;3、大多数的关键文档包含了软件设计的一些重要决策,因此它们应该在程序编制之前开始编写和完成;4、为了使文档和程序更容易维护和同步,将文档合原创 2008-10-05 15:27:00 · 784 阅读 · 3 评论 -
《人月神话》读书笔记(十五)——项目是怎么延期的
1、一天一天的进度落后比重大灾难更难以识别和防范、弥补,而进度的延误大多是一天一天的积累下来的,因为重大的灾难发生的概率不是很高;2、里程碑的定义必须是具体的、特定的和清晰可度量的,以至于自欺欺人时,程序员很少就里程碑的进展弄虚作假了;3、慢性进度偏离是士气杀手;4、不存在关键路径进度的替代品,使人们能够辨别计划偏移的情况;5、PERT图的准备工作是使用PERT图最有价值的部分,包原创 2008-10-05 14:41:00 · 1052 阅读 · 0 评论 -
《人月神话》读书笔记(十七)——没有银弹,软件工程中的根本和次要问题
1、所有软件活动包括:根本任务——打造由抽象软件实体构成的复杂概念结构。次要任务——使用编程语言表达这些抽象实体,在空间和时间限制内将它们映射成机器语言。2、软件任务中的必要活动,也就是那些和构造异常复杂的抽象概念结构有关的部分: 仔细地进行市场调研,避免开发已上市的产品。 在获取和制订软件需求时,将快速原型开发作为迭代计划的一部分。 有机地更新软件,随着系统的运行、使用和测试,逐渐添加原创 2008-10-05 15:41:00 · 1998 阅读 · 0 评论 -
SOA之二——程序设计语言的发展历程
计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程。 汇编语言源程序必须经过汇编,生成目标文件,然后执行。高级语言源程序可以用解释、编译两种方式执行。 在高级语言的程序设计中,我们又可以分为几个阶段:面向过程的编程、面向对象的编程、面向组件的编程以及标准化的Web Service的编程。 1.面向过程的编程 面向过程的语言可以说是最原创 2009-01-28 22:15:00 · 3772 阅读 · 1 评论 -
《人月神话》读书笔记(七)——为什么巴比伦塔会失败?
1、巴比伦塔项目的失败是因为缺乏交流以及交流的结果——组织。项目人员之间的交流和沟通是项目能否顺利和成功的一个重要因素。2、缺乏交流引起进度灾难、功能的不合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定,开始出现偏差。3、团队如何进行相互之间的交流沟通:清晰定义小组内部的相互关系和充分利用电原创 2008-09-21 15:06:00 · 1427 阅读 · 0 评论 -
《人月神话》读书笔记(六)——如何在团队中贯彻执行架构决策
项目经理如何确保每个人听从、理解并实现结构师的决策?对于有多个结构师的小组如何保持系统概念上的完整性。1、手册、或者书面规格说明,是一个非常必要的工具。手册是产品的外部规格说明,它描述和规定了用户所见的每一个细节;同样的,它也是结构师主要的工作产物。手册不但要描述包括所有界面在内的用户可见的一切,它同时还要描述用户看不见的事物。后者是编程实现人员的工作范畴,而实现人员的设计和创造是不应该被限制原创 2008-09-15 16:36:00 · 706 阅读 · 0 评论 -
《人月神话》读书笔记(五)——架构时如何影响实现人员,如何避免画蛇添足
1、尽早交流和持续沟通能使结构师有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。2. 面对估算过高的难题,结构师有两个选择:削减设计或者建议成本更低的实现方法--挑战估算的结果。后者是固有的主观感性反应。此时,结构师是在向开发人员的做事方式提出挑战。想要成功,结构师必须牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,而不能支配;时刻准备着原创 2008-09-15 16:31:00 · 706 阅读 · 0 评论 -
软件项目风险管理——《与熊共舞》读书笔记(四) ——怎么进行风险管理
量化不确定 顾问的一段话:听着,这个项目根本不可能在明年1月前完成,它的可能性为零,最有可能的时间是明年4月,但也不能打保票,你最高不要承诺在明年5月1日前的任何时间交付,你最好承诺在五月以后某个时间交付,这样你成功的概率在50%以上。最保守的是承诺明年12月前交付,那是一个不可能失败的日期! 软件产业的整体经验:不确定性的范围与N点前的时间之比介于1.5到2.0之间最原创 2008-04-30 00:06:00 · 1835 阅读 · 0 评论 -
软件项目风险管理——《与熊共舞》读书笔记(五) ——风险与价值的量化
我个人觉得,我们对一个项目价值的认识比对风险的认识更为糟糕。其实对风险的量化本身就很难,对价值的量化就更难了。似乎量化价值只是客户的事情,正如书中所说的,我们一般忽视对价值的量化的理由是: 系统的规模太小,不知道这么做; 我们没有选择,我们只是必须完成它;上面的主管要这个系统;能有多少收益这取决于市场,特别是市场届时的发展情况有关;这个系统只是要替代现有的系统;命令是上面原创 2008-04-30 00:28:00 · 1253 阅读 · 0 评论 -
软件项目风险管理——《与熊共舞》读书笔记(七) ——风险管理的检验
我们真的进行风险管理了吗? 1.1、有一个风险清单; 2.2、有一个持续的风险发现机制; 3.3、不确定性图随处可见; 4.4、项目既有目标值又有估算值,两者从不相同; 5.5、每个风险都有明确的转化指标; 6.6、有一个不间断监控风险转化指标的机制; 7.7、每项风险都有应急计划和缓解计划; 8.8、每项风险的暴露值都得到了计算; 9.11、原创 2008-04-30 00:35:00 · 950 阅读 · 0 评论 -
软件项目风险管理——《与熊共舞》读书笔记(二) ——为什么要进行风险管理
对待风险管理的正确态度: 勇于承担风险而不是逃避,不做没有风险的项目! 几个关键概念:1、风险:未来可能发生的导致项目不好的结果的事件;不好的结果本身。2、风险和问题的区别:风险是尚未发生的问题;问题是业已成真的风险。3、风险转化:风险的具现。4、转化指标:判断风险已经转化或正在转化的依据5、风险缓解:必须在风险转化之前采取的措施。风险管理的行为构成:1、风险发现:头脑风暴,筛选,保持持续原创 2008-04-28 00:18:00 · 2801 阅读 · 0 评论 -
软件项目风险管理——《与熊共舞》读书笔记(三) ——为什么不进行风险管理
在众多企业中没有做风险管理,本书给出了一般的不进行风险管理的借口: 1.客户或上级还没有成熟到坦然接受风险的地步;(实际不然,客户可能已经很成熟,另外,也取决于我们的沟通技巧) 2.不确定性的范围太大,让人无法接受;(面对现实,行业的经验告诉我们会很大) 3.不确定性的范围让低效成为借口;(目标和估算的区别:估算是考虑了各种不确定性的一原创 2008-04-29 09:41:00 · 1320 阅读 · 0 评论 -
业务驱动开发的关键原则
建议直接从转载处阅读:http://www.ibm.com/developerworks/cn/rational/rationaledge/content/dec05/kroll/index.html文档选项 <!--document.write(将此页作为电子邮件发送);/转载 2008-08-29 17:42:00 · 739 阅读 · 0 评论 -
《人月神话》读书笔记(一)——对软件职业的认识
第一章 焦油坑1、系统级的软件产品是构件程序工作量的9倍。将其产品化引起了3倍的工作量,而将构件整合成完整系统所产生的设计和集成、测试又加强了3倍的工作量,而这些高成本的构件在根本上是独立的。2、从事软件行业的乐趣:享受创造事物的快乐;开发对其他人有用的东西的乐趣;编程的过程所体现的令人神魂颠倒的魅力;面对不重复的任务,不断学习的乐趣;纯粹的思维活动的存在、移动和运转方式完全原创 2008-09-10 22:09:00 · 783 阅读 · 0 评论 -
《人月神话》读书笔记(二)——对“人月神话”的关键认识
1、缺乏合理的时间进度是造成项目滞后的最主要原因,它比其它所有因素的总和还要大;2、所有的软件的开发人员都是乐观主义者:相信一切都将运作良好!(我以前是一个积极的乐观者,后来发现我估算的工作量成以三比较符合实际)3、由于我们纯粹的思维活动总是期望在实现的过程中必会碰到困难,但实际上思维的过程本身可能是由缺陷的,几乎总是有bug的;4、围绕成本核算技术,混淆了工作量和项目进度,错误的替换原创 2008-09-10 22:32:00 · 687 阅读 · 0 评论 -
《人月神话》读书笔记(三)——关于外科手术队伍的启发
1. 对于效率和概念的完整性来说,最好由少数干练的人员来设计和开发,而对于大型系统,则需要大量的人手,以使产品能在时间上满足要求。如何调和这两方面的矛盾呢?2. Mills的建议:外科医生(首席程序员):定义功能和性能技术说明书,设计程序,编制源代码,测试以及书写技术文档。副手:主要作用是作为设计的思考者、讨论者和评估人员。管理员:控制财务、人员、工作地点安排和机器,充当组织中原创 2008-09-10 23:07:00 · 1400 阅读 · 0 评论 -
《人月神话》读书笔记(四)——贵族专制、民主政治和系统设计
1、概念完整性是系统设计中最重要的考虑因素;2、功能与理解的复杂程度之间的比值才是系统设计的最终设计目标,而不仅仅是丰富的功能;3、为了获得概念完整性,则设计必须由一个人或者具有共识的小型团队来设计;4、对于大型项目,将概念完整性的设计和具体的实现分离是必要的;5、如果要得到概念完整性,则必须由少数人来控制这些概念;6、纪律和规则对行业是有益的。外部的体系结构的规定实际上是增强原创 2008-09-15 16:03:00 · 1077 阅读 · 0 评论 -
SOA之三——面向服务的计算环境及面向服务的计算环境的一般特征
计算环境由计算机、相关的软件平台和以及连通这些计算机和相关软件平台网络组成。不同的计算环境有不同的计算风格和编程模型,由一些特定于该计算环境的技术来支撑。 在面向服务的计算环境(其实更准确的说,是面向服务架构的计算环境)中,系统可以是高度分布、异构的。它一般包括服务运行时环境(Service Runtime)、服务总线(Service Integration Infrastructure原创 2009-02-11 22:03:00 · 2307 阅读 · 0 评论