引言
好多年前,跟一位老前辈请教一个问题:您觉得管理中最难解决的问题是什么?他毫不犹豫的说:统一目标,上下同心。
这句来自前辈的充满沧桑的经验之言,仿佛昨日箴言犹在耳边。这么些年过去了,事实证明前辈是对的,因为,我也成了被这个问题饱受困扰的沧桑一员。
带着问题和学习的态度参加了OKR的培训,阅读了《这就是OKR》,放空自己所有的管理知识和经验,对OKR来一次旅行。
OKR为什么会发挥威力
从狭义上讲,OKR聚焦管理中的目标管理,从四个方面驱动整个组织以及个人向目标迈进
-
统一目标
OKR是统一目标的工具。
一个公司通常会制定10-30年的宏大愿景,一个3-5年的奔向愿景的战略,以及围绕战略展开的年度OKR。
OKR的制定过程是自顶向下,公司级的OKR由高管层协商制定,形成整个组织的大目标,各个部门或子组织向公司级OKR看齐,结合自己团队的职能制定适合团队OKR,最后到个人,个人按角色或者岗位来定目标,他思考的问题是做为这样一种角色,我达到什么样的目标才能支撑团队的目标。
至此,一个组织级的OKR从上到下得到传达,上下统一目标拧成一股绳。
-
自我驱动
驱动来源于什么?来源于需求。
马斯洛的五层需求模型被大众广为知晓,简而言之,第一层是生理需求,第二层是安全感,第三层是归属感,第四层是被尊重,第五层是自我实现。
KPI是假设人性向恶,认为大部分人的需求层次处于五层需求的中下,人人都是来追求奖励的,没有奖励是不会好好工作的。因此,它会自顶向下制定指标,将硬生生的指标分解摊派到个人。相信重赏之下必有勇夫,可是人性又是不可测试的,重赏之后还必须得有重重赏才能持续刺激人的主动性。
随着经济的发展、社会进步,人的需求层次在不断提升,特别是处于信息社会的当今时代,人们更加注重被爱、被尊重、自我实现,因此,自我驱动是这个时代驱动力的主要特征。
和KPI不同,OKR崇尚人性向善,选择相信人,相信大部分人的自我驱动能力。但并不是说OKR就相信每个人都处于很高的需求层次,而是相信每个人都有向目标的自驱能力,只是在某一个阶段其自我驱动的层次不一样而已。
那么OKR选择相信人自驱能力,是如何体现出来的呢?
心理学研究表明,每个人生来都不乐意被安排。OKR自上而下自我制定,个人制定目标时会评估自我能力以及对齐大目标,这里强调的就是自我驱动。也许有人会反问,自我制定还不是要在大目标范围内制定?没错,但是,不符合大目标的小目标有什么意义呢?
另外,很重要的一点,OKR制定出来后是要最大化公开化,这里就是利用了马斯洛第四层、第五层需求激发的自我驱动能力。
长此以往,OKR留下的人都将是好好做事的人,而KPI留下来的人是想好好赚钱的人。
-
激发潜力
每个人都是有潜力的。
这里想到上学时物理老师嘲讽不好好学习的学生的一句调侃:有些人的潜力是巨大的!只是,挖掘,十分困难!
好吧,每个人都是有潜力的,只是挖掘难度不一样。
OKR的制定强调目标一定要定的稍稍高一点,这样的目标才会让人兴奋,为了达成目标,人会利用所有资源去完成,推动人自我挖掘潜力。
另外,心理学研究表明人都有想做伟大的事情的冲动,且在OKR的最大公开化下,人的潜力将得到更大的激发。
-
锁定目标
人总会被各种事情所干扰,别人的一句话,外面发生的一件事就会引起你的情绪波动、精力分散,当注意力被牵制,走着走着也许就忘记了自己的目标。
借用一个故事,这个故事太有趣了。一个小孩在窗外踢易拉罐,踢出的噪音骚扰邻居,有人劝他不要踢了,但是顽皮的小孩不听劝。一个老人出来了,说:你踢的很好听,我奖励你一元钱明天继续过来踢好吗?小孩很高兴,第二天又来踢了,老人说:你踢的很好听,但是我已经没那么多钱了,我只有五毛钱,你明天还来踢好吗?小孩想反正也能挣点,虽然少了点。第三天继续来踢已经没多大劲了,老人说:我已经没钱了,你明天还来踢好吗,小孩说:不给钱谁踢啊!
这个故事我都听笑了,这个可不是我们自己生活的写照吗?
OKR并不是不注重过程,目标制定出来后是要跟踪、复盘的,我们要反思我们做的事情和目标究竟有没有关系,我们的策略、方法是否是最优的,我们将如何改进。
OKR与软件过程
从广义上讲,OKR也很注重过程管理,在目标制定出来后下一步是要制定的是,为了达到目标你的实现策略是什么,你的计划是什么,后期还要定期跟踪、复盘。因此,其和过程管理并不冲突。
我们应该思考的是,我们身处软件生产行业,如何将软件生产过程与OKR因地制宜的紧密结合起来,共同发挥威力。毕竟,OKR最终反映到软件生成环节还是以研发任务这种过程来执行的。
软件生产过程本身是一个很复杂的工程,这一特有领域问题要在软件工程的理论指导下进行因地制宜的落地。这里涉及两方面的支撑,一是适合组织的标准的软件研发流程,二是支撑软件研发流程的自动化工具或系统。两者合起来在一些公司通常称之为软件研发过程管理平台,笔者很荣幸在第一家老东家那里和一个伟大的团队创造过这样的平台。
软件研发过程通常会涵盖整个软件生命周期,包括立项、需求、设计、开发、测试、发版、维护等,强大的软件研发过程管理平台会覆盖整个软件生命周期,比如IBM过程管理平台涉及到了软件生产过程的方方面面,但是,经验来看,大一统的软件过程管理平台很难在企业中落地,因为这些方案往往是业界统一标准,具有很重的侵入性,需要因地制宜找到自己软件研发流程的痛点采取不同的策略。
一个合适的软件研发过程管理平台至少要将公司的产品、项目管理起来,以产品、项目为主线,进行需求管理,任务管理,版本管理。在此基础上,可以考虑延展解决软件设计、自动化测试等方面的问题。
需求管理的目标是通过一定机制,对需求进行合理性考量,对其归宿产品、版本、范围、期限、以及资源进行评估,形成标准的可控入口。需求正式接纳将自动转化为任务,进入任务管理范畴。
任务管理是以任务为驱动,规范软件工程师的研发行为,并自动管理代码分支,提高软件生产效率以及降低人为错误。就此需求和任务形成一对多的关系,便于在线跟踪当前需求进度。
任务的提交需要验证,验证分为单元测试、code review、集成测试。原则上,单元测试是软件工程师提交代码前必须要做的事情,code review是任务管理的必须执行事务,只有在代码确认无误后才能将代码合并到测试分支,code review后任务进入集成测试环节,测试人员通过平台的自动化构建功能构建测试环境进行测试。只有经过测试人员测试通过的任务才会合并入正式版本。这样,产品的版本得到有效控制,并可随时根据需求随时发版。
OKR最终演变为软件研发流程的需求、任务,并最终在版本中得到体现。
结语
最后,希望我们用好OKR,希望我们有一个一流的软件研发过程管理平台。
浅显言论,接受批评。