2016-05-15 22:49:17 u014231523 阅读数 4057
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

一般产品人员进行过需求采集,分析,筛选后就会进行产品的设计。
在产品设计的过程中会产生PRD(Product Requirement Document 产品需求文档 ),如果是新产品或者在大公司一般还会有BRD ( Business Requirement Document 商业需求文档)和MRD (Market Requirement Document市场需求文档 )。
当写好PRD之后就会画出简单的线框图,在画好线框图后,为了后面更好的评估开发难度和开发时间,这时产品经理就会和开发经理和开发人员进行一次简单的会议,会议主要是介绍产品的功能点和交互。
这时开发人员进行给出开发难度,如果功能点太难以实现或者比较复杂且优先级不那么高的可能就会先实现主要功能(主要为了降低开发成本,看上线后用户的反应再进行深度开发同时也是为了把试错成本降低)。
没有问题后,产品就会让UI人员给出高保真原型图,同时开发人员进行开发。主要步骤如:

  1. 确定需求后,产品人员写PRD和线框图。
  2. 产品人员和开发人员进行讨论,评估开发难度和开发时间。(如果开发迭代时间固定,主要是评估难度)
  3. UI根据线框图和PRD设计出高保真原型图,同时开发人员进行开发,项目管理开始。
  4. 开发,测试,修改bug(开发中可能会出现需求更改的情况)
  5. 产品经理(项目经理)进项验收,没有问题上线。
    开发流程
    以前的开发大部分都是瀑布式开发,现在一把都采用敏捷开发。项目经理这个职位一般也是只有在稍大的公司会有,在创业的小公司一般有产品经理或者开发经理来担任。我们公司是由开发经理来担任开发进度管理,最后由产品经理验收。
    一般敏捷开发流程(每个公司的迭代周期不同,但大致流程相似。下面是两个星期一个迭代)如下:
    迭代

  6. 如果我们需要从第1周周一开始开发新的迭代(假定第5个迭代)。那么就要在上周的周三,产品人员和开发人员进行PRD评审,如有需要修改的地方进行修改。(第四个迭代开发持续中,UI按照优先级开始绘制已经确定需求的高保真图)

  7. 上周的周五产品进行修改后,再次和开发人员进行评审,确定没有需求没有大的变动。(UI设计持续,启动新的开发迭代(第5个迭代),进行上次迭代(第4个迭代)总结会议和新迭代开启会议),这时项目也会在进行拆分,比如按照epic-story-sprint-task的方式进行拆分。然后把这个迭代的任务拆分成各个小的task,然后进行人员分配。task的时间颗粒度一般不超过两天,分的太粗容易造成delay。task维护一般使用看板的形式,我们使用过的有Jira,kanbanflow,icafe等。(可以根据喜好使用,里面有相应的曲线图和燃尽图)
  8. 第一周周一上班,UI同学会给出一部分设计的好高保真图。这时服务端同学会根据安排好的优先级给出相应功能的接口文档。移动端的同学进行页面编码和设计。同时移动端同学会根据给出的接口文档先造一批假数据已备本地测试(如果有相应的接口测试工具会更好,我们是用的自己开发的接口测试沙箱,可以根据绑定的真假接口进行真假数据的测试)。同时,每天下班前都要有站会。站会主要说自己的三个问题:1.今天做了什么2.有什么问题3.明天做什么
  9. 开发持续进行,到第一周周四时,会先发个测试包,让测试人员进行测试。当然开发过程中也在不断测试。出现问题就进行修复,bug修复不再安排时间,不会在看板上建新的task来修复bug,开发任务继续。
  10. 到第二周的周三,要确保开发任务基本完成。然后发个测试包,进行测试。有bug进行修复。同时产品经理进行查看。同时和产品进行下的迭代(第6个迭代)的PRD评审。
  11. 到第二周的周五,再发个测试包,进行测试。有bug进行修复。产品经理验收。(没有问题,一般会在夜里凌晨1-2点上线。)上线后可能要安排人员进行值守,看有没有问题。同时周五还要和产品进行确认最终新的开发。同时开总结会议和新迭代启动会议,这两个会议也可能放在周一开。
    至此,一个迭代开发周期完成。
    注意:

    • 在开发的过程中,项目经理每天要通过看板或者询问开发人员的进度是不是符合原来的预订计划,如果出现delay现象,可能就要通过加班来把进度提上来。
    • 测试人员也要参与需求的评审,方便后面业务测试。
    • 开发人员要对自己写的代码负责人,写好后要进行代码review和自测,不能把没有测试的代码进行提交。
