内容简介:敏捷最初是一种软件开发理念,强调协作,自适应规划和持续改进。近来,敏捷已成为整个科技界的事实上的开发方法。敏捷的核心目标是基于各种敏捷方法,比如Scrum,引入了很多样板,主张用一些具体方式来执行日常任务 ,例如软件估算,收集客户反馈,甚至测量团队进度。不同的团队有不同的方式来实现敏捷。随着时间的推移,不同的团队或组织倾向于最适合他们自己,最有效的一套流程。
敏捷最初是一种软件开发理念,强调协作,自适应规划和持续改进。近来,敏捷已成为整个科技界的事实上的开发方法。敏捷的核心目标是基于 敏捷原则 ,从根本上重构我们完成工作的方式。
各种敏捷方法,比如Scrum,引入了很多样板,主张用一些具体方式来执行日常任务 ,例如软件估算,收集客户反馈,甚至测量团队进度。不同的团队有不同的方式来实现敏捷。随着时间的推移,不同的团队或组织倾向于最适合他们自己,最有效的一套流程。
在为多个敏捷团队工作之后,我发现虽然每个团队都有自己的“Agile”实现方法,存在各种差异,但通常会遵循一些贯通的核心原则,大多数团队都会努力遵守这些共性原则。也正是这些原则从根本上决定了“团队的敏捷程度”以及最终的成败。以下是我所看到的三大敏捷原则:
1.简洁但强大的反馈循环
敏捷团队最大的特点之一就是它能够快速整合来自环境的反馈,并最大限度地缩短识别问题和修复问题所需的时间。敏捷团队始终致力于识别阻碍开发过程的潜在问题,并及时提出解决问题的策略。
例如,工作分解为小的迭代,通常在两到四周之间。在Scrum实践中,每次迭代都被称为Sprint。将较大的项目分解为较小的Sprint – 其中还包含任务列表 – 这使得团队能更好地评估待处理的任务,设定更真实的期望和目标。任务的复杂性与工期的错误判断之间存在直接关联。
但更重要的是,将工作分解成粒度足够小的迭代,可以让团队有机会定期反思成功和失败。在每次迭代结束时,团队能够评估已完成的事情以及需要更改或完善的地方。
这可以反映哪些流程适合团队,以及需要进行哪些修改才能提高团队的工作效率。然后,这些变化可以纳入下一次迭代,从而创建一个良性反馈循环,在理想情况下团队将随着时间的推移变得更有效。Scrum通过定期的Sprint Retrospectives或“retros”来实现这个想法。
实际上,Scrum通过引入Daily Stand-Up的概念,进一步提升了反馈循环,目标是让所有成员每天在固定的时间和地点见面并简单地讨论:
- 你在前一天的工作
- 你打算在今天剩下的时间里做些什么
- 什么(如果有的话)正在妨碍你
理想情况下,这为每个人提供了一个机会 ,在指定的回顾(retro)之前经常进行同步,有助于确保一切都按计划顺利完成迭代。让困难和障碍尽快浮出水面,让团队成员才有机会对工作中的顾虑知无不言。
2.合作是王道
敏捷和Scrum最重要的一个特征是:对团队整体的重视程度远大于个人。与寻求最大限度提高个人生产力的传统管理技术不同,Scrum宣称个人只能与他们所属的团队一样好,个人不能背离团队的流程和价值观。因此,团队动力和协作才是敏捷世界的中心舞台,而不是个人风格。
理想情况下,一个独立自主的敏捷团队必须拥有开发产品时所需的所有资源。我们的目标是让工程师,设计师,产品战略家和业务人员共同合作,共同实现一个共同愿景。
由此可以获得一些切实的好处。很明显,将人们从多个方面拉到一起可以加快沟通过程,因为它消除了部门间沟通的一些官僚作风,使每个人都更快地站到同一条战壕中。
这也使每个人都能更好地了解为什么要做出某些决定以及产品的发展方向。例如,作为一名工程师,了解某些业务决策背后的基本原理可以让我对我正在构建的产品进行更全面的概述。我能够更好地了解我的客户是谁。不能 将产品specs视为独立的功能清单,而应是一种改善最终消费者体验的机会 。
鼓励跨职能团队的另一个更微妙的原因是,当团队成员开始将自己与正在开发的产品,而不是自己的职位相关联时,主人翁精神会油然而生。
3.可交付的改进
到目前为止,我们已经专门讨论了团队如何构建反馈循环以改进其功能。但敏捷方法常常将论证向前推进一步,并适用于产品本身的开发。
如果团队可以在每个迭代周期结束时都能拿出可用版本 (哪怕只是部分功能 )该产品就可以提交给利益相关者和潜在客户,让每个参与者定期提供他们的意见。这能够形成一个早期发现错误的良性机制,确保项目朝着正确的方向发展。
请注意,这与传统软件开发方法形成鲜明对比,在传统软件开发方法中,开发人员和客户之间的沟通很少,直到切换阶段,此时,对产品进行任何更改通常为时已晚。
然而,由于迭代非常频繁,每个功能都应当被“垂直整合”。这意味着每个功能都经过充分打磨,包含从所需的后端基础设施到前端UI的所有内容。从这个意义上说, 任务是从潜在用户的角度细分的。
最终,敏捷之美在于它的开放性。组织不一定要坚持Scrum或任何其他某种或混合方式。Daily Standups,Planning Poker,Agile Retros,看板等 工具 只是达到目的的手段,而不是任务本身。为了真正实现敏捷,团队首先必须了解为什么有些事情需要按照特定的方式完成,以及通过采用某些流程可以获得哪些好处,是否在团队所处的特定环境中有意义。毕竟,敏捷的精神才是团队成功的关键所在。
原文链接
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 原则系列:SaaS 创业公司产研团队的组建
- 面向对象基本原则(1)- 单一职责原则与接口隔离原则
- 面向对象基本原则(2)- 里式代换原则与依赖倒置原则
- 面向对象基本原则(3)- 最少知道原则与开闭原则
- 设计模式之软件开发原则(1)开闭原则和依赖倒置原则
- 面向对象设计原则之开闭原则
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Security Testing Cookbook
Paco Hope、Ben Walther / O'Reilly Media / 2008-10-24 / USD 39.99
Among the tests you perform on web applications, security testing is perhaps the most important, yet it's often the most neglected. The recipes in the Web Security Testing Cookbook demonstrate how dev......一起来看看 《Web Security Testing Cookbook》 这本书的介绍吧!