敏捷开发中的PO即Product Owner,产品或业务负责人,即熟悉该产品全部业务相关的逻辑、流程、设置等方面事宜的人员,通常可由产品经理担任,也可由熟悉业务的开发人员担任。若是敏捷团队是在一块儿办公的,建议由产品经理担任,自己产品经理已是全部业务的接口人,熟悉业务是其本职工做;若是产品经理和开发、测试团队是两地办公的,如设立的研发中心、外包服务等形式的,建议在开发团队内指定一我的来担任PO,这样产品经理在第一次PRD全体review以后,只需跟这个PO讲解清楚产品逻辑,后续开发和测试当中遇到的问题,均可以咨询PO来获得解决,PO不肯定的能够联系产品经理确认,这样能够减小一部分的沟通成本。工具
敏捷开发中的SM即Scrum Master,字面意思是敏捷专家或者敏捷大师,即熟悉敏捷开发模式及敏捷实施流程的人员,通常可由敏捷团队当中的开发负责人担任,部分能力很强且懂技术的产品经理也可担任这个角色,因涉及到工做量评估和分派等工做,最好都是由技术能力较强的人员担任。单元测试
Product Owner(PO)学习
Product Owner角色定义测试
肯定产品的方向和愿景,定义产品发布的内容、优先级及交付时间,为产品ROI(profitability of product)负责。 是维护产品需求清单( product backlog )的人,表明利益相关者的利益。.net
Product Owner工做职责设计
负责最大化产品以及开发团队工做的价值。主要职责以下:blog
一、肯定产品的功能;接口
二、决定发布的日期和发布内容;资源
三、为产品的ROI负责;开发
四、根据市场价值肯定功能优先级;
五、每一个sprint中,根据须要调整功能和优先级(每一个sprint开始前调整);
六、接受或拒绝开发团队的工做成果;
七、参与Scrum Planning Meetings(Sprint计划会议),Sprint Review Meeting(Sprint评审会)和 Sprint Retrospective Meeting(Sprint回顾会)
Product Owner在团队中的做用
在junior团队中:主要的需求来源,我的肯定需求价值和优先级
在intermediate团队中:多角度的收集需求,和团队成员共同肯定需求的价值和优先级
在Senior团队中:和团队成员共同提出和收集需求,共同对产品负责
这里的团队分级主要是指团队的敏捷成熟度,即产品团队实施敏捷开发模式后,对敏捷开发模式的适应程度、接受程度和学习程度。后面会专门介绍团队的评估标准。
一句话总结PO这个角色就是:告诉产品团队要作什么,作功能的前后顺序是怎样的,需求有变更时该如何处理。
Scrum Master(SM)
Scrum Master角色定义
是团队的导师和组织者,与Product Owner紧密合做,及时为团队成员提供帮助。促使team按照scrum方式运行,为Scrum过程负责的人。
Scrum Master并不是团队的领导(由于团队是自我组织的),而是一个负责屏蔽外界对开发团队干扰的角色。 Scrum Master是规则的执行者,他是Scrum团队中的服务型领导。
Scrum Master工做职责
确保scrum被理解和正确使用并使得Scrum的收益最大化。主要职责以下:
一、保证团队资源合理利用;
二、保证各个角色及职责良好协做;
三、解决团队开发中的障碍;
四、做为团队和团队外部的接口,协调解决沟通中的问题;
五、保证开发过程按计划进行,组织Scrum Planning Meetings(Sprint计划会议), Daily Stand-up Meeting(每日站会), Sprint Review Meeting(Sprint评审会)和 Sprint Retrospective Meeting(Sprint回顾会)。
Scrum Master在团队中的做用
在junior团队中:主导和控制
在intermediate团队中:引导和教导
在Senior团队中:辅导和协助
一句话总结SM这个角色就是:教整个团队怎么作,如何估时,跟进天天进度,风险控制,按期总结,计划排定。
---------------------
做者:SmartBrain
来源:CSDN
原文:https://blog.csdn.net/Peter_Changyb/article/details/90319032
版权声明:本文为博主原创文章,转载请附上博文连接!
在Scrum敏捷开发中有三种主要的角色:
Product Owner(产品负责人,简称"PO");
Scrum Master(敏捷教练);
Team(团队)。
其中,Scrum Master是其重要的角色之一。那么今天咱们就来探讨一下如何作一个合格的Scrum Master。
Scrum Master在许多的项目开发中被视为项目经理,这实际上是个误区。同时我也常常看到有人主张将Scrum Master与项目经理彻底区分,对于此我也不太赞成。在我看来Scrum Master虽然并不是项目经理,可是仍然肩负着不少项目经理的职能。那么Scrum Master的职责到底是什么呢?该怎样作才能成为一名合格的Scrum Master呢?如下六项,供您参考。若有不妥之处,欢迎探讨;)
这是Scrum Master最核心的职责,也是Scrum Master区别于项目经理的最显著的特征。Scrum Master须要维护每一个sprint的流程,确保每一个sprint可以顺利的实施以及完成。
首先,Scrum Master负责主持召开sprint期间的每个会议,包括sprint plan meeting, daily scrum meeting, sprint grooming meeting,sprint review meeting以及sprint retrospective meeting。
另外,Scrum Master还须要帮助PO创建product backlog与sprint backlog,并确立其中每一个story的优先级。
最后,Scrum Master还须要帮助Team清除在开发的过程当中遇到的障碍。Scrum Master应该有一个block list用来记录Team在开发中遇到的问题障碍,由Scrum Master本身进行管理并最终使得列表中的每一问题获得及时处理。
Scrum Master应该最大限度的保护Team,以确保Team不会被外界,尤为是PO干扰。那么Scrum Master该如何保护团队呢?Team在什么状况下须要保护呢?
在每一个sprint的初期制定计划的时候,Scrum Master应合理的根据Team的工做能力以及过往经验,承诺工做量。不要盲目乐观的给PO承诺过量的工做。我就遇到过有的Scrum Master多是对于Team的能力估计不足,也多是但愿经过承诺更过的工做获取老板的芳心,承诺了太多的工做,结果致使Team在sprint的后期连续加班,导致Team的效率严重下降。同时因为时间的匆忙,急于交付,致使了项目的质量很低,最终造成了恶性循环。一个好的Scrum Master在这个时候是应该要懂得如何与PO“周旋”,获取合理的工做量。这里的“周旋”并不是消极怠工,故意减小Team的工做量,这实际上是经过安排合理的工做量来使团队达到最大的工做效率,同时不会伤害Team的积极能动性。这是一个良性的循环。
咱们都知道,需求的变动对于每个开发人员来讲都是噩梦,而敏捷诞生的其中的一个很重要的缘由就是为了解决这一问题,让开发者拥抱变化。然而在咱们采用敏捷开发的项目中,常常能够遇到Product Owner越过Scrum Master,直接找到Team, 对他们指手画脚,发号施令。这个时候,Scrum Master应该像“猛兽”同样将PO“吼开”,以免Team受到“伤害”。需求改变能够,可是不该该在sprint的过程当中干扰Team, 能够在daily scrum meeting或者sprint plan meeting上提出,共商解决方案。我以为Scrum Master对Team在不少时候都应该有一种“护犊子”的精神。确保Team神圣不可侵犯。
不少时候Scrum Master起到了一种“承上启下”的做用。一头面对的PO以及本身的老板,另外一头面对的是Team。很容易令人感受Scrum Master仿佛在夹缝中求生存,容易两边都不讨好。所以,沟通艺术的重要性不言而喻。如何说服PO,使得老板满意,而且让Team开心,这是一门学问。对于此,下面几点能够做为参考:
1. 面向老板:
应按期及时的通报项目的状态与进展,不要等到老板亲自来问,能够经过表格以电子邮件的方式发送。主要汇报进展状态,避免过于细节的内容;
遇到问题,应及时上报,使得问题在出现时就能获得重视,并被及时解决。若是等到截止时间才发布坏消息,那么就给了你的老板对你进行微观管理的机会。
2. 面向Team:
最重要的一点,应以身做则,态度端正;
充分了解Team中每一个成员的能力情况,防止出现工做量盲目承诺的问题;
经过daily scrum meeting让Team中每一个人都能明确了解最新的进展与形势;
遇到问题,应对事不对人。
此刻开始,Scrum Master更像是一个项目经理。不管是质量,进度仍是团队建设都更像是项目经理的职责。对于Team来说,这时的Scrum Master再也不是那个“保护”咱们的人,而变成了那个“收保护费”的大佬。然而,在实际项目中,Scrum Master确实要承担这些职责,只不过有些已经融入到平常的scrum流程中去了。
关于质量的管理,我想其重要性不言而喻。质量是决定了产品的命运。那么如何把关质量了。在敏捷实践中,以下的经验可供参考:
1)欲速则不达。不该过于强调速度,应保持合理的开发节奏,才会使得产品质量具备必定的保障。Scrum流程在每一个sprint应统一完整,使得Team造成习惯,最终达到良好的开发节奏。
2)制定coding style,并坚持代码审查。代码的规范很是重要,好的代码能够提升总体团队的开发与沟通的效率。好的代码会说话。代码审查能够结对完成,只有审查经过,才能够提交代码。能够经过建立pull request来进行代码的审查,经过以后,再merge到代码库中去。
3)写单元测试。单元测试的重要性我想你们都明白,只是不少人以为写起来痛苦,麻烦,占用开发时间。有了单元测试,你的代码才是经得起考验的代码。
4)冒烟测试。在天天下班以前,中止push代码,而后进行冒烟测试。冒烟测试成功以后,才会下班回家。这是一种很好的方法,它保证了天天功能都是可用的,从而确保了质量。
5)自动化测试。它的好处,不用多说,谁用谁知道:)
6)提前集成,以便频繁获取反馈。这样的好处在于咱们能够及时的获得用户的需求反馈,进而可以及早修正。
7)最后,我要强调一句:不要加班,不要加班,不要加班。
进度管理是Scrum Master的又一项项目经理职责。对于scrum中进度的监控,咱们有不少的方法,也很是有效。
先说工具,敏捷开发中,比较传统的跟踪进度,同时使用也很是普遍的一种方式是Story Board(故事版)。这种方式简单直观,很是有效。即便如今已经涌现了不少很是优秀的电子管理工具,许多团队仍然对它情有独钟。近些年一些电子的跟踪进度的srcum工具出现了不少。比较有名的像是jira. 它的使用也很是的简单直观,并且功能很是丰富强大,强烈推荐你们使用。
另外,咱们能够经过daily scrum meeting获取到Team天天的工做进展。此时咱们能够根据进展进行一些必要的调整。
团队建设是项目开发中绝对不容忽视的一环。团队凝聚力如何,直接影响了整个团队的战斗力。所以,建设好团队,是每一个Scrum Master的重要使命。
那么如何有效的进行团队建设呢?
1)放权。敏捷开发的其中的一个重要的特征就是团队自组织。团队自组织的优点就在于,经过放权给团队,让它们自主的思考,设计开发,不对其干预,从而使得团队中每一个人具备成就感,进而提升整个团队的积极能动性。
2)打造学习型团队。一个方法就是经过团队内部知识按期分享的方式,使得每一个人都能能够学到新的知识,从而逐步使得团队成长。好比每周五的下午4点,能够利用一小时的时间,让团队的成员举办知识讲座。经过这种形式,你们的积极性会变的很高。能够约定分享的内容并不是必定是技术方面的,也能够是生活娱乐等,只要你们感兴趣就好。这样作的好处在于不只提升了团队的技术能力,也使得团队之间可以更轻松愉快的交流,从而提高团队的凝聚力,战斗力。
3)最后,提升团队最有效的一个方法,那就是一个字:吃;)这是拉拢吃货们的大好时机。固然这个须要经费,不过方法总会有的,你懂的;)
做者:Ifdef_Max连接:https://www.jianshu.com/p/72a5c42cec8b