2019-07-05 16:56:38 Leytton 阅读数 210
  • SCRUM敏捷开发视频教程

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

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

大家好,我是煎饼哥,本期向大家介绍一个关于敏捷开发的方法,叫做scrum,相信资深的产品经理都接触过类似的项目管理方法。

  scrum敏捷开发,是一个美国统计学教授记录了多年工作经验,总结出来的一套简单易懂的开发方法,我接触过不少产品经理,惊奇发现不少产品经理的确是产品把控的非常好,输出的BRD,MRD,PRD等都非常专业,但是却没一套很好的项目管理方法。

  干货分享第一期:10分钟教会你SCRUM敏捷开发 干货第一期微信号:terrydengbin

  scrum 是一种迭代增量软件开发方法,通过该方法,你可以量化工作量,并且可以把每个任务量化成具体时间,得出最后一个项目的总时间(一般估算到小时)。能让管理者看清楚项目进度,把握项目进程的各种问题。scrum简单易用,但是简单的东西要掌握就容易犯错,大家可以在尝试中掌握这种项目管理方法,以下是我做内部培训个人写的scrum ppt教程,抛砖引玉,希望能普及该方法。

  首先欢迎大家关注本公众号,持续会输出原创内容,谢谢。

  (点击图片可以查看大图)

  

  scrum是有效管理未知因素和不断变化的产品需求,结束混乱,着重于如何驱动项目实现最高的投资回报。

  scrum材料准备:一个白板,n张便条纸,一张a4纸打印燃尽表(手绘也可以),一只笔。

  

  在scrum里面,有3种角色,分别是product owner(产品负责人)scrum master(团队负责人)scrum team (开发团队)

  Product owner: 是需求方,提出需求,能对功能流程,业务流程拍板的人。

  Scrum master :团队负责人,一般是product manager,负责解决团队问题,领导项目。

  Scrum team:项目执行人员,开发项目一般包括,前端后端开发,ui等。

  

  Scrum 步骤一:

  头脑风暴,如果product owner 对产品需求非常清楚,就可以省略这个步骤,开发一个原则“先紧后松”, 必须先把需求了解清楚,这里product owner可以召集技术团队/用户群体对其需求进行公开征求意见,最后输出一个产品建议表。

  

  Scrum 步骤二:

  product owner 对产品建议表进行筛选,做减法提炼最核心的需求。在确定了需求后,这个时候由scrum master 进行输出prd (product requirement document) , 这里就和传统的瀑布流一样了,该有的文档都必须有了,必须由scrum master 和product owner 确定好需求,包括业务逻辑,功能流程等。

  前面基本是最耗时间的,product owner和开发团队一来一回好多次。

  

  Scrum 步骤三:

  神马原型,ui设计都不是在步骤二完成的,刚才只是开始,步骤三后面才是scrum的精华部分,把任务量化,包括,原型,logo设计,ui设计,前端开发等。

  尽量把每个工作分解到最小任务量(wbs),最小任务量标准为工作小时不能超过16小时。准备估算总体项目时间吧!

  把每个任务都贴在白板上面,白板上分三部分

  (1)to do待完成

  (2)in progress 进展中

  (3)done 完成。

  

  如何估算时间:玩poker game(扑克游戏)这个方法估算出来的工作时间比较准,参与扑克游戏的最好有专家和开发涉及到的人员(杜绝阿猫阿狗,酱油男等参与)

  扑克游戏玩法:

  (1)每个人发一些便条纸, 针对具体任务,每个人根据经验写出时间(不公开写)

  (2)同时展示该项目完成时间,肯定存在最大最小的工作时间,最大最小两个人请你们辩论吧,为什么要那么长时间完成,或者那么短时间完成,其他人可以提出疑问,在一定程度上达成认可。

  (3)进行再次私下对该任务写时间,再公示,再辩论,这样下去,大家写出来的该任务的时间越来越接近了。

  (4)最后达成一个共同认可的时间,这个就是该任务的工作时间!

  注意事项,如果参与的人不懂该任务流程,参与投票就会影响准确率。

  

  Scrum 步骤四:

  好吧,经过大家纠结讨论了好久,终于把任务量化到具体多少时间完成了!

  恭喜!接下来,把n个任务按照开发的重要度,组合成n个sprint( 冲刺),每次执行一个sprint.

  

  每个sprint 都是独立的,一般先做主要功能,再到次要功能,再到小功能,最后的sprint 一般是修复bugs。

  

  因为任务都被量化了,每天工作了多少小时,完成了多少任务量,通过每天例会scrum master非常清楚,并且在time burn down chart (时间燃尽表)进行表示。我们就可以直观看到任务的进度了,而且是具体到多少小时!

  

  在burn down chart 里面,不管任务是否按时完成都必须记录。

  

  时间燃尽表是scrum的精华,通过该表格可以可视化任务的时间进度,大家可以看下图,day1 是整个任务的总共时间,每天按照任务完成度更新剩余时间,或者增加时间(例如发现一个技术难点,团队成员请假等要增加开发时间)

  

  在白板上面当前sprint 每天肯定都是在变的,scrum master 赶快把每天更新工作量吧!更新后算出剩余时间,就画在burn down chart上。

  

  关于bugs... ...

  每个sprint 都必须测试,尽量大家一起测试吧,如果太多bug就开一个sprint来修复bugs.

  

  每天要做的是,要开standing meeting ,因为大家的时间都是非常紧张的,一般是站着开的,一般10分钟左右.

  

  会议就问开发团队每个人三个问题:

  (1)你今天做了什么

  (2)明天打算做什么

  (3)有没遇到什么困难?

  scrum master 要解决开发团队的困难,让项目快速进展下去。

  每周一次周会,product owner最好在场。 每个月一次月会,product owner最好在场,指出产品开发是否在product owner期待范围内。

  

  好吧, 如此重复下去,直到开发完成!

  Scrum 步骤五:

  最后一个步骤,评估。

  product owner 和其团队/用户会对产品进行评估,可能还会有各种揪心的事,但是product owner是给钱的主,他要改还是要改的,建立一个bugs sprint吧,把产品做到product owner最想要为止!

  

  写在最后的话

  SCRUM也有缺点一直被人诟病,就是对团队要求高,团队成员相互信任度高,团队的人有能力,而且不会相互推搪责任,归根到底对应新团队使用该方法开始是各种问题的!请多多磨合吧!

  

  作者微信:terrydengbin

  最后直接送上干货ppt, keynote, pdf! 编写该教程我是使用了keynote 里面文字少,基本都是动画哦!!有mac的童鞋有福啦,我也转成了ppt格式,动画肯定会损失的,还有pdf可以下载。

  大家关注“今日发现”微信公众号,输入“SCRUM"即可获得下载地址!

