<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[ 读《人月神话》]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 17 Jul 2009 04:02:15 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	翻开扉页，购书日期：2003.2.10。实在汗颜，且此类书，我的案头还有许多。<br/>&nbsp;&nbsp; 在两周中抽出时间，翻看完了这本传说中的经典。<br/>&nbsp;&nbsp; 总的感觉，收获并不多，虽说有些东西并未能完全理解，但大多在作者看来是未来的东西，已早成为现实。大致看来，没有什么新的概念。<br/>&nbsp;&nbsp; 于是，也谈不上读后感，只是把看的过程中的笔记重新写一遍，当作另一个自已的索引吧。<br/>&nbsp;&nbsp; (注：突然下决心，凡是看完一本书，都应有一篇读书笔记，否则，有可能就白看了)。<br/><br/>&nbsp;&nbsp; 若干前言，序言，将本书称为神品。<br/>&nbsp;&nbsp; 来，看书吧。<br/><br/>&nbsp;&nbsp; 一：焦油坑<br/>&nbsp;&nbsp; 编程是什么？许多人痛苦挣扎的焦油坑。它是乐趣与苦恼共存的创造性活动。<br/>&nbsp;&nbsp; 有些体会吗？没有，那你，转行吧。<br/><br/>&nbsp;&nbsp; 二：人月神话<br/>&nbsp;&nbsp; 哇，这么快就切入主题了。<br/>&nbsp;&nbsp; 2.1：人月不能用来衡量工作的规模。但显然大家都是用这个来衡量，作者并未讲不用这个还能用啥。<br/>&nbsp;&nbsp; 2.2：1/3计划，1/6编码，1/4构件及早期测试&nbsp;&nbsp;1/4系统测试。嗯，一半时间用来测试。我所在公司现在的状况确实如此。只不过领导们把<br/>&nbsp;&nbsp; 测试多是安排在了加班时间中。<br/>&nbsp;&nbsp; 2.3：向进度落后的项目中增加人手，只会使进度更落后。这有些绝对了，如果添加的人手得力，还是可以提升进度地。<br/><br/>&nbsp;&nbsp; 三：外科手术队伍<br/>&nbsp;&nbsp; 嗯，这是很专业的队伍。<br/>&nbsp;&nbsp; 3.1：大型项目划分为若干部分，每一部分一个团队，团队按外科手术队伍的方式组建。外科医生难求噢。<br/>&nbsp;&nbsp; 3.2：由系统结构师来协调若干个外科医生。<br/><br/>&nbsp;&nbsp; 四：贵族专制，民主政冶和系统设计<br/>&nbsp;&nbsp; 4.1：为了得到概念上的一致性，需要无任何歉意的贵族专制。<br/>&nbsp;&nbsp; 4.2：在稳定体系统结构下的实现的设计，同样需要创造性，不要低估或悲观。<br/>&nbsp;&nbsp; 4.3：体系结构未完成，编程人员做啥？作者说：很简单，体系统结构完成后，再雇佣他们。<br/>&nbsp;&nbsp; 4.4：有时，体系结构、开发实现、物理实现可以同时开始和并发进行。<br/><br/>&nbsp;&nbsp; 五：画蛇添足<br/>&nbsp;&nbsp; 5.1：结构师与承包商与开发人员应该有良好的交流准则和机制。<br/>&nbsp;&nbsp; 5.2：设计师的第二系统往往会有毛病：一是过分设计，二是对已落后的技术进行细化和精练。<br/><br/>&nbsp;&nbsp; 六：贯彻执行<br/>&nbsp;&nbsp; 6.1：文档化的规格说明很有意义，另外，可再进行形式化定义，一种为主，一种为辅。<br/>&nbsp;&nbsp; 6.2：周例会，年度大会的作用。<br/>&nbsp;&nbsp; 6.3：多重实现可保证定义更简洁，更规范。是这样的吗？<br/>&nbsp;&nbsp; 6.4：总结FAQ是好的工作方式。<br/>&nbsp;&nbsp; 6.5：产品测试小组是顾客的代言人。<br/><br/>&nbsp;&nbsp; 七：为什么巴比伦塔会失败<br/>&nbsp;&nbsp; 7.1：失败的原因，缺乏交流以及相应的组织。<br/>&nbsp;&nbsp; 7.2：大型项目中的交流方式：电话，会议，手册。有些落伍了，呵呵。<br/>&nbsp;&nbsp; 7.3：项目工作手册的制作方式。<br/>&nbsp;&nbsp; 7.4：大型项目中的正确组织架构。其中，最关键的角色，产品负责人和技术主管的多种协作方式。<br/><br/>&nbsp;&nbsp; 八：胸有成竹<br/>&nbsp;&nbsp; 8.1：对编程人员生产率的若干调查，得出结论：<br/>&nbsp;&nbsp; 8.1.1：我们总是对人员的工作时间做了不现实的估计，某些其余时间被忽略了，这差不多占一半时间。 <br/>&nbsp;&nbsp; 8.1.2：交互越多，生产率越低，大致有1-3倍的差距。<br/>&nbsp;&nbsp; 8.1.3：使用适当的高级语言，可以将生产率提高5倍。 <br/><br/>&nbsp;&nbsp;九：削足适履<br/>&nbsp;&nbsp; 9.1：程序空间也是成本，开发人员必须为此设计目标和实现。(显然，现在对此的要求大大降低了)<br/>&nbsp;&nbsp; 9.2：规模控制的方法：制定总体规模预算，个体间多交流勾通。<br/>&nbsp;&nbsp; 9.3：空间相关技能：功能与空间，空间与时间，技术积累。<br/>&nbsp;&nbsp; 9.4：数据的表现形式是编程的根本。仔细思考程序的数据会得到好的效果。<br/><br/>&nbsp;&nbsp; 十：提纲挈领<br/>&nbsp;&nbsp; 10.1：文档的作用(在管理方面)：项目监督，预警，查查列表，状态控制，汇报的数据基础。<br/>&nbsp;&nbsp; 10.2：软件项目的关键文档：目标，技术说明，进度，预算，工作空间分配，组织图。<br/>&nbsp;&nbsp; 10.3：只有书面文档才是精确，可勾通，可检查的。<br/><br/>&nbsp;&nbsp; 十一：未雨绸缪<br/>&nbsp;&nbsp; 11.1：构建一个试验性的系统，然后抛弃它。<br/>&nbsp;&nbsp; 11.2：为变更做准备，为变更设计系统。<br/>&nbsp;&nbsp; 11.3：为主更建立更强大的团队，组织结构要更灵活。管理与技术人员可互换，最小化人员间的接口。<br/>&nbsp;&nbsp; 11.4：程序维护通常是开发成本的40%,缺陷恢复通常以20%-50%的几率引入新Bug。<br/>&nbsp;&nbsp; 11.5：软件维护是提高混乱度的过程。<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; 十二：干将莫邪<br/>&nbsp;&nbsp; 12.1：配备专门的工具管理人员的必要性。<br/>&nbsp;&nbsp; 12.2：我们需要的工具：目标(辅助机器)以及合理的进度安排(这点可能已经不是什么工具了)。编程工具，文档系统，性能仿真器。<br/>&nbsp;&nbsp; 12.3：解释高级语言与交互式编程。<br/><br/>&nbsp;&nbsp; 十三：整体部分<br/>&nbsp;&nbsp; 13.1：整体考虑一个系统，我们需要：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使Bug更不易产生的方式来设计。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 编写测试规格说明，采用精化方式，自上由下设计.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 采用结构化编程。<br/>&nbsp;&nbsp; 13.2：早期测试的四步：本机调试，内存转储，快照，交互式调试。<br/>&nbsp;&nbsp; 13.3：系统集成调试的方法：使用经过调试的构件单元搭建系统。 <br/><br/>&nbsp;&nbsp;十四；祸起萧墙<br/>&nbsp;&nbsp; 14.1：使用里程碑来控制进度。<br/>&nbsp;&nbsp; 14.2：采用关键路径技术来判断偏离的关键。<br/>&nbsp;&nbsp; 14.3：老板应该尽量减少角色冲突来得到更真实的报告。<br/>&nbsp;&nbsp; 14.4：需要拥有能了解状态真相的机制或者是通过计划和控制小组。<br/><br/>&nbsp;&nbsp; 十五：另外一面<br/>&nbsp;&nbsp; 15.1：用“如何做”来代替说教之词。<br/>&nbsp;&nbsp; 15.2：程序文档的需求：使用程序，验证程序，修改程序的不同需求。<br/>&nbsp;&nbsp; 15.3：弱化流程图的作用，并简化之。<br/>&nbsp;&nbsp; 15.4：用程序来自动生成文档。<br/><br/>&nbsp;&nbsp; 十六：没有银弹<br/>&nbsp;&nbsp; 16.1：软件的根本任务——打造构成抽象软件实体的复杂概念结构，它始终未得到改进，所以，生产率不能得到数量级的提升。<br/>&nbsp;&nbsp; 16.2：软件开发的根本困难是：规格说明、设计和测试这些概念上的结构(我没太明白噢)。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件系统的内部特性：复杂性、一致性、可变性、不可预见性。<br/>&nbsp;&nbsp; 16.3：解决次要问题的一些方案：高级语言、分时、统一编程。<br/>&nbsp;&nbsp; 16.4：银弹的希望：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高级编程语言、面向对象编程、人工智能、专家系统、自动编程、图形化编程、程序验证、环境和工具、工作站。<br/>&nbsp;&nbsp; 16.5：针对概念上根本问题的有前途的方法：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 购买构件、需求精练、快速原型、增量开发、培养卓越的设计人员。<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; 十七：再论“没有银弹”<br/>&nbsp;&nbsp; 17.1：作者回应某些反驳“没有银弹”的评论。<br/>&nbsp;&nbsp; 17.2：面向对象技术的现实情况。<br/>&nbsp;&nbsp; 17.3：重用的情况。<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; 十八：《人月神话》的观点：是与非？<br/>&nbsp;&nbsp; 复习人月神化中的重要的十五个观点。<br/><br/>十九：20年后的《人月神话》<br/>&nbsp;&nbsp; 19.1：概念完整性需要结构师来保证。<br/>&nbsp;&nbsp; 19.2：开发第二个系统的问题，再强调：盲目的功能，无确定的用户群，瞎猜。<br/>&nbsp;&nbsp; 19.3：图开界面的成功。<br/>&nbsp;&nbsp; 19.4：用增量开发模型取代不正确的瀑布式开发。<br/>&nbsp;&nbsp; 19.5：信息隐藏的重要，不应该对开发人员公布所有技术文档，大多数，接口足以。<br/>&nbsp;&nbsp; 19.6：人月配备与进度的平衡，再次进行证明。<br/>&nbsp;&nbsp; 19.7：人的作用决定一切，推荐《人件》一书。<br/>&nbsp;&nbsp; 19.8：构件开发。<br/>&nbsp;&nbsp; 19.9：软件工程的状态和未来。<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; 应该说，第十九章是最重要，也是我们最应该关心的一章，但可惜的是，由于年代过于久远，并未看到什么新鲜的东东。
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论]  读《人月神话》]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>