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

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

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

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

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

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

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

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

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

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

 

(更新中)

 

2017-11-03 22:24:58 shenmagege 阅读数 857
  • SCRUM敏捷开发视频教程

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

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

大型软件的团队有效协作对项目成功起到越来越关键的作用,“敏捷之旅广州站——精进之旅”的活动,请来了业界敏捷项目管理的专家做了几场公益性的讲座,涉及敏捷开发应用和互联网项目管理的一些实用的方法,本文结合个人体会做个总结。


敏捷开发实际上是一种增量迭代开发模式,对于直接面向市场最前端用户、前期需求不太明确项目比较合适。通俗点说是小步快跑,边跑边看用户反应,然后根据情况适当调整项目计划,也可以说是一轮又一轮的PDCA循环。


类似360安全卫士、QQ电脑管家这种大而全的软件,幕后都是数百人的团队相互协作来实现持续更新发布,具体支撑快速发布版本的方法有下面四点。


一、统一阶段目标


就是在一个周期内确定需要做什么功能,要实现什么目标,整个团队奔着统一的目标去行动,中间不要插入新功能干扰进度。确定阶段目标后,团队上车开始刚活,目标完成,团队下车准备进入下一轮功能迭代。


二、解耦


学计算机的人对这个词应该比较了解,通俗点讲就是保持独立性,解耦具体分三个方面:

1、技术解耦

即从下至上:底层核心架构、应用程序、UI有清晰的分层,这样做功能扩展开发会比较方便;

2、业务解耦

即业务功能模块的独立性,大的功能需要尽量拆分成独立的特性模块,便于划分开发任务 ;

3、团队解耦

将大的团队划分成独立的团队(5-8人为佳),每个团队负责独立的特性模块开发,团队包括产品需求分析、项目管理、开发人员、UI,所谓麻雀虽小,五脏俱全。


三、配置管理体系


一个大的项目被划分为不同的特性功能模块后,每个特性功能可以认为是这个大项目的一个配置项。


配置管理体系的主要特点:

每轮迭代周期中,开发并测试OK的特性功能模块可以先发布,不用等待这个周期内尚未开发好的功能;

云端控制,即发布出去的功能如有问题,能通过云端控制回滚;


四、自动化体系支撑


即自动化构建系统、自动化测试、自动环境部署、自动监控等辅助支撑快速发布的东西。


END


个人微信号:gdengjun

添加时请注明:[城市] [行业]等信息



作者:邓俊

坐标广州 项目管理和职场分享


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

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

    10600 人正在学习 去看看 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和自测,不能把没有测试的代码进行提交。
