[笔记]人月神话
整理:fasiondog
这是一年前要写的笔记,前几天想写完它,今天接着写,却发现前几天写的统统都丢了,顿时没兴趣了,也不准备继续了,就此发布。看样子,云笔记中加入历史版本功能还是相当有必要。
又一次重温经典《人月神话》。
《人月神话》全书的重点应该是揭示软件开发固有的困难属性,以及这些困难造成的后果,并提供了部分的解决经验和思路,虽然一开始是以将“人”和“月”互换的神话开始的。 全书的先知不一一列举,详见附件笔记。
这里,总结一下Brooks最后提到的“针对概念上根本问题的颇具前途的方法”,在当今软件开发中的情况:
1)购买和自行开发,构建软件最可能的彻底解决方案是不开发任何软件
这一点,应该算是有相当大的进展,尤其是在Java、C#的世界、开源框架和软件、企业IT解决方案、SOA、云计算领域中。特别是基于SOA架构的企业IT解决方案中,整个软件开发世界几乎完全转变为“软件系统集成”。所谓的集成,也就是将不同的“组件”组装在一起,实现系统的目的。这种集成的开发模式,对应着Brooks提到的程序员的快乐之一——组装。虽然,组装也很有趣,可是我怀疑在这里程序员应该要被分为两类,一类更喜欢”创造“的乐趣,对应着算法、服务的程序(少数群体);而另一类则喜欢或者被迫喜欢“现代式的组装”的乐趣(多数群体)。老实说,或许刚开始组装全新的系统很有趣,但是之后一直在上添加功能,就未必那么有趣了。不过重要的还是,”集成“式的软件开发和从无到有的软件开发方式还是有很大的区别,但这几乎重来不被提起或加以区分。至少,在我看来,”集成“式的开发有一个很重要的特点”快速响应“,这代表着:
- 快速实现新功能,满足客户要求
- 快速定位问题,包括快速定位自己的问题以及快速的证明是别人的问题
或者上面的两点更像两个关口,大部分人连第一个都闯不过,就”栽倒“了,痛苦不堪。(没完)
2)需求精炼和快速原型
3)增量开发——增长,而非搭建系统
4)卓越的设计
关于“统计”,良好和卓越