2015-04-23 17:21:41 lqh4188 阅读数 1809
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

1.  极限编程在项目中的应用

最早接触极限编程的概念是在2010年看的一本书《解析极限编程--拥抱变化》,当时并没有一下子看完,之后断断续续的读着。但在是实际项目中并没有真正的应用。

在2011年3月份进入一个3500多万的项目中,在调研和开发的过程中,遇到了很多问题,在这个过程中,开始逐步的把极限编程的部分思想来应用于项目。

1.1.  沟通很重要

  无论是在工作还是在日常生活中,沟通对我们来说,都是非常重要的交流与获取反馈的有效途径,在项目管理中,尤为重要。若沟通不良,对项目造成的影响是具大的,比如没有向客户询问该问的问题,而导致程序在关键性设计中出现失误。管理人员不向开发人员问该问的问题,而导致项目进度误报。

  在项目管理中,沟通是获取客户需求的关键,是程序设计的依据,是制定项目计划的参考。所以我们要促进良性沟通,避免不良沟通。

1.2.  简单设计

有三条准备可以避免软件项目中常见的戏剧性效果和机能障碍。

1.在项目初期不可能收集到所有需求。

2.不管你收集到什么需求,最终它们肯定会发生变化。

3.总会有任务超时、超支。

所以在设计的时候要尽量的简单,避免过度设计

1.3.  每周交付一些有价值的东西

大部分情况下,客户不能确切的告诉你他们需要什么,一旦客户见到第一个版本,他们就知道了在第二个版本中他们需要的东西……或者说他们在第一个版本中实际想要什么。所以我们有必要每周都交付一些可用的东西。

这样做的好处是:

1.及时反馈:可以及时获取用户反馈,通过频繁的与用户沟通、反馈,形成良性沟通,明确用户真实需求。

2.保障项目进度:短周期的交付,便于项目的调整,减少用户意途与开发之间的理解误差。便于项目进度的掌控。

3.给用户和开发人员信心:由于每周都能看到可用或可演示的东西,让用户对项目有信心,也可以了解项目进度,这要比一个月交付的一次更有说服力。同时对于开发人员,每周的功能都能得到用户的确认,若需要调整,也是小幅度调整,若不需要调整,则是对工作内容的肯定与激励,可以提高工作激情。

1.4.  控制范围

极限编程中的四个变量是:成本、时间、质量和范围,其中范围的控制最有价值。

一般在项目合同中,均会对时间、范围进行约束,质量就不用说了,如果质量不合格,用户是不会验收的。对于成本和时间基本是不可能有大的改变的,对于范围,合同中不可能对边界定义的十分明确,这就需要我们在整个项目进展中进行有效控制。

客户在开发的过程中,会将范围无限的扩大,如果项目经理不对范围进行控制,这个项目会不断的扩展,造成成本增加,开发周期变长,无法在合同规定内完成项目的验收。

所以说范围的控制最为有价值,他是我们项目管理人员唯一有主动权的要素。

关于质量和时间,牺牲质量以换取时间的做法是不可取的,这种短暂的收益在项目后期将导致致命的伤害。所以要平衡这两者的关系,使得开发人员可以在有限的时间内开发出高效的产品。

1.5.  结对编程

对于极限编程中的结对编程思想,在现实中似乎是不可能应用的,不过在2015年2月份,很有幸的体验了一下。

在一个需求开发即将结束的时候,正好另外有一个需求过来,而且其中有一部分有重叠,于是我和另一个负责人商量了一下,决定把重叠部分进行重构优化,合并抽象为一个模块。由于对于这部分我们两人都了解,所以开发过程中,我们尝试了一下结对编程,他写代码的时候,我在旁边看着,并提示注意事项(当然还可以喝喝茶、吃点东西),然后我再接着写,他在旁边看着,并提示我注意或忽略的地方。3个小时,模块功能完成,测试通过,OK。

