软件开发实践者的思考读后感

时间:2021-07-09 14:52:21 读后感 我要投稿

软件开发实践者的思考读后感

  几天就读完了倪建大牛写的这本别具风味的作品,主要是对软件开发过程的一些思考。作者的写作方式很特别,通过叙述故事的方式讲解了软件开发的一整套流程和流程中需要注意的地方。作者的主要态度是批判的,带有理想主义的色彩,然而却是发人深省的。

软件开发实践者的思考读后感

  这本书给我最大的收获就是在软件开发中要学会思考。思考所有步骤和方法存在的目的与意义。是否符合软件开发行业发展的趋势。作者主要涉及的是方法论上的层次,俯瞰着大地上的开发组织和人员。看到的问题和解决方案往往是直指本质的。

  这里摘几条印象深刻的见解和需要识记的名词。学习新知识最快的途径是将新知识纳入自己所理解的一套知识体系。所以,如何在学习的同时建立起各个技术的联系和区别是很重要的,有利于建立自己的体系。修炼好内功,在接触新知识的时候,才能很快上手并理解其本质。软件的本质是2进制和与非逻辑。软件开发的本质是人的创造,而创造的根源在与想象,这又引出了“隐喻”和“故事”。隐喻是指从生活阅历中抽象出与所要开发的软件的运行流程相像的事件与关系。故事,则是讲述故事的方式想象软件运行的流程。

  CMM:Capability Maturity Model,能力成熟度模型。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。

  敏捷开发:敏捷软件开发宣言:个体和交互胜过过程和工具,可以工作的软件胜过面面俱到的文档,客户合作胜过合同谈判,响应变化胜过遵循计划,敏捷开发最注重的是人,或者说个体。目标是提高个体的主动性,提高产出效率。敏捷开发要求团队一起工作,甚至还有客户。结对编程。迭代交付,三周为一个周期,每个周期都发布可用地、经过测试的代码。2到5个周期后进行一次发布。敏捷开发积极拥抱变化,主要依靠代码重构来配合变化。敏捷开发的优点在于发布时间短和响应需求变化。敏捷开发的缺点是可操作性差。实践者们常常走入各种各样的误区。根本原因还是人,人的主动性还有在软件开发中的行为受各种各样因素的影响。

  在需求分析阶段准备两份文档。一份使用客户的术语表达客户的故事,另一份是使用软件术语表达软件实现的故事。需求分析人员是客户和项目组之间的.桥梁,是客户和软件开发人员之间的桥梁,十分类似于科手术过程,软件开发团队需要一个主刀医师,即软件架构师。软件架构师保证了整个软件的思想和架构是一个主体。而不是零散的,拼凑的。这有利于开发和维护。软件架构师在一个团队里一般只有一个,或者一个架构师团队由其中一个人作为领导。这样保证了整个软件系统的一致性。软件架构师工作的主要依据是经验。

  在软件开发过程中,人是最重要的因素,而责任、权利和利益是保证这个因素发挥作用的关键。负责文化是人类社会活动中必须具备的一种文化。团队往往成为不负责任的推辞。建立负责制度的目的不是为了惩罚,而是通过利益损失的形式,表明一个事实:没有金刚钻,别揽瓷器活。也是质量保证的一个重要推动力。

  对于软件来说,最大的软肋在于逻辑思维的不可遍历性。这是测试工作存在的一个原因。

  实际的软件工程师实践证明,让对软件思想有深刻理解的软件工程师进行测试,可以大幅度提高软件质量。所以,测试工作并不比软件开发轻松,让软件开发菜鸟来进行测试是不负责任的。

  测试人员并不是软件开发人员的对立者。他在找出bug的同时,也要尽可能的帮助编程人员指出这种bug存在的原因以及地点。

  所有论点都存在一定的上下文之中。所以学习别人的论点只是理会这个论点的思路,而不要到处生搬硬套。怀疑一切。

  项目管理工作的基本思路不是控制,而是创造有利的环境和顺势引导,扫清软件开发中的各种障碍。项目管理工作要与软件开发工作隔离开来。

  对于软件开发者而言,你需要考虑的是风险服务,即风险响应。而不要把主要精力放在风险预防和控制上。

  软件维护要在项目开始或者设计时就要予以考虑。

【软件开发实践者的思考读后感】相关文章:

服务软件开发技术思考论文02-07

实践者的体验01-20

教师,做反思的实践者》读后感02-13

教师:革新的课程实践者01-20

业务园长也是实践者04-30

软件工程实践者的思想[3]01-01

软件工程实践者的思想[2]01-01

软件工程实践者的思想[1]01-01

管理,让非实践者走开! -管理资料01-01