2019-03-09 21:55:30 weixin_41615439 阅读数 136
  • SCRUM敏捷开发视频教程

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

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

原文转自阮一峰老师的网络日志

http://www.ruanyifeng.com/blog/2019/03/agile-development.html

敏捷开发入门教程

敏捷开发(agile development)是非常流行的软件开发方法。据统计,2018年90%的软件开发采用敏捷开发。

但是,到底什么是敏捷开发,能说清的人却不多。本文尝试用简洁易懂的语言,解释敏捷开发。

 

一、迭代开发

 

敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。

那么什么是“迭代开发”呢?迭代的英文是 iterative,直译为“重复”,迭代开发其实就是“重复开发”。

对于大型软件项目,传统的开发方式是采用一个大周期(比如一年)进行开发,整个过程就是一次“大开发”;迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次“大开发”变成多次“小开发”,每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。

 

举例来说,SpaceX 公司想造一个大推力火箭,将人类送到火星。但是,它不是一开始就造大火箭,而是先造一个最简陋的小火箭 Falcon 1。结果,第一次发射就爆炸了,直到第四次发射,才成功进入轨道。然后,开发了中型火箭 Falcon 9,九年中发射了70次。最后,才开发 Falcon 重型火箭。如果 SpaceX 不采用迭代开发,它可能直到现在还无法上天。

迭代开发将一个大任务,分解成多个连续的阶段,本质就是逐步改进。开发者先快速发布一个有效但不完美的最简版本,然后不断迭代。每一次迭代都包含规划、设计、编码、测试、评估五个步骤,不断改进产品,添加新功能。通过频繁的发布,以及跟踪对前一次迭代的反馈,最终接近较完善的产品形态。

 

二、增量开发

 

迭代开发只是要求将开发分成多个迭代,并没有回答一个重要的问题:怎么划分迭代,哪个任务在这个迭代,哪个任务在下个迭代?这时,一般采用“增量开发”(incremental development)划分迭代。

所谓“增量开发”,指的是软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。

