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

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

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

项目管理工作的基本思路不是控制,而是创造有利的环境和顺势引导,扫清软件开发中的各种障碍。项目管理工作要与软件开发工作隔离开来。
对于软件开发者而言,你需要考虑的是风险服务,即风险响应。而不要把主要精力放在风险预防和控制上。
软件维护要在项目开始或者设计时就要予以考虑。在进入软件开发领域之前,我们必须要做一些思想上的准备。这种思想上的准备高于方法论,以及任何一项具体的工作内容,它可以使我们站在一个更高的角度来认识软件开发这件事。思想认识是解决问题的根本,这一章的内容体现了思想工作的重要性。
我们将围绕着三个基本思想展开讨论。首先,软件开发是一项创造性的活动,因为它的创造性,我们要特别关注软件开发中的想象力;其次,我们要把握认知方法的本质,通过有意识地建立自己的思想体系来学习各种知识;最后,我们要追求对软件开发中各种问题的简化,只有简化问题,才能高效地解决问题。
在讨论中,我们会结合一些具体的技术背景知识。这些技术背景知识或者比较基础,或者泛泛而谈。事实上,我们的目标不在于详细介绍这些知识本身,而只是为上述三个基本思想的讨论提供一些证据。当我们开始具体的软件开发工作时,方法论是第一件需要思考的事情。软件架构师在软件开发中的角色就如同主刀医生在一次外科手术中的角色,不确立这一点,软件开发的正常化就无从谈起。当然,本书的优秀之处并不仅仅如此,系要掌握更深的理解,需要更长时间地研读。

时间: 2024-10-06 21:58:05

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

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

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

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

几天就读完了倪建大牛写的这本别具风味的作品,主要是对软件开发过程的一些思考,读后感.作者的写作方式很特别,通过叙述故事的方式讲解了软件开发的一整套流程和流程中需要注意的地方.作者的主要态度是批判的,带有理想主义的色彩,然而却是发人深省的. 这本书给我最大的收获就是在软件开发中要学会思考.思考所有步骤和方法存在的目的与意义.是否符合软件开发行业发展的趋势.作者主要涉及的是方法论上的层次,俯瞰着大地上的开发组织和人员.看到的问题和解决方案往往是直指本质的. 这里摘几条印象深刻的见解和需要识记的名词.

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

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

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

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

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

一般来说,大家都认为技术决策所依据的都是技术性因素,诸如事实.可测量的数值.应用中需要考虑的事项等.但实际情况是,诸如感觉.意见.直觉.偏见等,都会对决策的制定或者问题的解决产生影响,这些都是人在做事情时所不可避免的因素.尽管有些人试图否认.控制.压制这些非理性的因素,但这些都是绝不可能完全避免的. 对于那些希望采用技术性一致意见方式来解决问题的团队,有一个基本的技巧是必须掌握的:将事实和意见分开.对于一个协同工作的团队来说,如果期望创造性地解决问题并获得最好的结论,他们必须知道他们已经掌握了哪

软件开发提倡简约

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

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