人月神话

读《人月神话》seven 为什么巴比伦塔会失败?

不羁的心 提交于 2019-12-18 11:43:13
读《人月神话》seven 为什么巴比伦塔会失败? 巴比伦塔 大型编程项目中的交流 项目工作手册 大型编程项目的组织架构 总结: 全文更新索引: 读《人月神话系列 zero》<—点击查看 巴比伦塔   这是《圣经·旧约·创世记》第11章故事中人们建造的塔。当时人类联合起来兴建希望能通往天堂的高塔;为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。 这个项目,影响成功的因素有哪些? 清晰的目标 :我要造一个高塔,通往天堂。清楚明白。也许你觉得这不可能完成,因此一开始就放弃吧,做什么都比这个好。那么,这项工程甚至连一个普通楼房的高度都没有完成。明白我的意思吗?我是说,远没有达到我们需要考虑“清晰的目标”这个因素之前,它就已经失败了。 仔细想想吧,人生有多少事情,在根本没有达到需要考虑目标的可行性之前,就已经被我们放弃了? 人力 :肯定时充足的。 材料 :他们用砖块代替石头,用沥青代替灰泥(建造房屋)。材料? 在美索不达米亚有着丰富的泥土和柏油沥青。 时间 :没有任何时间限制 技术 :没有达到需要更好的技术之前,这项工程就已经失败了。   于是作者从而引出他重视的一点。这个群体性的活动,需要交流、以及交流的结果:组织。他们无法相互交谈,从而无法合作。当合作无法进行时,工作陷入了停顿。通过史书的字里行间,我们推测交流的缺乏导致了争辩

人月神话-人月

天大地大妈咪最大 提交于 2019-12-10 00:31:55
缺乏合理的进度安排是造成项目滞后的最主要的原因,它比其他所有因素加起来的影响还大 引起的原因 a.估算技术不严谨科学,缺乏有效研究,建立在不真实的假设:一切会运行良好 b.对进度缺少跟踪和监督 c.认为人月可以互换,进度与工作量不等同 编程人员的乐观主义 人月关系 a.人员和时间的关系-完全可以分解的任务 (不需交流的体力活如收割小麦,这在系统编程中近乎不可能) b.人员和时间的关系-完全不可分解的任务 (人类女性孕育一个生命需要10个月,不能通过人手增加来减少这10个月的任何时间) c.人员和时间的关系-需要沟通的可分解任务 (沟通:培训以及相互间的交流) d.人员和时间的关系-关系错综复杂的任务 (实践/沟通交流的工作量非常大) 系统测试 软件任务进度安排,作者多年实战经验:[作者:美·小弗雷德里克·布鲁克斯,曾任职IBM,从事研发管理] 1/3 计划 1/6 编码 1/4 构件测试和早期系统测试 1/4 系统测试,所有构件已完成 通过对传统项目进度安排的研究,我发现很少有项目允许为测试分配一半的时间,但大多数项目的测试实际上是花费了进度中一般的时间,他们中的许多项目,在系统测试之前还能保持进度。 不为系统测试安排足够的时间极大可能引发灾难后果 向进度落后的项目安排新人手只会使进度更加看落后 来源: https://www.cnblogs.com/mosicol/p

康威定律--架构师之路

断了今生、忘了曾经 提交于 2019-12-01 01:47:59
Soft skills are always hard than hard skills. 软技能比硬技能难。 老板听说最近流行“微服务”,问架构师咱们的系统要不要来一套?老板又听说最近流行“中台系统”,问架构师咱们要不要搞起来?其实,这些问题不用老板问,关注技术发展趋势的架构师每当听到新的技术或解决方案,都会暗中思忖是否应用到系统中。然而,用或不用,总不能凭感觉吧。此时,如果你能灵活运用康威定律,那么做出的判断将更加完美。 康威定律 康威定律是马尔文·康威1967提出的:“设计系统的架构受制于产生这些设计的组织的沟通结构。”通俗的来讲:产品必然是其(人员)组织沟通结构的缩影。 跨部门沟通是非常难的,系统各个模块的接口也反映了它们之间的信息流动和合作方式。 康威定律可谓软件架构设计中的第一定律,起初只是在杂志上的发表,后经过《人月神话》这本软件界圣经的引用,并命名为康威定律(Conway’s law),因此得以推广。 只通过简单的描述可能无法理解康威定律的精髓所在,原文中康威定律可总结为四个定律: 第一定律 组织沟通方式会通过系统设计表达出来。 第二定律 时间再多一件事情也不可能做的完美,但总有时间做完一件事情。 第三定律 线型系统和线型组织架构间有潜在的异质同态特性。 第四定律 大的系统组织总是比小系统更倾向于分解。 第一定律 Communication dictates

作为一个有理想的程序员,必读的书都有哪些?

巧了我就是萌 提交于 2019-11-30 21:37:50
一位有理想的程序员 一定是一个热爱学习的程序员 一定是愿意接受新事物的程序员 一定是一个好的产品经理 程序员要读的书可以分为五个类别,分别是: 编程实践(Coding Practice) 设计与架构(Design & Architecture) 方法学(Methodology) 思想(Thought) 产品(Product) 以下是小王子列出的书单: 1.《人件(原书第3版)》 软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人 的因素并不容易解决,一旦解决了,你将更有可能获得成功。人们认为《人月神话》关注"软件开发"本身,《人件》则关注软件开发中的"人",因此,在成千上 万的书架上,《人件》永远和《人月神话》并列在一起。 2.《人月神话》 与《人件》共同被誉为软件管理图书领域最为璀璨的“双子星”,作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。 3.《设计原本》 未来数十年内从事软件行业的程序员、项目经理和架构师必读的一本书,是计算机图书领域的又一史诗级著作。本书从工程师和架构师的视角深入地探讨了设计的和过程,尤其是复杂系统的设计过程,旨在提高产品的实用性与有效性,以及设计的效率和优雅性。 4.《程序员修炼之道:从小工到专家》