举例来说,房产公司开发一个10栋楼的小区。如果采用增量开发的模式,该公司第一个迭代就是交付一号楼,第二个迭代交付二号楼……每个迭代都是完成一栋完整的楼。而不是第一个迭代挖好10栋楼的地基,第二个迭代建好每栋楼的骨架,第三个迭代架设屋顶……

增量开发加上迭代开发,才算真正的敏捷开发。

 

三、敏捷开发的好处

 

3.1 早期交付

敏捷开发的第一个好处,就是早期交付,从而大大降低成本。

还是以上一节的房产公司为例,如果按照传统的“瀑布开发模式”,先挖10栋楼的地基、再盖骨架、然后架设屋顶,每个阶段都等到前一个阶段完成后开始,可能需要两年才能一次性交付10栋楼。也就是说,如果不考虑预售,该项目必须等到两年后才能回款。

敏捷开发是六个月后交付一号楼,后面每两个月交付一栋楼。因此,半年就能回款10%,后面每个月都会有现金流,资金压力就大大减轻了。

3.2 降低风险

敏捷开发的第二个好处是,及时了解市场需求,降低产品不适用的风险。

请想一想,哪一种情况损失比较小:10栋楼都造好以后,才发现卖不出去,还是造好第一栋楼,就发现卖不出去,从而改进或停建后面9栋楼?

对于软件项目来说,先有一个原型产品,了解市场的接受程度,往往是项目成功的关键。有一本书叫做《梦断代码》,副标题就是“20+个程序员,三年时间,4732个bug,100+万美元,最后失败的故事”,这就是没有采用敏捷开发的结果。相反的,Instagram 最初是一个地理位置打卡 App,后来发现用户不怎么在乎地理位置,更喜欢上传照片,就改做照片上传软件,结果成了独角兽。

由于敏捷开发可以不断试错,找出对业务最重要的功能,然后通过迭代,调整软件方向。相比传统方式,大大增加了产品成功的可能性。如果市场需求不确定,或者你对该领域不熟悉,那么敏捷开发几乎是唯一可行的应对方式。

 

四、如何进行每一次迭代

 

虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件周期,必须按照软件工程的方法论,进行正规的流程管理。

具体来说,每次迭代都必须依次完成以下五个步骤。

  1. 需求分析(requirements analysis)

  2. 设计(design)

  3. 编码(coding)

  4. 测试(testing)

  5. 部署和评估(deployment/ evaluation)

每个迭代大约持续2~6周。

 

五、敏捷开发的价值观

 

《敏捷软件开发宣言》里面提到四个价值观。

  • 程序员的主观能动性,以及程序员之间的互动,优于既定流程和工具。

  • 软件能够运行,优于详尽的文档。

  • 跟客户的密切协作,优于合同和谈判。

  • 能够响应变化,优于遵循计划。

 

六、十二条原则

 

该宣言还提出十二条敏捷开发的原则。

  1. 通过早期和持续交付有价值的软件,实现客户满意度。

  2. 欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。

  3. 不断交付可用的软件,周期通常是几周,越短越好。

  4. 项目过程中,业务人员与开发人员必须在一起工作。

  5. 项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。

  6. 面对面交谈是最好的沟通方式。

  7. 可用性是衡量进度的主要指标。

  8. 提倡可持续的开发,保持稳定的进展速度。

  9. 不断关注技术是否优秀,设计是否良好。

  10. 简单性至关重要,尽最大可能减少不必要的工作。

  11. 最好的架构、要求和设计,来自团队内部自发的认识。

  12. 团队要定期反思如何更有效,并相应地进行调整。

 

2012-07-30 15:41:59 DrifterJ 阅读数 3192
  • SCRUM敏捷开发视频教程

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

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

公司所有开发组目前都在提倡敏捷开发,我所在的开发组也没有out,刚刚发版的产品我们就引入了敏捷开发的一些概念--虽然还比较粗糙,但整体感觉还是蛮好的。发版后,有一段空闲期,闲来无事,看到同事桌上有本《轻松Scrum之旅--敏捷开发故事》,就借过来读了一下,通篇就是一个产品的敏捷开发过程,从概念和使用方法上看,能有不小收获。这次就写一下自己初次体验敏捷的一些感受和这本书的一点读后感。

先说一下自己在实际开发中的一些感受吧。

