章节 1.2 敏捷方法 – 灵活,可靠的软件 使用设计模式和敏捷开发

敏捷方法的核心思想在敏捷宣言中有阐述,这里引自敏捷宣言网站 agailemanifesto.org

敏捷软件宣言 我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如下价值观: 个体与交互          重于     过程与工具 可以工作的软件   重于     面面俱到的文档 客户协作             重于     合同谈判 响应变化             重于     遵循计划 也就是,虽然右边的条目都有价值,但是我们认为左边的价值更多

这个宣言中有几个值得关注的点。首先,它是参与软件开发的人写得“身体力行且帮助其他人”,另外敏捷方法对于价值和特定的一些技术一样关注。现在有很多敏捷方法:极限编程,Scrum, Crystal Clear和其他一些。但它们有着宣言中阐述的同样的核心价值,这使得它们相对来说容易理解。比方说,一旦你了解了

XP, 你应该容易了解Scrum, 在本书中我将用XP中的定义作为编程流程来描述。测试驱动开发,是作为XP一部分发明的。最后,但主要的点是“敏捷”,敏捷方法的价值在于以一定速度朝目标推进同时拥有转变成新的更好的路线且低成本的能力。

强调个人和交互。敏捷方法非常强调软件开发作为一个团队的行为,个人的创造性和贡献是成功的主要方面,因此给个人和协作的组织一个好的环境是关键。较早的开发方法倾向于把个人作为“生产部件”,机械化地产生软件代码,设计,测试计划等。因此很少关注使个人感觉舒服且更多关注于文档和流程来控制交互。敏捷方法建议了一些实践来确保正确的决定被做出,因为人都负责且想做正确的事情且总有人手上有适当的信息来做出有效的决定。比方说,有人关注过团队在楼里怎么分布的情况:如果需要协作的两个组在不同的楼层,他们的效率会低于办公室相邻的情况,在交流减少的情况下,交流存在误解的风险和在产品中的缺陷数量将显着提高。

可工作的软件。Bertrand Meyer, Eiffel编程语言的发明者有说过“当一切都说过,软件却是靠代码来定义…”(Meyer 1988)。设计也许正确,UML图也画得很漂亮,但是如果没有的代码没有产品那么也没有收益去埋单。敏捷方法关注创造高质量代码且较少写代码相关的文档,原因是写代码很费时间的,占用了不少写代码时间。因为强调个人和交互所以去找相关人员了解信息会比文档更快更准确,然而价值源自于可工作的软件:代码得是高质量,因此测试是主要的手段:使用软件去找到它的缺陷,另一个保持代码高质量的主要手段是重构:改善代码结构而不影响其功能。这两个手段在本书中都很重要且在后面有详细讨论。

客户互动 比合同谈判要快,Bjarne Stoustrup,C++语言的创始人说“去编程就是去理解。”作为去实现客户需求,你需要更深入地了解它们且指出需要解决的模棱两可的东西和可改善最终产品的地方。如果这些东西需要一个很长的命令链,开发人员问经理们,经理们问销售人员,销售人员再问采购,采购再问每个用户。反馈将会太慢,结果是有缺陷或累赘的产品且失去了变成更好产品的机会。想要关注于人与人之间交互,敏捷方法要求客户和用户都不迟疑地接受问题和讨论,一个核心的手段就是小的发布。把可工作但功能不全的系统展示给用户,给他们使用。这些发布是一个比用需求文档讨论不确定事情和改进机会的更好的出发点。

对修改的反馈 是说通向目标的最好的途径不一定是在旅程开始时计划的那一条。在项目中工作意指学习和改善对什么是最适合客户的产品的理解--特别是如上所综述因为它们集成在项目中。因此最开始的计划很重要但是计划随着经验的积累需要做出调整。也许客户原以为他们需要特性X当在工作于一个在小的发布的部分时发现X不是特别重要而特性Y的相关性更大,那么为什么不在下一个小的发布中加入特性Y呢?

翻译自书籍:Flexible, Reliable Software Using Patterns and Agile Development, Henrik Baerbak Christensen

后面的翻译将陆续更新…  下一篇,1.3 极限编程

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

未来还需要程序员嘛?

很多人认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么...

36216
来自专栏EAWorld

数字经济时代的智能化大数据治理

当今,数字化转型正在各行业快速发展,以数据、流量、知识为主的的数字经济时代到来,数据在其中的重要性不言而喻。 在企业内部,数据团队正逐渐变成一个专业、独立的部门...

4564
来自专栏前沿技墅

数据驱动产品智能——数据应用与用户智能

神策数据创始人兼CEO,浙江大学计算机科学与技术专业硕士,在百度任职8年,从无到有构建了百度用户日志大数据平台,覆盖数据收集、传输、元数据管理、作业流调度、海量...

1883
来自专栏Android 研究

PMI-ACP 敏捷项目管理——模拟试题1

1、团队重视培训新人的个人技能,以扩展其跨职能的能力。这样做的主要目的是什么? A 它能减少瓶颈风险 B 它能增加跨职能团队的沟通频率 C 它能促使干系人...

1.5K4
来自专栏Java架构

阿里十年的Java架构师用一张图告诉你什么是系统架构师

这张图从架构师的综合能力、岗位认识、岗位职责等方面,清楚的画出了作为一个架构的基本准则。人人都想成为架构师,可作为架构你达到了上面的要求了吗?

4164
来自专栏云计算D1net

超级云计算:步履维艰or一帆风顺?

当前,随着云时代的不断发展,越来越多的企业开始关注于行业当中的客户需求,不同行业客户有着不同的需求点。 对于云计算来说同样也是如此,自从云计算诞生以来,我们对于...

3374
来自专栏高性能服务器开发

如何运用 DDD 解决团队协作与沟通问题?

领域驱动设计的核心是“领域”,因此要运用领域驱动设计,从一开始就要让团队走到正确的点上。当我们组建好了团队之后,应该从哪里开始?

1082
来自专栏纯洁的微笑

如何运用 DDD 解决团队协作与沟通问题?

领域驱动设计的核心是“领域”,因此要运用领域驱动设计,从一开始就要让团队走到正确的点上。当我们组建好了团队之后,应该从哪里开始?

1062
来自专栏MixLab科技+设计实验室

人工智能时代,设计师如何学习新技术

封面由ARKie智能设计而成。 继续关于《2018科技中的设计趋势报告》的感想聊下设计师学习技术的经验。这里,我有 2 点经验可以分享给自我学习驱动的设计师...

4084
来自专栏韩伟的专栏

人物志第19期——韩伟:人生如负重远行,不可急躁。

刚做的腾讯内部的一个专访,对我个人有什么想了解的,欢迎后台提问呀! ? ? 本期嘉宾介绍 wadehan(韩伟) 座右铭:人生如负重远行,不可急躁 所属部门:互...

4507

扫码关注云+社区

领取腾讯云代金券