《简单之美――软件开发实践者的思考》

《简单之美——软件开发实践者的思考》终于上架了,从年初定稿到现在转眼又4个月,希望看过的朋友都能喜欢。

 

贴下每章之前的话,推广下本书中的想法。

 

第1章 无极生太极
在进入软件开发领域之前,我们必须要做一些思想上的准备。这种思想上的准备高于方法论,以及任何一项具体的工作内容,它可以使我们站在一个更高的角度来认识软件开发这件事。思想认识是解决问题的根本,这一章的内容体现了思想工作的重要性。
我们将围绕着三个基本思想展开讨论。首先,软件开发是一项创造性的活动,因为它的创造性,我们要特别关注软件开发中的想象力;其次,我们要把握认知方法的本质,通过有意识地建立自己的思想体系来学习各种知识;最后,我们要追求对软件开发中各种问题的简化,只有简化问题,才能高效地解决问题。
在讨论中,我们会结合一些具体的技术背景知识。这些技术背景知识或者比较基础,或者泛泛而谈。事实上,我们的目标不在于详细介绍这些知识本身,而只是为上述三个基本思想的讨论提供一些证据。


第2章 关于软件开发方法论的思考
当我们开始具体的软件开发工作时,方法论是第一件需要思考的事情。本章撷取了敏捷开发和CMM这两种流行的方法论,通过对它们的剖析,阐述了文化在方法论实施过程中的意义。
文化是方法论的基础,是方法论的运行环境。割裂文化来实施方法论,就像建造空中楼阁。在本章中,我们还构想了一种“最好的”软件开发方法的思想。
从本章开始,我们还会逐渐欣赏到一个完整的场景故事。这个场景故事蕴含的深意要超出本书正文中的理性分析部分。你的视角和感悟将是本书价值的重要组成。

第3章 关于需求的思考
需求就像一束光的源点,失之毫厘,谬以千里。没有人不重视需求问题,可是,有多少人能讲清楚解决需求问题的思路呢?扪心自问,需求跟踪矩阵和需求变更委员会提升了我们多少信心呢?
本章尝试给出解决需求问题的方法。这个方法的逻辑很简单,首先,我们需要准确表达需求,术语和讲故事是两种好的辅助手段;其次,我们要和客户一起,推动需求的变化,需求变化不是成本的代名词,被动接受需求变化才是吞噬成本的罪魁祸首。

第4章 关于软件架构设计的思考
软件架构师在软件开发中的角色就如同主刀医生在一次外科手术中的角色,不确立这一点,软件开发的正常化就无从谈起。
本章讨论了软件架构设计的方方面面,包括架构的定义,架构的来源,构架软件系统的一般方法,构架软件系统的能力要求,以及软件架构师的素质。
我们还讨论了一个框架(框架常常传递着构架软件的思想)设计的实例。这次设计实践的重要性在于提醒我们对于隐喻的关注。当人们设计软件时,通常是在隐喻的基础上,直接想象系统的运行状况,随着想象的细节化,然后才会有各种抽象的产生。可是,这个阶段没有被任何软件设计的方法论所关注。

第5章 关于软件实现的思考
本章的内容相当繁杂,涉及到软件生产过程中的方方面面(除了架构设计)。和本书中的其他章节一样,都是在反思中感悟,在批判中立论。对于程序员来说,我推荐他们阅读前两节,对于管理者来说,我推荐他们阅读后三节。
在这一章中,我们充分关注了以人为本的思想。我们希望软件生产的参与者是简单的、快乐的、积极的、负责的。为了做到这些,我们还需要制度和文化。软件生产是一项系统工程,这需要我们不断完善自己的思想体系。机械地运用某些技术方案,是无法真正解决问题的。

第6章 关于软件测试的思考
本章讨论了软件测试的本质和原则。软件测试是一种破坏,只有当破坏推动了建设才是有意义的。
我们以一次性能测试(以及随之而来的性能调优)为例,说明了破坏的意义。在这次性能测试(性能调优)过程中,几乎所有的问题都可以在软件生产过程中解决,这说明了软件生产是不完整的,而不能说明性能测试是成功的。换句话说,如果在下一次的性能测试过程中,我们仍然碰到同样的问题,那么,从软件开发本身来说(非商业性的因素),这次性能测试几乎没有任何意义。
另外,没有设计,就无所谓测试。


第7章 关于团队的思考
软件开发离不开团队,可是,什么是团队,怎样才能发挥团队的作用,很多人并不是很清楚。所以,我们常常看到团队建设和团队管理走入各种各样的误区。例如,团队决策,无责管理等。本章对这些问题进行了思考,对团队的价值观,团队成员的沟通展开了详细的讨论。
本章中的“现实与理想”一节,是专门奉献给企业经营者的。团队的建设离不开企业经营者的参与,只有企业经营者才能决定团队建设的成败。

第8章关于项目管理的思考
本章对于项目管理的思考是颠覆性的,这些反思来自于大量的实践。我认为,对于软件开发来说,管理是服务,而不是控制。这一章中列出了很多理由来支持这个观点。基于这个观点,我们还讨论了管理的境界。
我们还讨论了计划和风险的问题。本章中提到的“混沌理论”,可以帮助我们降低对这两项工作的期待。我们需要计划和风险控制,但是更需要的,是人本身。

第9章 关于软件维护的思考
对于软件维护的考虑要从设计阶段就开始规划,这是解决维护问题的根源。未雨绸缪,才能决胜千里。在本章中,我们讨论了组件化开发。
另外一个重要的思想,就是毫不妥协地解决历史遗留问题。很多人被这种遗留问题束缚了手脚和头脑,这是一种巨大的浪费。当你无法承受软件系统的维护费用大于开发费用的时候,可以来看一看本章中的思考。我将站在一个现实主义者的立场上为你提供建议。

第10章 关于组织发展的思考
很多人提及组织发展这个话题时,常常会忽略最核心的内容——知识积累,所以,我们总是看到一家公司运行了多年,可是,在软件开发技能上没有任何进展。积累知识的道理很简单,在这方面毫无进展的“借口”却很多。
本章反复强调知识积累的重要性,并探讨了一些积累知识的思路和方法。另外,我们还站在行业的角度,呼唤更多优秀的企业为行业文化的成熟做出自己的贡献。这种贡献具有深远的意义。

 

再贴两个链接:

互动网:http://www.china-pub.com/196526

豆瓣网:http://book.douban.com/subject/4714092/

 

CU上可以申请免费试评:http://bbs.chinaunix.net/thread-1696956-1-1.html

 

诚心希望看过的朋友发表下自己的意见。

你可能感兴趣的:(软件开发,思考,实践者,休闲,简单之美)