敏捷开发整体来说是一种思想,但凡是思想的东西就不会局限于某种或某几种应用之上。敏捷也不例外,软件开发作为一种智力工程,只是敏捷的一个应用而已。具体到实际的应用,思想就会被具化为一些行之有效的手段和指导原则。敏捷在实际软件开发有XP,RUP,Scrum等多种应用框架,这些框架基本都是一些指导原则的集合,我们实际开发中采用了Scrum,但中间也采用了其他框架的一些非常优秀的指导原则!这其实也体现了敏捷的部分思想:不拘泥于形式!

使用Scrum,首先要有功能看板,现在有很多软件形式的看板,我们第一次使用敏捷,果断没有使用这种看板,而是采用了更具视觉冲击力的实物看板,我们开发经理用周末打造了如下看板:

上面就是我们组大而帅的功能看板,那他的作用是啥呢?上面在不同格子上贴的便签又是啥呢?我先简介概括一下我们使用敏捷的步骤,这些问题你就会有了答案的。

我们第一次是这样使用Scrum的(其中的一些步骤和涉及到的用词和标准Scrum有所区别,这个我后面会分析):

1》 部门经理,开发经理,需求人员将产品进行分解,分解为一些较大的点,然后根据重要性和难易度将这些点分为3个迭代周期,即3个迭代周期后,产品整体及出炉了。

2》 开始每一次迭代前,部门经理,开发经理会将这个迭代的大点进行细分成一些小点,大小通常控制在1~3天。

3》 开始具体一次迭代,我们首先会开一个任务分配会议,时长大约1个多小时,开发经理给出所有的上述分解出的小点,挨个“招标”。如果有人感兴趣,举手示意即可,对于没人认领的点,开发经理最后会根据时间,强制分配给某人。

4》 开始迭代,首先所有人将自己的开发点写在便签上,并且贴在上述看板自己对应行的【准备】列中。这个看板“行”是和开发人员对应的,一人一行。“列”是和任务过程对应的,通常包括:准备;进行中;自测;完成。

5》 每天早晨9:00,开发经理会组织所有开发人员在看板前集合,举行每日例会,时长通常在20-30分钟。每个开发人员必须发言,发言内容为:昨天我做了什么事情,我遇到了什么困难,今天我要做什么事情。说的过程,同时移动任务便签到看板相应的列上。每个任务便签上都写有该任务的完成时间,如果开发时间和进度不匹配,开发经理会立即发现并进行沟通。

6》 一次迭代完成后,部门经理,开发经理,需求人员,所有开发人员,测试人员会开一次评审会议,时长大约2个小时,这期间主要是开发人员向所有与会者展示这次迭代的开发成果。测试人员也了解一下产品的使用方法,便于马上开展的测试工作。

这就是我们的敏捷过程,借用部门经理的话,这就是“山寨版”敏捷......但我们还是在这几条步骤下,经过3次迭代,产品成功发版了。其中也遇到了一些问题,比较典型的如下:

1》 任务分解粒度太粗!2~3天的任务,通常会产生拖延,因为这个时间本身就是估算的,任务时间长,说明其包含的功能点多,每个功能点有一点延迟,整个任务就有延迟,一个任务有延迟,最后往往会波及到整个迭代的时长!我们这3个迭代最后多出现了延时情况。

2》 任务粒度太粗还有另一个问题时,功能点的遗漏!这个问题甚至会拖延到测试时才被发现,只能临时将其添加到下次迭代中,影响了下次迭代的开发。

3》 开发人员受外界影响太大!我们开发人员不仅要参与这个产品的发版,同时还要参与维护以前的产品。这种时间没法计算到迭代周期中,但同样会影响迭代周期的计划时长。

4》 分解任务分配时间时,代码评审和自测的时间估量的太少,导致每次迭代后交付给测试的产品小问题太多。虽然整体流程可以走通,但仍热让测试团队怨气颇大!

这就是我们第一次自我敏捷的过程和期间产生的一些问题。如果仅仅从“敏捷的实施”这个角度看,我们的敏捷是失败的。因为我们没有按时优质的交付每一次迭代成果,最后的产品也产生了拖延。

 

然后再说一下我读完《轻松Scrum之旅--敏捷开发故事》一书后,对Scrum的一些收获吧,其中还有和我自己的敏捷开发进行的对比。先说一下Scrum中涉及到的一些名词:

1》 Product Owner:产品所有者,这个人发起一个产品的开发,并且负责将产品通过User Story的形式进行描述,并对所有User Story按优先级排序,给出一个大概的开发时间。我上述描述中“部门经理”就是我们那个产品的Produce Owner。

