敏捷项目流程指引Whatisproject?BenefitScopeTimeCostTraditionalWaterfallmodel项目阶段概念阶段需求阶段开发实现功能测试系统测试内部体验灰度发布正式外发敏捷迭代ResponsibilityRole称谓输入输出(交付)产品经理PDM(ProductManger)1.用户反馈2.产品规划3.运营需求4.老板想法1.PRD,SRS需求文档2.TAPD里的需求单项目经理PM(ProjectManager)1.需求优先级列表2.工作量评估3.资源1.项目计划2.项目跟踪执行情况汇报开发DE(DeveloperEngineer)只“执行”项目经理计划内的任务安排1.软件交付2.文档手册测试TE(TestEngineer)1.产品需求2.提交测试的版本1.测试环境维护2.测试用例3.测试报告运营OP(OperationEngineer)运维需求1.现网监控2.问题排查3.业务部署4.运维手册UIHCI1.产品需求2.开发需求1.交互2.效果图、切图3.版本体验报告TimeWastedonJunk64%offunctionalityrarelyused项目过程•一群人,为了共同的目标,协同完成一些事情。这个需求怎么实现?新版本什么时候提交测试?今天要不要加班?用户喜欢这个新功能么?•好的项目过程,能让大家工作得更顺利、心情更愉快、加班更少。用户可用的软件团队用户价值——项目的目标GoalAgenda•工作角色•项目计划•信息透明•定期总结和回顾敏捷项目的关键可用的软件信息的透明化清晰的迭代目标拥抱变化发现并解决问题一、项目成员的工作角色•ProductOwner•ScrumMaster•Team角色ProductOwner•制定产品特性和发布的内容•设定产品优先级(根据市场价值)•敦促和保证最有价值的任务被排入迭代•每次迭代后Review特性优先级•接受或者拒绝交付成果ScrumMaster•做为团队和外部的接口•扫清项目障碍,保证团队的高效工作•保证流程的执行•屏蔽外界对团队成员的干扰•保证开发过程按计划进行,组织各会议•主导项目过程的改进TheTeam•5~9人构成,成员固定•多职能团队•高度的自我管理能力•交付产品,汇报进度•协助改进项目流程二、项目计划•项目的目标是什么?Milestone是什么?•今天我该做什么?本周我该做什么?本月我要做的还有什么?需求列表(产品backlog)发布计划迭代计划TimeBoxTimeBox确定迭代周期确定一个迭代内的关键工作项固定关键工作项的发生时间培养团队的工作节奏感产品backlog根据市场价值排序的需求列表Productowner维护任何人都可提需求,PO同意就加入列表包扩产品需求和技术需求在不影响当前迭代的情况下,需求可增删改迭代计划任务分解——做到能较准确度量位置团队成员维护只有团队内成员可改PO不能修改迭代范围三、信息透明化:效率的保证这个bug我查了两天了,还是没搞定。什么情况?具体是xxxxx。以前遇到过类似的问题,这样这样就应该可以解决注意事项•让别人知道你在干什么•留意别人在干什么•遇到问题及时沟通每日晨会昨天做了什么1今天计划做什么2有什么困难3输出障碍列表4障碍列表•SM维护•影响项目前进的工作或者风险•每日晨会后更新这个版本的进度怎样?能按时提交吗?总体进度比预计的慢,可能要砍掉一两个小需求那要尽快确定,具体情况是怎样?现在看来需要砍掉2个人日的工作量,具体情况是……进度白板四、总结和回顾:持续改进这个迭代按计划完成了么?质量怎样?这个需求实现了,但是和大家的预期不一样?为什么迭代完成了,我一点都不开心?某个bug很经典,要不要总结一下?迭代评审会•主持:SM•参与人:所有相关人•时长:0.5-1小时•演示迭代完成的需求•发生时间:迭代完成•PO决定是否接受迭代交付迭代回顾会•Host:SM•参与人:团队成员•时长:1-2小时•回顾项目运作的好与不足,讨论改进•发生时间:每次迭代后•方式:发散性讨论•输出:SM发出会议总结邮件Well&Less发现问题、分析问题、解决问题•对于发现的问题,必须形成可行的ActionItem,并且定期review执行效果。不要忽视任何小的改进长期积累能节省大量的工作量回顾:敏捷项目的关键可用的软件信息的透明化清晰的迭代目标拥抱变化发现并解决问题ScrumScrum•ProductOwner•ScrumMaster•Team角色•迭代计划•迭代回顾•每日晨会会议•产品backlog•迭代计划•障碍列表交付