敏捷软件开发宣言
- 个体和交互胜过过程和工具
- 可以工作的软件胜过面面俱到的文档
- 客户合作胜过合同谈判
- 响应变化胜过遵循计划
个体和交互胜过过程和工具
软件开发是人的活动,人是软件开发中最重要的因素。如果没有优秀的成员,再好的过程也无法挽救项目。【那么,如何培养优秀的开发人员呢?】
软件开发是人的活动,而且是团队的活动,团队成员之间的有效交互对软件开发的成败至关重要。从某方面来说,过程和工具也是为了保证交互过程中信息不存在丢失或误解。【那么,如何保证交互的效率和有效性呢?】
团队的构建比环境的构建重要的多。
【那么,如何进行团队的构建呢?】
当前困境:
- 开发人员的能力不足够优秀:对业务了解不足,分析和设计能力不足,软件开发实践质量不够高;
解决方案:
- 熟悉业务:1)项目中学习并做好知识的总结;
- 提升分析和设计能力:1)学习软件设计和开发方法;2)项目中做好实践;【TD: 具体计划;软件开发书籍,架构设计书籍,linux驱动开发书籍】
- 提升软件开发质量:落实高质量软件开发实践. 【TD: 具体计划】
可以工作的软件胜过面面俱到的文档
代码不是传达系统原理和结构的理想媒介。团队需要编制易于阅读的文档,来对系统及其设计决策的依据进行描述.
敏捷价值观认为,过于庞大的文档会使文档失真,造成误导。
文档应当使短小(short)并且主题突出的(salient)。主题突出是说,仅论述系统的高层结构和设计原理。
那么如何培训新团队成员呢?我们会非常密切地和他们一起工作。我们通过近距离的培训和交互使他们成为团队的一部分。
即,实现的细节,通过近距离的交互来传递。
当前困境:
- 缺少文档;
- 文档不能有效的描述业务实质、系统原理和设计依据;
客户合作胜过合同谈判
成功的项目需要有序、频繁的客户反馈。不依赖合同或工作上的陈述,而是让客户和开发团队一起密切地工作,尽量经常提供反馈。
当前困境:
- 软件功能和质量不能及时满足客户的需求;
需要注意:软件设计和项目设计是息息相关的,不要简单割裂,而应同时关注,自始至终的关注。
响应变化胜过遵循计划
响应变化的能力常常决定着一共软件项目的成败。当我们构建计划时,应该确保计划是灵活的并且易于适应商务和技术方面的变化。
较好的做计划的策略是:为下两周做详细的计划,为下三个月做粗略的计划.
当前困境:
- 计划常常未达成;
敏捷软件开发的原则
- 我们最优先要做的是通过尽早的,持续的交付有价值的软件来使客户满意;
我们努力坚持每两周就交付一共功能渐增的系统。
- 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。这是多么吸引人的特质啊!要努力达成。
敏捷团队会非常努力地保持软件结构的灵活性。
这对软件设计提出了要求!【TD】学习和达成软件结构灵活的能力。 - 经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。
- 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
- 围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。
在敏捷项目中,人被认为是项目取得成功的最重要的因素。
如果其他因素影响了人,就改变其他因素。 当前困境:没有给人提供足够的支持和信任。 - 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。
默认的沟通方式是交谈。
- 工作的软件是首要的进度度量标准。
- 敏捷过程提倡可持续的开发速度。责任人、开发这和用户应该能够保持一个长期的、恒定的开发速度。
- 不断关注优秀的技能和好的设计会增强敏捷能力。
高的产品质量是获取高的开发速度的关键。保持软件尽可能的简洁、健壮是快速开发软件的途径.
【TD】这个是日常开发的着力点!要重点关注。如何实现呢?软件的简洁、健壮和高的产品质量?要做好日常看护,包括方案、实现、验证等。 我需要关注:设计、质量! - 简单------使未完成的工作最大化的艺术------是根本的。
在今天以最高的质量完成最简单的工作。
- 最好的架构、需求和设计出自于自组织的团队。
敏捷团队是自组织的团队。``````敏捷团队的成员共同来解决项目中所有方面的问题。不存在单一的团队成员来对系统架构、需求或测试负责的情况。
- 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
参考
[1] Robert C. Martin. 敏捷软件开发-原则、模式与实践. 第一章
版权归原作者 大唐游子 所有, 如有侵权,请联系我们删除。