2》 Product Backlog:产品的功能点的总纲,即所有的User Story。最后Scrum是否完成,就看这个Backlog中是否还有剩余User Story。敏捷中允许Product Backlog发生变化,这分为两点:一是前面迭代中完成的部分发生了需求变化,则将这部分放到未完成的Backlog中,另一个是没有开发的部分发生变化。并且如果Scrum的整体周期很难变化,可以视开发进度从Product Backlog中将部分User Story移出。

3》 User Story:产品的一个开发点,通常是一个较大的点,从用户角度进行描述。一个大的User Story通常会包括多个较小的User Story。较小的User Story会包含多个Task。

4》 Task:产品的一个小的开发点,我们进行开发忘功能看板上贴便签上,写得就应该是Task。每个Task的时长通常为0.5~1天。从这个角度看,我上述描述的自己的敏捷对Task的大小没有控制好,这点确实对开发影响很大!

5》 Scrum Master:Scrum团队的负责人。负责一个Scrum团队和Product Owner交流的一个人。Scrum强调团队的自我管理性,即开始Scrum后,这个团队就相对封闭了,不应受外界影响。这个团队的一个开放口就是Scrum Master 。这个人负责团队与外界沟通,并且阻止外界对团队的影响。我上述描述自己的敏捷中,开发经理就相当这个角色。

6》 Sprint:中文翻译就是“冲刺”, 我上面描述自己的敏捷提到的“迭代”就等同于Sprint。实际实施Scrum中,就是要完成几个Sprint。一个Sprint时间通常为2周~2个月,这个视产品大小而定。

7》 Sprint Backlog:一个迭代过程中需要完成的功能点列表。这个列表就是从Product Backlog中挑选出来的。

8》 Sprint Planning Meeting:Sprint计划会议。这个会议是开始一个Sprint的标志会议。通常分为两部分,第一是Product Owner,Scrum Master,所有开发人员,用户(如果有的话最好)同时参加,共同决定这次Sprint中要完成Product Backlog中哪些功能,如果此刻又不明白的地方,Scrum Master和开发人员必须和Product Owner进行充分沟通,直到明白为止。第二是Scrum Master 和所有开发人员参加,将这次Sprint中的User Story分解为Story,每个Story完成时间控制在0.5~1天,并且由开发人员按兴趣领取相应的Task。注意代码评审和自测也要分别作为一个Task存在。

9》 Daily Scrum Meeting:每日例会。由Scrum Master和所有开发人员参与的例会。这个是Scrum的精髓,Scrum Master控制一个Spint的进度就是根据这个会议。

10》 Sprint Review Meeting: Sprint评审会议。每次Sprint后对整个Sprint的成果向Product Owner,测试进行演示的一个会议,是一个Sprint完成的标志。

11》 Sprint Retrospective Meeting:Sprint回顾会议。这个会议由Scrum Master 和全体开发人员参加,大家讨论一下在刚刚结束的一个Sprint中的所得和所失。是一个Scrum团队自我成长和进步的最好的方式,大家互相提出自己的建议并发现问题,进行团队经验累积。我上述自己的敏捷没有这个会议,这个是一大损失!

这些都是这本书提到的一些Scrum概念,在实际应用中,我们的一些东西和这个肯定会略有不同,这个无关紧要,但其中一些重要的步骤,比如最后8~11 这个4个,是不可或缺的!

Scrum是软件开发中对敏捷的一组具体的应用指导原则,他强调面对面的沟通(一个Scrum团队最好保持在6~8人,并且大家办公位置能在一起),欢迎变化,弱化文档(他强调代码和注释是最好的文档),并且不提倡加班(对于视加班为常态的广大IT“民工”真是一大福音啊)。

实施Scrum中,有几点是要提前有所防备的。Scrum欢迎变化,所以我们就不可避免会有一些需求的变动或开发人员请假的一些情况,所以我们在安排时间时尽可能留一些预留时间,这个长度视经验而定。如果在实施过程中,预感到进度出现滞后的现象,Scrum Master要及时和Product Owner进行沟通,暴露问题所在,提前做出调整,如延长一定时间或者去掉一些User Story。

Scrum中涉及一个功能看板,这个看板很重要,可以用实物看板(我上述描述的敏捷过程所用),目前也有很多Scrum实施软件,如ScrumWorks(这本书中使用的软件),这个软件好像是收费的,所以我也没用过,但貌似功能很强大!不仅能有实物看板一切功能,而且还支持自动绘制“燃尽图”,这是一个整个项目进度的可视化显示,从网上找到的燃尽图,大家可以看一下:

