简单之美-软件开发实践者的思考 01

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

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

这里摘几条印象深刻的见解和需要识记的名词。

学习新知识最快的途径是将新知识纳入自己所理解的一套知识体系。所以,如何在学习的同时建立起各个技术的联系和区别是很重要的,有利于建立自己的体系。修炼好内功,在接触新知识的时候,才能很快上手并理解其本质。

软件的本质是2进制和与非逻辑。软件开发的本质是人的创造,而创造的根源在与想象,这又引出了“隐喻”和“故事”。隐喻是指从生活阅历中抽象出与所要开发的软件的运行流程相像的事件与关系。故事,则是讲述故事的方式想象软件运行的流程。关于第6章 关于软件测试的思考
本章讨论了软件测试的本质和原则。软件测试是一种破坏,只有当破坏推动了建设才是有意义的。
我们以一次性能测试(以及随之而来的性能调优)为例,说明了破坏的意义。在这次性能测试(性能调优)过程中,几乎所有的问题都可以在软件生产过程中解决,这说明了软件生产是不完整的,而不能说明性能测试是成功的。换句话说,如果在下一次的性能测试过程中,我们仍然碰到同样的问题,那么,从软件开发本身来说(非商业性的因素),这次性能测试几乎没有任何意义。
另外,没有设计,就无所谓测试。软件开发离不开团队,可是,什么是团队,怎样才能发挥团队的作用,很多人并不是很清楚。所以,我们常常看到团队建设和团队管理走入各种各样的误区。例如,团队决策,无责管理等。本章对这些问题进行了思考,对团队的价值观,团队成员的沟通展开了详细的讨论。

时间: 2024-08-29 09:16:34

简单之美-软件开发实践者的思考 01的相关文章

简单之美-软件开发实践者的思考 02

敏捷开发最注重的是人,或者说个体.目标是提高个体的主动性,提高产出效率.敏捷开发要求团队一起工作,甚至还有客户.结对编程.迭代交付,三周为一个周期,每个周期都发布可用地.经过测试的代码.2到5个周期后进行一次发布.敏捷开发积极拥抱变化,主要依靠代码重构来配合变化. 敏捷开发的优点在于发布时间短和响应需求变化,敏捷开发的缺点是可操作性差.实践者们常常走入各种各样的误区.根本原因还是人,人的主动性还有在软件开发中的行为受各种各样因素的影响. 在需求分析阶段准备两份文档.一份使用客户的术语表达客户的故

简单之美-软件开发实践者的思考 03

对于软件来说,最大的软肋在于逻辑思维的不可遍历性.这是测试工作存在的一个原因. 实际的软件工程师实践证明,让对软件思想有深刻理解的软件工程师进行测试,可以大幅度提高软件质量.所以,测试工作并不比软件开发轻松,让软件开发菜鸟来进行测试是不负责任的.测试人员并不是软件开发人员的对立者.他在找出bug的同时,也要尽可能的帮助编程人员指出这种bug存在的原因以及地点.所有论点都存在一定的上下文之中.所以学习别人的论点只是理会这个论点的思路,而不要到处生搬硬套.怀疑一切. 项目管理工作的基本思路不是控制,

Web2.0简单介绍和软件开发结构浅谈

1.Web2.0指的是利用Web的平台,由用户主导而生成内容的互联网产品模式,为了区别由网站雇员主导生成内容的传统网站而定义为Web2.0基于Web2.0这些特点所产生的具有代表性的服务如下:博客.内容源.WiKi.参与评论与评分的Digg机制.美味书签.社会化网络.微博.基于位置信息的服务.即时通讯2.软件开发C/S结构与B/S结构的区别C/S结构大家都熟悉,即Clint/Server(客户端/服务器)结构,它通过将任务合理地分配到Clint端和Server端,来降低系统的通讯开销,不过需要安

《人件集 人性化的软件开发》阅读笔记01

<人件集:人性化的软件开发>是人件领域中的经典著作,以专题的形式探讨了软件开发中的人的因素. 本书共分九个部分: 第一部分介绍团队如何开展工作以及如何为开发更好的软件而更好地工作: 第二部分涉及软件开发人员的不同观点: 第三部分探讨团队组织和开发的问题: 第四部分探讨开发者与其使用的工具之间的关系: 第五部分针对提高软件质量提出了建议: 第六部分着眼于软件可用性和用户界面设计问题: 第七部分解释在用户界面设计和软件可用性方面的相同之处: 第八部分探讨软件在沟通中涉及的一些话题: 第九部分论述软

[转]关于项目管理、软件开发的一些思考

偶遇该文,里面的内容是在工作中时常念到的,转载收藏. 感谢原作者. http://zhanjia.iteye.com/blog/1876344 --------------------------------------------------------------------------------------------------------------- 下面总结几个曾经思考或遇到过,觉得有必要梳理一下的观点: 做项目的公司    很多做项目的公司,太过于注重速度而非效率,注重结果而非

软件开发提倡简约

简约而不简单. 世间万物本来很简单,只是人想得多了便越变越复杂了. 万象,只不过是简单和复杂之分.是简单好还是复杂好?不同的人的回答是不一样的.从大多数人对现代社会的体验来看,人生中还是应多学会些简单.学会简单,就要多些本色回归.不追逐华而不实. 丰足而不奢华,惬意而不张扬,还原事物的本色.简单本身就是一种艺术,是一种复杂之后的简约,华贵之后的淡雅.简约并不意味着清苦和贫乏,它是经过深思熟虑后的选择.高尔基曾说过:"一切出色的东西都是朴素的."就好比清水出芙蓉,不需要任何的粉饰雕刻,也

14.30天软件开发 告别瀑布拥抱敏捷

3个角色,3个工件,5个事件. 1)传统预测性软件开发流程的使用是导致如此之多项目失败的罪魁祸首.预测性流程也叫瀑布式流程,其可行性依赖于项目计划的准确性和执行的严格性. 2)YDC为什么软件开发能成功? 1.需求的控制 2.开发工具及框架控制 3.开发人选及流程控制 需求.无变更风险时确定性最高.随着不明确因素.涌现式描述和可预见性变更的增多,确定性降低. 技术.所用技术为人熟知时确定性最高.随着开发及运营技术复杂度的提升,不同的技术在不同的软件开发和发布阶段通过接口交互,确定性随之降低. 人

敏捷软件开发简述

前言:由于我读了邹欣老师的<构建之法:现代软件工程(第二版)>,因此对敏捷软件开发有了比较大的兴趣.于是我在网上找了一些论文,比如Requirements Engineering and Agile Software Development.A decade of agile methodologies: Towards explaining agile software development.在读了这些论文之后,对敏捷软件开发有了大致的了解.这篇博文主要是简单介绍敏捷软件开发,重点集中在主

软件开发质量管理的一些思考

PMBOK里关于质量管理主要有3个过程: 制定质量管理计划 质量保证(QA) 质量控制(QC) 书看了5-6次,还是发现比较抽象,难以理解. 实际项目中,如何才能合理的考虑各种资源制约,更好的执行质量管理呢? 一般的正规流程大致如下: 需求分析-> 客户评审与确认-> 概要设计->内部评审-> 详细设计->内部评审->编码-> 代码审查->单体测试 -> 集成测试->问题修复-> 代码评审-> 测试确认-> alpha测试-&g