发表于: 2017-11-05 23:24:52
1 814
今天完成的事情:收拾行李,给家铭讲解项目
1.整理敏捷开发
一. 为什么需要敏捷开发?
传统开发流程存在的问题:1,开发流程长,风险大2.开发出来的成品和需求不匹配3.成品做好的时候需求已经发生了大的改变,成品没有价值
敏捷开发的最大作用是如何在用户需求不断变更的情况下最大程度的保证开发的质量.其次是降低项目开发中每个环节的风险,确定项目延期应对措施,厘清各个角色的职责
二. 敏捷开发流程中有哪些工具可以使用
禅道,wiki,邮件.
禅道是用来管理项目进度的工具,Wiki使用Confluence,邮件使用网易和腾讯企业邮箱
三.敏捷开发中的角色以及开发周期
角色:产品经理,UI设计师,前端工程师,后端工程师(包括初级工程师和架构师),Android/IOS工程师,测试人员,运维人员,各个小组leader.
PM
确定产品的功能,拆分story。
需求功能确定优先级。
接受或拒绝开发团队的工作成果。
参与产品开发过程中的有关会议。
UI
根据story,负责产品的功能交互及界面设计
组织开展人机交互及用户体验,不断跟踪改进,提高产品表现力。
参与产品开发过程中的有关会议。
开发
根据story,负责产品的技术架构设计及功能开发
评估、设计及维护产品相应模块,确保模块的稳定性、易用性、高效性。
参加产品开发过程中的有关会议。
测试
根据story,设计产品测试标准,确保产品品质满足市场需求。
合理分配测试资源,组织产品测试并优化测试流程及测试标准,提高测试效率。
编写产品测试用例,提交测试问题,编写测试总结报告,以测试角度来确定产品版本是否发布。
敏捷开发周期整体分为三个阶段:产品设计阶段,开发阶段,测试阶段
第一,产品设计阶段
产品设计阶段又可以细分为几个小的阶段:
产品设计阶段:产品经理设计需求,涉及的角色是产品经理,要拆解story,制作PPT
内部评审阶段:初步设计出来的需求在产品组内部进行初步评审,获取他人反馈,进一步完善需求,涉及的角色是负责该项目的产品经理和产品组所有成员.该阶段是以开内部评审会的方式进行,该阶段的成果要有三点:一是确定需求的大方向,二是考察产品的细节是否周全,三是统一整个产品的风格和细节规范
真正的需求评审(非常重要):和该项目有利益相关的所有部门统一对需求进行讨论,最终确定需求.需求评审通过之后,其他人员不能再对需求有异议.如果在需求评审之后发现需求有问题,那么就是所有参加需求评审的人员的失职.参加需求评审的角色有:产品经理,产品部门,研发部门,运营部门,CTO等所有对该产品有决策权的人员,如果研发部门的leader来不了,那么研发部门下的各个小组的leader要参加.所有对产品设计的意见,都应该在需求评审中提出来,研发部门要确定需求是否合理,由谁来做,大概需要多长时间,需求讲解什么时候进行.所以参加需求评审的一般都是公司管理层,因为管理层的经验更加丰富,对于重大事务更有把控力,此时不推荐普通工程师参加需求评审.
需求讲解(重要):产品经理向整个研发团队讲解需求,涉及到的人员有产品经理以及参与产品开发的所有研发团队成员.该阶段主要讲清楚为什么会有这个需求,整个产品的业务流程大概是什么样,除此之外,还要讲清楚原型如何跳转,细节如何交互等.研发团队此时的任务一是必须要准确理解需求,包括为什么这么做以及需求的细节是否考虑到,有不理解的及时与产品经理沟通,二是思考需求的大概实现方案,要求是第一时间判断需求能不能实现,实现时有哪些不确定的地方,需求有没有逻辑混乱的地方,需求是否合理.
第二阶段,开发阶段
方案设计及评审:研发团队所有人员根据需求设计实现方案,包括定义接口,业务的实现逻辑,数据库表结构的设计等,设计好的方案在研发团队中进行方案评审.此时不推荐架构师一人设计项目架构,初级工程师只负责写业务逻辑代码,因为这对于工程师的成长非常不利,推荐做法是所有的工程师都设计实现方案,最后由架构师或者小组leader来判断方案是否合理.涉及到的角色有初级工程师和架构师或者小组leader.通过不断反馈的方式完善项目设计方案,同时提高初级工程师的技术水平.
进入真正的开发阶段:此时要做的事情是拆解task,完成具体的开发,codereview,性能测试.此时研发团队中的每一个成员都是项目的owner,都对项目负主要责任.在开发过程中项目leader不用过多的介入开发人员的工作,但是当发现有延期风险时(通过查看每日晨报,迷你demo,燃尽图等方式)项目leade必须迅速介入,消除项目延期风险,所以项目leader其实是充当一个守护者的角色
项目demo阶段:研发团队把成品交付给产品团队,具体标准是研发团队完完全全的把产品需求完成,可以交付验收了.涉及到的验收人员有,产品经理,研发团队小组leader,测试人员,甚至是技术总监.demo时由研发团队人员来讲做了哪些东西,将所有流程跑一遍.demo完毕,研发团队对该项目的开发周期就算结束,如果有bug,进入bug修复流程,进行修复,如果此时需求有变更,如果该需求三天内能完成,则算作bug流程,如果三天以上才能完成,则作为下一个周期的迭代
第三阶段:测试阶段
测试阶段:涉及到的人员有运维,测试以及开发.运维人员按照开发人员的指示将代码部署到测试环境,测试环境要保证稳定,然后测试人员跑测试样例,对产品进行测试.标准是测试人员不仅要能够找出bug,确定bug优先级,还要负责追踪并推动bug解决.整个团队需要关注的是具体的线上发布时间.
发布线上: 是一个非常重要的事情.涉及到的人员有运维,开发团队,项目leader,测试等所有和该项目有关的人员.
四.敏捷开发的流程有哪些
流程定义不同的人员在不同的时间节点中要做的事情以及评判事情好坏的标准.
整个项目开发的关键点
(1).产品经理拿到需求,对需求进行分析,设计产品,提供需求PPT,将需求在禅道上拆解成为一个个story
(2).需求内部评审
(3).需求评审(关键点)
(4).讲解需求story
(5).研发团队设计方案并评审
(6).进行codereview
(7)性能测试
(8)demo
(9)发布测试
(10)发布线上
敏捷开发流程整体分为三部分:开发流程,发布流程,Bug修复流程,开发前产品设计流程提现不明显,但是也有需要注意的细节规范.
开发流程:比较细的规范有要拆解好task,预估总估时,每天开晨会(晨会内容:昨天做了什么,今天计划做什么,遇到的问题,项目是否延期),性能测试流程,Codereview流程,Demo流程
发布流程:包括发布测试和线上Bug修复流程
明天计划的事情:回家
遇到的问题:无
收获:修真院生涯告一段落,感谢各位师兄师姐的帮助。长风破浪会有时,直挂云帆济沧海,诸位就此别过
评论