《大道至简》读后感

    有幸阅读到周爱明老师的《大道至简》这本书,本书并未讲述过多关于技术层面上的问题,而是从思想角度出发,阐述了软件工程的核心思想,用轻便简洁的语言向读者介绍了作者对于软件工程的思想与见解。在学习任何新事物之前,我们都应了解它的思想,即为“追根溯源”。正如书名所言,《大道至简》重在“简”字,全书共十一个章节,其中每小节都有一个生动且丰富的标题直指中心,架构明显。在此,我想从三个方面来谈谈我对这本书的心得,以及对软工思想的进一步理解,分别是:协调、工程和矛盾。
    第一个关键词是协调。书中关于“项目经理”这一角色用了大量笔墨介绍,同时它也代表了处于项目开发中的一类人。书中写道:“做管理起码需要能承担责任,这是最基本的素质。”从管理角度来看,项目失败与否与项目经理的经验直接相关,而协调能力则是考验一个管理者能力的重要部分。协调的内容包含方方面面,其中较为重要的一环则是客户与开发者之间的协调过程。客户有需求,开发人员需要尽可能地满足客户,同时替客户完善各种未知的可能。然而在真正的项目开发过程中,应当尽量避免客户与开发人员的直接交流,这种极为不明智的选择,于是项目经理往往承担起了这个责任。他处在中间位置,既要把客户的需求简洁完整的传达给开发人员,又要用通俗易懂的方式向客户介绍开发者的思想方向。书中有一句话我颇有感悟,“我们需要在正常人与盲人之间建立一种沟通方式,既然盲人不能睁开眼睛,那么你就闭上眼睛好了。”
    第二个关键词是工程。我对工程这个词的理解很浅,甚至可以说完全不了解。书中提到,最狭义的工程,是描述“做什么”和“做到什么“。也就是说,是对目标的描述和成果的检测。如果说工程关心的是“需求”、“配置”和文档“等这样一些要素,那么这样的工程还是停留在技术层面的;更加高级的工程则应该把更多的精力放在关心目标上,目标即为需求,乃是最终的结果。从最初的简单编程开始,到现在工程团队的组织开发,正是出于实现的需要,我们才设计了各种结构与模型,才衍生出了协作与工程。抛开实现的技术细节不论,在工程中,“以什么驱动 开发”其实是一个过程问题。而你应该明白,过程的选择 (或制定)取决于你的工程需要,以及它在相关应用领域的 适用性、过程工具的充备性和这个过程理论的完善程度, 而不是大公司们的鼓吹。
    第三个关键词是矛盾。在需求阶段我们就会面临“目标“的问题,然而大多数时候,我们会在项目交付和使用时才会碰到客户在质量上的投诉。在项目的平衡三角中讨论的是目标问题,但并不讨论质量问题。也就是说在项目开发过程中,如何更快地完成项目并减少资源占用,实现更多功能才是团队主要关注的问题。然而由于目标可能在平衡中确立,但质量却要在过程中控制,即使在时间、资源和功能三者中取得了平衡,即使客户、项目组和公司同样满意于这个平衡“目标”,他仍然有可能是“不能实施”的。矛盾始终存在,如何最大化的解决矛盾才是考验一个团队的真正时刻。
    在没有工程的时代,一个程序员算法的全部是他们掌握了一门语言,懂得了生活中常见的逻辑。他们用程序的方式思考和学习了一些算法,并根据前人的经验,把这些算法应用在一些数据结构上,所以最后我们就看到了他们的程序。最后,新颖的思想,是软件工程的指导思想,阅读这本书,让我对软件开发有了新的认识,以真正的软件开发的思想去思考问题。
posted @ 2020-08-05 17:45  第厘  阅读(221)  评论(0编辑  收藏  举报