2012-06-25 18:21:54 iteye_14109 阅读数 360
  • SCRUM敏捷开发视频教程

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

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

     软件开发方法一直处在不断发展过程中。在诸多方法中,敏捷开发以其能持续满足不断变化的用户需求正在受到越来越多人的重视,从中小项目开始进入大型开发项目,近几年来上升势头明显。那么,敏捷开发有什么好处呢?

 

    在软件工业界,敏捷开发已成为众多高效开发团队的制胜之道。在欧美软件企业中,有近半数企业已采用敏捷方法进行开发,而近几年受软件外包和外企的带动,敏捷开发在中国也出现了日渐普及的态势,如腾讯内部几乎所有的开发团队都在实施敏捷方法。敏捷开发的流行绝非偶然,其最大的推动力是采用这种方法所能带来的受益。相关统计表明,敏捷开发可以将效率提高3~10倍,软件的质量也有更加可靠的保证; 同时,还给团队内的每个成员提供了良好的发展机会,技术和合作水平都能得到相应提高。当然,敏捷的成功前提是其方法本身的适用性和团队对它的深入理解和合理运用。
 
    敏捷开发由几种轻量级的软件开发方法组成,包括极限编程、Scrum、精益开发(Lean Development)、动态系统开发方法、特征驱动开发(Feature Driver Development)、水晶开发(Cristal Clear)等等。所有这些方法都具有以下共同特征,它们也是敏捷开发的原则:

    1. 迭代式开发。即整个开发过程被分为几个迭代周期,每个迭代周期持续的时间一般较短,通常为1到6周。

    2. 增量交付。产品是在每个迭代周期结束时被逐步交付使用,每次交付的都是可以被部署、能给用户带来即时效益和价值的产品。

    3. 开发团队和用户反馈推动产品开发。敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。

    4. 持续集成。新的功能或需求变化总是尽可能频繁地被整合到产品中。有些是在每个迭代周期结束的时候集成, 有些则每天都在这么做。

    5. 开发团队自我管理。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。
 
    敏捷开发的优势:

    满足用户不断变化的需求是软件开发的长期无法解决的难题之一,经典的瀑布模式在一个迭代周期内表现优异,但一旦需求变化,瀑布模式却显得无能为力。敏捷方法满足需求的办法主要通过迭代。在每一次迭代周期结束时,都能交付用户一个可用的、可部署的系统,用户使用并体验该系统并反馈意见,在随后的迭代周期这些意见和需求的其他变化一起在产品中实现和集成。每次迭代周期应尽可能短,以便能及时地处理需求变化和用户反馈。
 
    敏捷开发方式能给企业和用户带来以下好处:

    1. 精确。瀑布模式通常会在产品起点与最终结果之间规划出一条直线,然后沿着直线不断往前走。然而当项目到达终点时,用户通常会发现那已经不是他们想去的地方。而敏捷方法则采用小步快跑,每走完一步再调整并为下一步确定方向,直到真正的终点。

    2. 质量。敏捷方法对每一次迭代周期的质量都有严格要求。一些敏捷方法如极限编程等,甚至使用测试驱动开发(test-driven development),即在正式开发功能代码之前先开发该功能的测试代码。这些都为敏捷项目的整个开发周期提供了可靠的质量保证。

    3. 速度。敏捷团队只专注于开发项目中当前最需要的、最具价值的部分。这样能很快地投入开发。另外,较短的迭代周期使团队成员能迅速进入开发状态。

    4. 丰厚的投资回报率。在敏捷开发过程中,最具价值的功能总是被优先开发,这样能给客户带来最大的投资回报率。

    5. 高效的自我管理团队。敏捷开发要求团队成员必须积极主动,自我管理。在这样的团队中工作,每个团队成员的技术能力、交流、社交、表达和领导能力也都能得以提高。
 
    主要的敏捷方法:

    敏捷开发方法是一组开发方法的统称,主要包括以下几种:

    极限编程其主要目的是降低需求变化的成本。它引入一系列优秀的软件开发方法,并将它们发挥到极致,结对编程(pair-programming)就是其中比较知名的方法之一。除此之外, 其核心做法还有小规模、频繁的版本发布、短迭代周期、测试驱动开发、持续集成、每日站立会议、共同拥有代码、系统隐喻等。

    Scrum Scrum是一个敏捷开发框架,它由一个开发过程、几种角色以及一套规范的实施方法组成。在Scrum中,产品需求被定义为产品需求积压(product backlogs)。所有的产品需求积压都是从一个简单的想法开始,并逐步被细化,直到可以被开发的程度。Scrum将开发过程分为多个Sprint周期,每个Sprint代表一个2~4周的开发周期,有固定的时间长度。

    精益开发精益开发的核心思想是查明和消除浪费。在软件开发过程中bug、没用的功能、等待以及其他任何对实现结果没有益处的东西都是浪费。浪费及其源头必须被分析查明,然后设法消除。精益开发的其他原则包括强调学习、在最后时刻做决定、用最快的速度交付用户等。

    其他敏捷方法还包括动态系统开发方法(DSDM)、特征驱动开发(FDD)、Crystal Clear等,各种敏捷方法的区别在于它们对敏捷的不同阐释和不同侧重。理解这些方法可以帮助我们从多个角度理解敏捷开发,并且了解更多的最佳应用。
 
 
如何选择一种敏捷方法:

    选择一种合适的软件开发方法取决于多种因素。在做出决定之前,我们需要充分考虑以下这些方面:

    1. 方法的复杂度。确保你的团队或组织能够应付这种复杂度。

    2. 社区和业界支持。有较多的社区及行业支持可以使你受益匪浅。

    3. 实用工具。一个良好的软件工具可以帮助团队有效地处理日常工作,促进团队协作,并减少管理成本。

    4. 对敏捷方法的认识程度。选择一些与你当前开发方式比较接近的敏捷方法将有助于推动该方法的实施。

    5. 你的团队规模。较小规模的团队最好从简单的方式入手。

    6. 你不需要只遵从一种方法。你可以为团队选择一个主要的方法(如Scrum),然后借鉴其他方法。

 

2019-08-16 01:05:19 seagal890 阅读数 51
  • SCRUM敏捷开发视频教程

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

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

[敏捷项目管理和敏捷开发] 开卷有益—推荐阅读书单

软件测试系列推荐阅读书单

序号 书名 作者 出版社
1 《敏捷实践指南 》项目管理协会 敏捷项目管理书

(美)Project Management Institute

电子工业出版社
2 《敏捷软件测试:测试人员与敏捷团队的实践指南》

(美)Lisa Crispin Janet Gregory  著

孙伟峰 崔康 译

清华大学出版社
3 《精益―敏捷项目管理:实现企业级敏捷(修订本)》(第3版) [美] Alan,Shalloway(艾伦.沙洛维),Guy,Beaver(盖伊.比弗),James ... 著,王雪露 译 电子工业出版社
4 《如何构建敏捷项目管理团队》ScrumMaster、敏捷教练与项目经理的实用指南 [美] [美] 丽萨·阿金斯 电子工业出版社

敏捷开发

阅读数 829

敏捷开发总结

阅读数 478

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