敏捷知识入门

开发
在现在的软件开发中,为了应对快速变化的市场需求,并向客户尽早交付有价值的产品,很多项目团队都会采用敏捷的开发方法。

迭代

程序员听到产品经理常说的话之一大概是——“这个需求很紧急,需要马上处理!”,当初刚成为一名程序员小白的我,惊慌失措。当然我算是比较幸运,有导师替我顶住一切,“他的排期满了,这个需求我们先放到下个迭代再实现吧!”

后面自己慢慢熟悉了这样的工作模式之后,再遇到产品经理类似的场景的时候,也不会再惊慌了。因为总能听到一个声音在耳边响起,“...,这个需求我们先放到下个迭代再实现吧!”

什么是迭代?为什么需要迭代?迭代有什么好处?迭代就在那里,知道它的存在,但是我却无法用恰当的词汇来描述它。

后来,后来~,我总算学会了什么是迭代,可惜你早已~~~(不好意思,情不自禁)。

后来在自己好奇心的驱使下,慢慢了解了一些项目管理的知识,所有的困惑便不再是困惑了。所以作为一名程序员,了解一些项目管理的知识,很正常吧!

其实前面描述的是敏捷开发模式下一个很常见的场景。

敏捷的价值观和原则

这里的敏捷(Agile),指的是一种软件开发模式,是一种以人为核心、迭代、循序渐进的开发方法,是拥抱变化的开发流程。

敏捷运动的推行者们根据自己的实践,在价值观和原则上达成了共识并发发布了敏捷宣言:

我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:

  • 个体和互动高于流程和工具
  • 工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划

也就是说,尽管右项有其价值,我们更重视左项的价值。

同时也确定了敏捷开发的判定标准,即敏捷的12大原则:

1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

3. 经常地交付可工作的软,相隔几星期或一两个月,倾向于采取较短的周期。

4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。

5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

6. 不论团队内外,传递信息效果最好、效率最高的方式是面对面的交谈

7. 可工作的软件是进度的首要度量标准。

8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持步调稳定延续。

9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

10. 以简洁为本,它是极力减少不必要工作量的艺术。

11. 最好的架构、需求和设计出自自组织团队。

12. 团队定期地反思如何能提高成效,并依此调整自身举止表现。

迭代与敏捷

上面提到的迭代其实只是敏捷实践中SCRUM开发流程中的一个很小的环节。

通常一个迭代中,在迭代开始的时候,会进行一个迭代计划会。

(1) 迭代计划会上,产品负责人(Product Owner)和团队会从具有优先级顺序的产品待办事项列表中,选择优先级高的用户故事,并进行任务拆分,并创建迭代待办事项列表。团队成员领取任务,并进行任务排期故事点估算,画出任务燃尽图。

迭代冲刺(Sprint)过程中,团队再更新相应的任务板,并召开每日站会,沟通进度以及遇到的问题(昨天做了什么?今天要做什么?遇到了哪些问题?)

迭代完成则会召开迭代评审会和回顾会。

(2) 迭代评审会上,团队成员演示所完成的工作成果,产品负责人(PO)则决定是否接受用户故事。对产品关注的相关方则可以提出意见或建议,项目经理则将相关意见和建议记录下来,并在后续的回顾会或下一迭代的计划会中讨论和处理。

(3) 迭代回顾会上,则需要总结工作中的经验教训,找到可以改进的工作,并调整将来的工作,将可改进的工作纳入到产品待办事项列表,一遍后续的过程中执行。

整个过程中,Scrum Master则承担者教练的角色,指导敏捷实践,并帮助团队解决困难、清楚障碍。

在敏捷团队中,团队的成员都是通才型人才,合作更加紧密,具有良好的自组织能力。

总结

在现在的软件开发中,为了应对快速变化的市场需求,并向客户尽早交付有价值的产品,很多项目团队都会采用敏捷的开发方法。

敏捷开发的SCRUM实践中,项目团队成员具有更好的自组织能力,是通才型人才。产品负责人和团队紧密合作,Scrum Master为团队提供敏捷实践的指导,帮助团队解决问题、清除障碍。

责任编辑:赵宁宁 来源: FrenziedJavaLand
相关推荐

2009-06-11 09:24:59

NetBeans入门

2010-06-07 18:51:15

UML入门

2009-06-12 09:07:01

EJB入门

2015-06-01 13:35:43

数据中心DCIM

2022-05-24 08:00:00

敏捷教练团队结构技术

2009-06-26 13:29:11

面向对象

2017-04-12 11:47:32

2009-04-07 09:12:35

敏捷新手入门大型开发

2009-10-20 17:39:57

服务器基础知识

2018-04-11 15:37:51

物联网传感器智能

2010-09-13 13:58:17

HTML DOM

2010-03-25 10:36:58

CentOS Samb

2021-01-18 10:50:29

知识图谱人工智能深度学习

2011-09-19 12:56:24

敏捷

2013-11-07 14:33:43

交换机下一代网络华为

2009-09-21 11:00:51

互联网

2022-03-02 08:00:00

敏捷框架开发软件开发

2012-05-25 13:12:57

TitaniumMobile WebHTML5

2020-08-13 18:19:24

OpenSSL密码学Linux

2010-05-07 17:31:42

Unix类操作系统
点赞
收藏

51CTO技术栈公众号