这次尝试感觉还是很成功的,两个人的效率还是很高的,而且目标明确,思虑清晰,轻松高效。

但是这种编程方式是不适合推广的:

   a.要求高:要两个人有一定的默契,不然反而事倍功半。

   b.国情:目前没有适合的土壤。

2.   关于极限编程部分关键词

参选书目:《敏捷武士:看敏捷高手交付卓绝软件》析级限编程》

2.1.  概述

极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。

 

2.2.  核心价值

极限编程中有四个核心价值是我们在开发中必须注意的:沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇 气(Courage)、此外还扩展了第五个价值观:谦逊(Modesty)。  XP用“沟通、简单、反馈、勇气和谦逊”来减轻开发压力和包袱;无论是术语命名、专著叙述内容和方式、过程要求,都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践,在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。

2.3.  四个变量

成本、时间、质量和范围,其中范围的控制最有价值。

2.4.  四个准则

沟通、简单、反馈、勇气

2.5.  基本原则

快速反馈、假设简单、递增更改、提倡更改、优质工作。

2.6.  开发软件的四项基本工作

编码、测试、倾听、设计

2018-01-02 09:48:07 unize4 阅读数 720
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

开发模式以及流程

参考禅道敏捷开发论坛1整理除了一份(可能)适合自己公司的开发模式,具体如下图:
这里写图片描述

小团队对于项目开发上也走了很多弯路,目前还处在一个探索阶段,出于多种考虑很多看起来比较完善的方案无法去实施。


2019-08-27 00:50:57 seagal890 阅读数 66
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

[敏捷开发实践] 敏捷开发的误区

误区之一:人人都有机会,为项目招聘新人组建新团队,采用Scrum过程模型开发

误区之二:敏捷开发不需要写文档

误区之三:敏捷了要拥抱变化,PO(Product Owner)可以随时提出需求变更

误区之四:敏捷了一定要引入自动化测试,否则没有“高大上”的感觉

误区之五:敏捷开发一定可以加快系统/产品发布

误区之六:敏捷开发倡导“个体和交互胜过过程和工具”,过程和工具没有那么重要了

 

(更新中)

 

2014-01-06 11:25:16 sleks 阅读数 1305
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

敏捷不光应用于项目,更适合开发调试过程中的细节

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。



《敏捷宣言遵循的原则》中提到“我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

其实不仅面对项目是这样的,

我们在实际开发过程中,针对每一次小目标,

也要尽早地运行起来,

以便看到效果和及时发现问题所在。

而持续不断地及早交付有价值的软件给客户,

也是同样的道理,

只不过目标有所不同,是为了与客户及时确认开发过程没有偏离实际的客户需求。


如果有些事情当时没有去运行以验证没有问题存在,

那么就非常有可能把一个问题掩埋下去了,

越往后,累积的新功能越多,

当某些条件出现时,当初掩埋的那个问题,就再也不那么容易被发现了,

即使发现了,由于上面堆叠了这么多东西,也不再那么容易解决,

牵一发而动全身,也是非常可能出现的事情。


无论多么着急,

持续不断地及早交付有价值的软件,

请永远遵守;

无论多么顺利,

也请针对每一个小函数,在刚刚写完时,就及时地进行测试,

验证函数的输入、输出,

验证实际的运行效果,

验证......

一切你作为开发者,当时必然会知道的!


不这样做,结果可想而知,埋下一颗定时炸弹,

在你一想不到的时侯就会爆炸。


敏捷开发,

不光是项目对外要,

持续不断地及早交付有价值的软件,

项目内部开发过程中,

每一个小细节,

也请及时地做相应的测试和查看运行效果,

确认符合你的预期,

避勉将问题掩埋起来。


敏捷的含义,可能就是要及早地反馈,以确认没有偏离目标,避勉掩埋问题,形成隐患。

还有......

还有一些感受,悟到了,但不知如何用语言来形容,

随时补充!



敏捷开发

阅读数 759

没有更多推荐了,返回首页