红线表示计划进度路线,蓝线表示实际进度路线。蓝线在上面,表示进度有所滞后,蓝线在下面表示进度有所加快。如果不用ScrumWorks这类软件,我们如果需要这种可视化图片,需要自己手动进行。

这就是自己先糊里糊涂经历过敏捷而后又细细品味后敏捷的一点入门小得,总结一下,敏捷就是一种思想,是一种以人为出发点的一种管理哲学,可以应用在各种领域。在软件工程领域,Scrum是一组具体的敏捷实施指导原则,概念清晰,比较适合初次采用敏捷的开发团队使用。

 

2019-01-13 16:29:52 qq_43682716 阅读数 158
  • SCRUM敏捷开发视频教程

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

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

JEEWEB Mybatis版本是一款基于SpringMVC+Spring+Mybatis+Mybatis Plus的JAVA WEB敏捷开发系统;它是一款具有代码生成功能的智能快速开发平台;是以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Disruptor作为并发框架,Bootstrap作为前端框架的优秀开源系统。

其实这套框架已经开源了,由于原来封装的太厉害了,难以理解,所以我花了好几天研究了一下这套系统,并简单化了。

项目目录结合:




CRUD基本上不用自己写了,哈哈哈哈

JeeWeb 技术特点

JeeWeb使用目前流程的WEB开发架构技术,如 SpringMVC, Mybatis,Apache Shiro, Disruptor , ehcache, Jquery ,BootStrap 等等,支持多种数据库MySQL, Oracle, sqlserver等。 分层设计:使用分层设计,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。

安全考虑:严格遵循了web安全的规范,前后台双重验证,参数编码传输,密码md5加密存储,shiro权限验证,从根本上避免了SQL注入,XSS攻击,CSRF攻击等常见的web攻击手段。

JeeWeb 功能特点

  • 采用SpringMVC+Spring+Mybatis+Mybatis Plus+Shiro+ Ehcache+Disruptor+Jquery + Boostrap + Ztree等基础前后端架构架构
  • 采用面向声明的开发模式, 基于泛型编写极少代码即可实现复杂的数据展示、数据编辑、表单处理等功能,在不使用代码生成器的情况下,也只需要很少的代码就能实现基础的CURD操作,再配合在线开发与代码生成器的使用,更加加快了开发的进度,将J2EE的开发效率成本提高,可以将代码减少60%以上。
  • 在线开发(通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义表单布局)
  • 代码生成器,支持多种数据模型,根据表生成对应的Entity,Service,Dao,Controller,JSP等,增删改查功能生成直接使用
  • UI标签开发库,针对前端UI进行标准封装表,页面统一采用UI标签实现功能:数据datagrid,treegrid,FileInput,Editor,GridSelect等,实现JSP页面零JS,开发维护简洁高效
  • 查询过滤器:只需前端配置,后台动态拼SQL追加查询条件;支持多种匹配方式(全匹配/模糊查询/包含查询/不匹配查询)
  • 移动平台支持,对Bootstrap(兼容Html5)进行标准封装
  • 国际化(支持多语言,国际化的封装为多语言做了便捷支持)
  • 多数据源(在线配置数据源,数据源工作类封装)
  • 数据权限:整合Shiro权限
  • 计划任务控制(在线配置计划任务、方便计划任务的时间调整规划)
  • 邮件发送(配置邮件模版、邮件帐号的在线配置、邮件异步发送、邮件发送日志功能统计)
  • 短信发送(配置短信模版、短信帐号的在线配置、短信异步发送、短信发送日志功能统计、支持短信发送平台动态切换)
  • 多种首页风格切换,支持自定义首页风格。(Inspinia风格|ACE风格)
  • 数据统计报表:丰富的报表统计功能
  • 支持多种浏览器: Google, 火狐, IE,360 等
  • 支持数据库: Mysql,Oracle10g,SqlServer等
  • 基础权限: 用户,角色,菜单权限
  • Web容器测试通过的有Jetty和Tomcat,Weblogic
  • 要求JDK1.7+

技术选型

1、后端

核心框架:Spring Framework安全框架:Apache Shiro视图框架:Spring MVC服务端验证:Hibernate Validator布局框架:SiteMesh任务调度:Quartz持久层框架:Mybatis数据库连接池:Alibaba Druid缓存框架:Ehcache并发框架:Disruptor日志管理:SLF4J、Log4j工具类:Apache Commons、Jackson、Xstream、

