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

敏捷开发最注重的是人,或者说个体。目标是提高个体的主动性,提高产出效率。敏捷开发要求团队一起工作,甚至还有客户。结对编程。迭代交付,三周为一个周期,每个周期都发布可用地、经过测试的代码。2到5个周期后进行一次发布。敏捷开发积极拥抱变化,主要依靠代码重构来配合变化。

敏捷开发的优点在于发布时间短和响应需求变化,敏捷开发的缺点是可操作性差。实践者们常常走入各种各样的误区。根本原因还是人,人的主动性还有在软件开发中的行为受各种各样因素的影响。

在需求分析阶段准备两份文档。一份使用客户的术语表达客户的故事,另一份是使用软件术语表达软件实现的故事。需求分析人员是客户和项目组之间的桥梁,是客户和软件开发人员之间的桥梁,

十分类似于科手术过程,软件开发团队需要一个主刀医师,即软件架构师。软件架构师保证了整个软件的思想和架构是一个主体。而不是零散的,拼凑的。这有利于开发和维护。软件架构师在一个团队里一般只有一个,或者一个架构师团队由其中一个人作为领导。这样保证了整个软件系统的一致性。软件架构师工作的主要依据是经验。在软件开发过程中,人是最重要的因素,而责任、权利和利益是保证这个因素发挥作用的关键。负责文化是人类社会活动中必须具备的一种文化。团队往往成为不负责任的推辞。建立负责制度的目的不是为了惩罚,而是通过利益损失的形式,表明一个事实:没有金刚钻,别揽瓷器活。也是质量保证的一个重要推动力。关于第3章 关于需求的思考
需求就像一束光的源点,失之毫厘,谬以千里。没有人不重视需求问题,可是,有多少人能讲清楚解决需求问题的思路呢?扪心自问,需求跟踪矩阵和需求变更委员会提升了我们多少信心呢?
本章尝试给出解决需求问题的方法。这个方法的逻辑很简单,首先,我们需要准确表达需求,术语和讲故事是两种好的辅助手段;其次,我们要和客户一起,推动需求的变化,需求变化不是成本的代名词,被动接受需求变化才是吞噬成本的罪魁祸首。

时间: 2024-11-05 16:25:43

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

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

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

简单之美-软件开发实践者的思考 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端,来降低系统的通讯开销,不过需要安

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

软件开发团队中的意见: 一个软件开发团队如果想要在项目中获得最大限度的成功,取决于团队中的成员能否形成技术性一致意见.但为什么这点如此重要呢?是不是团队成员只要在诸如目录表格的布局上达成一致,或者建立一个很好的错误汇报机制就行了呢?技术性一致意见指的并不是与同事打成一片就可以了(当然,这也不是说在同事之间建立良好的关系有什么错误).技术性一致意见是指充分吸取团队中每个成员的技巧和经验,其目的是为了开发出更好的软件. 职业软件人员也许能够迅速理解一款好的软件,至少当他们看见一个好的软件时会宣称自己

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

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

软件开发训练 OJ 练习02

字符串IP地址判断 描述:判断输入的字符串是不是一个有效的IP地址 接口:boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false 无效的IP地址 约束: 输入IP为 XXX.XXX.XXX.XXX 格式 字符串两端含有空格认为是合法IP 字符串中间含有空格认为是不合法IP 类似于 01.1.1.1, 1.02.3.4 IP子段以0开头为不合法IP 子段为单个0 认为是合法IP,0.0.0.

软件开发提倡简约

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

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.在读了这些论文之后,对敏捷软件开发有了大致的了解.这篇博文主要是简单介绍敏捷软件开发,重点集中在主