2、前端

JS框架:jQuery。CSS框架:Twitter Bootstrap客户端验证:Validform。富文本在线编辑:markdown、simditor、Summernote、CodeMirror自由切换文件上传工具:Bootstrap fileinput数据表格:jqGrid对话框:layer树结构控件:jQuery zTree日期控件: datepicker代码高亮: syntaxhighlighter
├─main│  │  │  ├─java│  │   ││  │   └─cn.jeeweb----------------平台主代码│  │             ││  │             ├─core----------------平台核心模块存放目录│  │             │    ├─common----------------项目公用的部分(例如基础controller、dao、service、以及动态SQL/HQL实现)│  │             │    ││  │             │    ├─disruptor-------------并发框架的实现(短信发送模块、邮件发送模块)│  │             │    ││  │             │    ├─filter、interceptor---安全过滤器、其他一些公用拦截器│  │             │    ││  │             │    ├─mapper----------------各种Object到Xml、Object到Json的映射转换类│  │             │    ││  │             │    ├─model-----------------前段暂时的各种JSON实体│  │             │    ││  │             │    ├─quartz----------------quartz定时任务实现│  │             │    ││  │             │    ├─query-----------------前端请求,后端自动组装、以及分页的查询模块│  │             │    ││  │             │    ├─repository------------持久层相关类│  │             │    ││  │             │    ├─security--------------安全相关类│  │             │    ││  │             │    ├─tag-------------------GRID标签、form标签、html组件加载标签等│  │             │    ││  │             │    └─utils-----------------一些工具类│  │             │    │  │             └─modules----------------内置功能模块(按照业务模块分类)│  │                  ├─charts----------------图表模块│  │                  ││  │                  └─sys-------------------权限模块│  │                     ││  │                     ├─controller---控制层│  │                     ││  │                     ├─entity-------实体层│  │                     ││  │                     ├─service------服务层│  │                     ││  │                     ├─security-----安全相关│  │                     ││  │                     ├─tags----------------标签│  │                     ││  │                     └─utils-----------------一些工具类│  │   │  ││  ├─resources----------------平台资源文件│  │     ││  │     ├─ehcache----------------缓存配置目录(ehcache.xml缓存配置文件)│  │     │ │  │     ├─i18n-------------------国际化信息所在的文件名文件目录(messages.properties项目国际化、ValidationMessages.propertieshibernate validator验证)│  │     │ │  │     ├─mapper----------------一些映射(特别tag/html/中的文件,为html组件加载包)│  │     │ │  │     ├─statement-------------动态SQL/HQL(是更灵活的操作SQL/HQL)│  │     │ │  │     ├─codegen.properties-----代码生成配置│  │     │ │  │     ├─dbconfig.properties----数据库配置│  │     │ │  │     ├─jeeweb.properties------项目的一些配置│  │     │ │  │     ├─shiro.properties-------shiro配置│  │     │ │  │     ├─shiro.properties-------代码生成器的模板文件,以及其他模板存放目录│  │     │ │  │     ├─*.properties----------(其他配置,可以查看配置的前缀,对应具体业务的配置,如何:sms.properties短信、email.properties邮件配置)│  │     │ │  │     └─spring-*.xml-----------Spring相关文件│  ││  └─webapp----------------web页面和静态资源存放的目录│      ││      └─WEB-INF│            ││            ├─static----------------静态资源目录│            │    ││            │    ├─ace----------------ace样式JS,CSS文件│            │    ├─vendors----------------第三方的JS,css,按照第三方包名单独保存│            │    ├─common-----------------系统的公用JS.CSS文件│            │    └─modules----------------功能模块CSS,以及JS,按照模板名单独存放│            └─webpage----------------视图文件目录│                 ├─decorators-------------视图装饰目录

开源时代嘛,有需要的留下你们的邮箱,如果我们及时发给你,请等等哦,亲

你也可以到这下载源码:http://download.csdn.net/download/m0_37499059/10270653



           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

2016-08-12 10:56:54 Hampton_Chen 阅读数 2620
  • SCRUM敏捷开发视频教程

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

    10404 人正在学习 去看看 CSDN讲师
 最近实习的公司采用的是敏捷开发Scrum模式,在经历敏捷开发培训后,写写一些自己学到的东西。

一、什么是敏捷开发

敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。
除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。
敏捷开发现已成为绝大多数IT企业采用的项目管理方法。
下图为美国IT企业主要采用的项目管理方法学2015年调查报告。

这里写图片描述

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
敏捷精神(The spirit of agile):**透明、沟通、协作**

二、什么是Scrum

  • Scrum 是一个框架,在这个框架中人们可以解决复杂的自适应问题,同时也能 高效并有创造性地交付尽可能高价值的产品。
  • Scrum 是:轻量级的、容易理解的 、难以精通的
  • Scrum 不是开发产品的一种流程或一项技术,而是一个框架,在这个框架里可以应用各种流程和技术。 Scrum
    能使产品管理和开发实践的相对功效(relative efficacy) 显现出来, 以便进行改进。
  • Scrum 框架由 Scrum 团队及其相关的角色、事件、工件和规则组成。框架中的每个模块都有其特定的目的, 对Scrum
    的成功实施和运用都至关重要。
  • Scrum 基于经验型流程控制理论, 或者称为经验主义。经验主义主张知识源于经验, 而决策基于已知的事物。Scrum
    采用迭代增量式的方法来优化可预测性和管理风险。
  • 透明性、检视、调整是经验型流程的三大支柱,支撑起每个经验型控制流程的实施。

三、Scrum组成人员

这里写图片描述
Product Owner –产品负责人(PO/PM)
职责

  • ROI-产品负责人最大的职责是为产品的投入产出比(ROI)负责,即最大化团队的投入产出比。在Scrum当中,由于Sprint是时间盒(即时间是固定的),且成本(软件开发中人力成本是最大的成本,其他忽略不计)也是固定的,那么最大化投入产出比就是如何做出最有价值的产品增量。
  • 创建产品愿景(Vision)
  • 创建与维护产品 (Mange Prod/Sprint Backlog)
  • 主持产品Backlog优化会(增加、删除、修改或细化用户故事,并根据需要进行排序)(Mange Prod/Sprint Backlog)
  • 协调干系人与开发团队之间的沟通 (Communicate)
  • 参加团队的Scrum会议
  • 在Sprint计划会上和团队一起决定当前Sprint的开发内容
  • 接受或拒绝团队的产品增量 (PO Review-Decisive)
  • 决定何时发布 – 需要团队的承诺 (Decisive)
  • 有空解答团队问题 (Available)

Scrum Master
职责

  • Scrum权威(Role model of scrum value)
    ScrumMaster是团队中最熟悉和了解Scrum框架的,并可以根据实际情况对团队进行指导。
  • 辅导团队和产品负责人(Coach/Facilitation)
    如果产品负责人或团队不知道该怎么办,ScrumMaster需要提供相应的辅导、培训或支持。
  • 保护团队 (Project Team)
    在一个Sprint中,ScrumMaster要保护团队不受打扰,可以专注于Sprint目标和承诺。
  • 移除障碍 (Remove Impediment)
    ScrumMaster要善于发现障碍,并可以帮助团队移除障碍,包含但不限于个人障碍,团队障碍以及组织级的障碍。
  • 变革大师 (Agent of change)
    ScrumMaster不仅要在团队内实行Scrum,还要能够影响并促进组织或整个公司内的变革。
  • No Authority /Servant Leader

Dev Team-开发团队
开发团队在Sprint中主要负责以下工作:

  • 每日检视与调整 – 每天开发团队成员都需要参与每日例会。在会上大家一起检视和调整团队的进展。

  • 产品列表梳理 –
    每个Sprint中团队都要花一些时间来为下一个迭代做准备工作(即产品列表梳理活动),包括产品列表条目的创建、细化、估算、排序等工作。每个Sprint最多分配10%的时间来协助产品负责人完成这些工作。

  • Sprint计划会 – 在Sprint计划会团队一起决定Sprint内要完成哪些故事,并进行任务分解和估算。检视和调整产品与过程 –
    即参加Sprint评审会(检视调整产品)和Sprint回顾会(检视调整过程)。

四、Scrum流程

这里写图片描述

Artifacts-工件

  • Product Backlog (产品backlog)
  • Sprint Backlog(冲刺/迭代backlog)
  • Increments (产品增量/可交付成果)

Ceremonies-会议

  • Sprint 迭代
  • Planning/Grooming Meeting 计划会议
  • Daily Standup 每日例会
  • Reviewing Meeting 评审会议
  • Retrospective Meeting 回顾会议

敏捷开发~入门

阅读数 88

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