分层架构

一个优秀的系统架构,最重要的是其“有序性”。分层架构方法是解决有序性最为广泛的架构方式。如网络ISO模型,在架构设计上称之为经典。应用层、表示层分别处理的业务是什么,两层之间的数据通过何种介质、接口进行连接,定义的十分清楚。但架构层次的过于细分,也会增加应用的复杂度,所以,在出现了一些反架构的行为,将一些层进行整合合并,形成了广泛使用的TCP/IP模型。

系统分层架构方案的步骤包括:

  1. 设计有限的N层;
  2. 定义为N+1层提供的服务,将子任务委托给N-1层;
  3. 可能需要N层其他模块的协作。

良好的分层实践包括:

  1. 将实体概念抽象为层。比如标准互联网接入程序中,按照信息流分层为用户、网络连接、路由及转发、程序逻辑处理、数据校验及存储。
  2. 确定抽象层数。层数过多导致不必要的开销,过少则结构不清晰。先尽可能的抽象,然后再决定将相邻的特定的合并为一层。
  3. 为层命名。可以为层取一个简单扼要的名字,是层划分合理性的重要证明。不要使用第0层,逻辑1层这样的通用字眼,而应该用该层提供的服务内容进行命名。
  4. 服务通讯规范。各层应该仅调用连接相邻的层,不能跨层调用。

关于服务层之间的通讯,在实际工作中常出现反模式。比如常见的系统架构图,会画成三横一纵的架构,纵轴常常为了实现管理功能、刻意的避免业务校验、消息中间件等,直接绕过业务横轴模块,与底层模块进行直接交互。

最为糟糕的设计下层再次对上层进行依赖,形成数据流打结式流动。该反模式一般是借用重用代码之名。

分层架构优势:

  1. 各层可复用;
  2. 抽象层功能单一,可标准化;
  3. 依赖关系明确;
  4. 层可更换

缺点:

  1. 单层异常可能导致整个系统奔溃;
  2. 逐层传递引发的效率问题;
  3. 不必要的工作;包括跨层之间调用需要进行的逐层代理、异步回调机制建设等。
  4. 实际层级拆分难度。层级粒度与耦合、内聚、可重用性、易修改性等多项指标相关,在拆分决策上难度颇大,在执行过程中也可能出现邻层之间再合并、再拆分的反复重构行为。

软件架构认知

在软件研发领域,软件专业的职业发展路劲一般是软件工程师、高级工程师、架构师、高级架构师。

在各个职业阶段,对软件知识体系及架构的认知具有较强的偏向性:

  1. 软件工程师(互联网方向)。架构就是了解MVC,能够对前端、后端,接口进行定义,对接。
  2. 高级工程师: 架构就是设计模式,将软件设计模式的思路,扩展到系统之间的调用。能够通过Adapter、Proxy等方式,封装外部系统的调用。
  3. 架构师: 架构就是中间件。应用系统、缓存、关系型数据库、消息中间件,通过合适的方式,将他们连接、组装在一起。
  4. 高级架构师: 架构就是抽象。网络iSO、TCP/IP是分层架构,数据流处理应该用管道架构更合适,MVC是分层架构,也是交互式系统。不良的企业系统架构也是一个架构,泥团架构。

后续在专栏将以高级架构师的视角,来对常用的抽象架构进行剖析,比如分层架构,可交互架构,分布式架构,看板架构等。

引导型会议-九问法

建立共同的、清晰的工作目标(20分钟)

如果你想建立一条船,别鼓动人们去收集木头、分配他们任务,而应该让他们去憧憬无边海洋另一端的美好。

— 安托万·德圣埃克絮佩里

通过非常简单的方式,就可以快速、清晰的挖掘个体和团队的工作核心目标。

五个基本结构要素

1. 开场引导

提问:“在进行_________(日常事务或挑战)工作时,你的主要工作任务是什么?”, “你可以列一下这些行为活动?”。然后追问:“你为什么觉得这件事情对你很重要?”继续问“为什么”,“为什么”,“为什么”,直问9次,或者直到参与者已经知道这个工作的最深层次的意义,而且不能再向下深挖了。

2. 会议组织形式和准备

  • 没有人数限制
  • 有椅子,方便大家面对面交流;桌子和其他设备不必须。

3. 会议参与方式

  • 每个人平等的参与

4. 分组方式

  • 2-4-All的方式,首先2个人,而后4个,而后全部。

5. 会议流程和时间

  • 每个人加入两人结对,进行5分钟的采访式交流。使用“在进行某某工作中,你的主要工作是什么?”问句开始。 询问人持续的使用“为什么这件事对你很重要”进行追问。5分钟后交换角色。 总计10分钟。
  • 每个组和另一个组分享他们的收获和观点。5分钟。
  • 在全员中,邀请分享收获:“我们的目标是如何影响到我们的下一步行动的?”

如果一个人活着有意义,他能够忍受任何的困难。

— Friedrich Nietzsche

意义

  • 发现团队中真正重要的事情
  • 为即将使用的实施工作建设基础共识
  • 不断浮现的观点,有助于激发组织动力
  • 产生一些小而清晰的的答案,加快制定下一步行动
  • 提供一个基本的规则,用于阶段性评估
  • 产生团队成员准入的关键标准

提示&技巧

  • 建立一个安全的、开放的交流空间,避免争吵;
  • 引入一些有意思的元素,比如在询问“为什么”时,使用儿童的萌萌哒语气;
  • 使用同理心继续追问。变换询问“为什么的方式”,比如“如果今天早上你一觉醒来,所有的假设都实现了,你觉得会发生什么不同的情况?”
  • 确认回答的问题是针对“你的重要性”,而不应是团队的重要。
  • 在不同团队中分享产生的答案和现象,他们之间的有什么共通的结论?
  • 如果提问者被卡住提问了,那么反问一下“是不是你产生什么共鸣?”
  • 对分享的个人案例,注意隐私保护;
  • 在团队中将“9问法”作为日常的目标探索的实践方法

变化

  • 结合使用“感恩采访”的方式,对话开始时使用“在你的成功经验中,你觉得最重要的东西是什么?为什么?为什么?”
  • 询问小组“为工作投入时间和金钱的根本理由”。通过清晰的个人目标、团队讨论可以快速地传播这些想法。将想法总结为更简短的、更有力的语言,如“我们在这里的意义是:”。
  • 在商业场景中,可以问“为什么客户愿意花钱买你的产品?”,“为什么领导层愿意你在他的国家(城市)运行这个商业模式”
  • 在熟练使用“9问法”之后,可以尝试10问或者更多问。
  • 好的目标永远不会结束。动态的邀请其他的成员参与,产生相互影响,加深对工作深层需求的理解。
  • 将回答写在便利贴上,进行编号并粘贴。通过倒金字塔的结构进行排序,广泛的问题放在最上面,细节的问题放在最下面。比较、总结。
  • 扩展询问:“在团队中什么是最重要的?”
  • 在网络会议中,通过聊天框中分享他们的想法。
  • 参考Purpose-To-PracticeGenerative RelationshipsWise CrowdsWhat, So What, Now What? 以及其他的非结构化会议方法。

应用举例

  • 启动合作研究组织时,为了建立一个令人信服的共同目标,The Quality Commons,由7个卫生系统为代表组成的美国健康服务研究协会,使用了九问法作为“从目标到实践”非结构化的第一个议程。
  • 作为课程的第一课,Troika Consulting or Wise Crowds都会使用九问法;
  • 阐明发布新产品的的目的;
  • 对“设计看板”中的每一个元素,询问:“为什么你觉得这个活动很重要”,“它给业务带来的什么贡献?”
  • 可以个人使用,深挖个人目标。

其他材料

原文Nine Whys

引导型会议方法:即兴沟通

Impromptu Networking: 快速的分享疑问和期望,相互认识、认知

你可以帮助小组将讨论焦点放在希望解决的问题上。在会议开始前进行使用,可以有效的调用与会人的会议积极性。通过20分钟的开放式问题的相互沟通,能够加强与会人之间的联系。每个人都可以就问题进行深化讨论、关注对方焦点、探索自身对问题的解决。

五个基本结构要素

1. 开场引导

提问:“在这次活动中,你希望得到什么样的挑战?”,“在这次交流会中,你可能够提供什么、你希望收货什么?”

2. 会议组织形式和准备

  • 完全开放的环境,无座椅等。人们可以很方便的寻找讨论伙伴,形成两两结对或讨论小组。

3. 会议参与方式

  • 每个人都同时参与,具有相同的讨论时间。不限制分组大小。
  • 每个人有平等的发言权利

4. 分组方式

  • 结对
  • 鼓励人们寻找陌生人或不同部门的讨论伙伴

5. 会议流程和时间

  • 每一轮讨论中,每个人使用两分钟来阐述自己的认识。每轮4-5分钟。
  • 总会议进行3轮。

意义

  • 通过开放问题和交流,使与会人,特别是新加入的成员,能对问题进行了解
  • 围绕问题进行深入交流
  • 可以对大家反复提及的问题,进行深入展开
  • 帮助害羞的人暖场
  • 鼓励个人对解决方案发表意见
  • 弱化权利,鼓励建立新关系
  • 有理不在言高

提示&技巧

  • 使用开放性、挑战性问题
  • 鼓励与会人根据自身工作或经验,对问题进行展开讨论
  • 在正式会议开始前,使用“即兴沟通”方法
  • 使用铃声(声音越二越好)来进行轮次切换
  • 使用开放性问题,但注意不要太泛
  • 积极参与
  • 进行三轮,不要只玩一、两轮就结束
  • 如果需要分享讨论结果,注意不要侵犯他人隐私或使对方难堪。

变化

  • 每轮话题采用不同的问题方式:“你希望解决什么问题?”,“在上次会议中,还存在哪些挑战?”,“哪些实践可以推进?”
  • 去会议室外进行讨论,增加会议自由度和活性
  • 试试“Social Network Webbing”(另一种结构化方法)
  • 邀请参与人定一个执行计划,参考非结构化会议-“先解决15%的问题”
  • 根据时间,可以加快进度
  • 尝试一下更具交互性的变种:“Liquid Courage ”。由Jamie提出,邀请每一个人,结对完成以下填空题: 在________情况下,如果他们对我_______,我不得不________; 当他们做________,我们应_________;

应用举例

  • 在上课的第一天,为增进学生的课堂关系,教授可以询问大家:“什么原因你选修了此课程?”, “你希望在课堂上学到什么?以及你对课程的见解?”
  • 在跨学科、跨职能领域,Tim将法官、律师、会计、社会工作者等不同的社会角色组织在一起,使用即兴沟通。参考故事:“Fixing a Broken Child Welfare System” 

原文: http://www.liberatingstructures.com/2-impromptu-networking/

引导型会议:1-2-4-ALL

所有的人员并行、同时讨论,提出提问、想法和建议。

1-2-4-ALL是一种很容易使用的会议方式,它可以激发与会人进行同时讨论,而且不限制会议成员的数量。1-2-4-ALL通过建立分组展开开放式讨论,将想法和解决方案快速的相互碰撞。最为重要的是,会议所产出的结论是由与会人自发的讨论而形成的,而不是由领导或主持人强加的决策,因此更容易获得团队的共识和执行。

1-2-4-All的微结构定义

1. 会议主题

引导师提出一个问题,可由团队针对这个问题进行背景阐述、寻找解决方法、探求深层次目的。比如:在这次竞争中,我们有哪些优势可以利用? 我们如何处理这次事件?有什么想法并采取行动?

2. 空间布局

  • 与会人数量不限
  • 分别以2人、4人进行分组时,应当便于同小组的人进行面对面交流
  • 桌椅随意
  • 纸、笔,与会人需记录意见和想法

3. 沟通方式

  • 每个人都参与,包括静写、分组讨论(一般不包括会议引导师)
  • 每个人有平等的发言权利

4. 分组方式

个人静写、然后两人结对,然后四人分组,最后全员

5. 会议流程

  • 静写。针对共同的会议主题,每个人写下自己的想法。1分钟。
  • 两人结对。两人对各自的意见进行相互分享、讨论,形成共识。 2分钟。
  • 四人分组。两个结对组成新的四人分组,继续扩展讨论,重点关注意见的相似点、不同点。4分钟。
  • 全员。 每个小组与全员分享一个最重要的想法,5分钟。 必要的情况可以重复一轮。
1-2-4-All微结构定义图

意义

  • 鼓励全员参与,探索问题
  • 避免过度控制引起的“一言堂”
  • 建立自由、安全的讨论空间,减少权力观点
  • 通过“静写”,引出更多元化的观点
  • 通过写下想法、沟通交流和碰撞流程,可以提高观点质量
  • 自然而然的形成团队共识

提示&技巧

  • 引导师应避免对团队讨论结果的偏向影响
  • 要求每个人在静写时写点东西
  • 使用“铃声”来进行会议流程转换
  • 准确的控制时间,必要的话可以进行新一轮,而不是延长时间
  • 在大会议中,将全员分享的组限定在3~4个
  • 在大会议中,引导师或记录员应收集没有公开分享的观点
  • 邀请团队分享与其他组的不同观点
  • 注意保护分组讨论的结论,不能仅仅关注于全员讨论
  • 不评价、将观点可视化、甚至鼓励偏执观点!
  • 如果遇到会议冷场,可切换另一种表达方式推进,如延展话题、勾略框架、通过一个故事进行引导。
  • 团队讨论时,保证一次只有唯一的一个团队在进行发言,其他团队应跟随发言团队进行对话。
  • 如果讨论不够深刻,可以发起第二轮。

变化

  • 当团队观点形成时,将观点写下来,进行可视化的展示
  • 在第二轮、第三轮时使用便利贴展示
  • 将想法与“故事板”、“改进原型”、“生态计划”进行分类
  • 考虑一下在4人讨论之后,增加一个8人讨论。学者Liz Rykert称其为“Octopus”(章鱼)

应用举例

  • 在演说或PPT演示结束后,当想获得更丰富的反馈时,用1-2-4-ALL方法代替“还有什么疑问”?
  • 管理层使用两轮1-2-4-ALL来代替无聊的周会
  • 在主题会议之后,自发的进行主题学习和讨论
  • 小组对问题进行原因定位并寻求创新的解决方案
  • 当会议讨论变得无趣或产生死结时
  • 代替领导传达的方式,传达人们思考和行动计划
  • 当团队严重依赖于领导时,试试用这个方法激发团队的自主思想

引导型会议 – 原则

规则简单才能释放创新能力
  • 简单: 只需要几分钟就能说明会议规则
  • 无需专家引导:初学者在体验后,可以快速学习到会议方法
  • 关注结果:产生高于期望的,具有创新力的会议结果
  • 快速循环:可以通过递进的多轮会议流程,达到更深入讨论的目的
  • 创新:会议过程可以激发与会人的创新思维及表达
  • 投入:每个人都要求参与到会议讨论中。
  • 可进行各种规模的会议:会议方式可全面适用于小型日常工作、大项目、战略会,可针对参与人规模进行会议方式的调整。
  • 有趣。可持续的激发自由的发言和反馈
  • 可自我推广的:在不需要专业培训的情况下,引导型会议也应易于被参与者学习和自我应用;
  • 高适用性:在遵循基本框架的前提下,会议规则进行适当变化,以适用于实际会议情况。

引导型会议 – 起点

我相信,大部分人并不喜欢“文山会海”的工作方式。传统会议的格式固定,一般是领导讲话,下属听训。这种固化的会议形式,很难挖掘员工的思考;作为与会人,也大多没有参与感,更不用提表达自身见解了。

传统会议表现为两种形式: 一类为宣讲会,通过PPT进行汇报,上传下达,在会议上进行针对性的问题回复;另一种是汇报会,会议结束后记录每个人的意见,甚至没有会议结论。传统会议时间经常很长,结论的过程也长,特别是在与会人众多的情况下,讨论的过程变得非常的无效率。

引导型会议是一种简单、有效、易于学习和实操的会议引导形式,可广泛适用于正式会议和非正式讨论。不论是在学校、医院、公司、非商业组织,各行业人员都可以通过学习引导型会议的引导方法,提高团队会议的创新能力,获得高效的会议结果。

立即加入”饭团”——高效会议(引导型会议)的互动,通过知识互动,熟练使用会议引导方法。

我们引入了“会议微结构”的概念来准确的定义引导型会议,即引导型会议包括5个关键要素:

  1. 会议主题。 会议讨论的目标;
  2. 空间布局。包括座位布置、会议材料,是否需要演示屏幕等;
  3. 会议参与方式。与会人参与会议的方式,如主持主讲、每人发言等。
  4. 分组方式。如何对与会人进行分组,按照会议流程分组结构会出现变化。
  5. 会议流程及时间安排。通过会议流程,引导与会人的思考并达到会议结果目标。

用会议微结构来描述汇报会,是这样的:

  1. 会议主题。 “听我说”,“今天汇报内容是某某”;
  2. 空间布局。准备座椅,与会人按照秩序坐好,看投影;
  3. 沟通方式。几乎100%的时间交给汇报人;
  4. 分组方式。一个讲述人,其他为与会听众;
  5. 会议流程及时间安排。汇报人主讲,最后加一个Q&A环节。

以1-2-4-ALL引导型会议为例,其微结构定义描述如下:

1-2-4-ALL会议微结构

本系列将持续的介绍33种引导型会议的微结构定义和实践方法,包括:

即兴沟通
快速的分享疑问和期望,相互认识、了解
Min SpecsDiscovery & Action dialogue
9问法
快速、清晰的挖掘团队及成员的核心工作目标
Wise CrowdsIntegrated ~ Autonomy
What, So What, Now What?Wicked QuestionsGenerative Ralationships
TRIZDrawing TogetherCritical Uncertainties
感恩采访
发现成功的源泉
Improv Prototyping
Purpose-To-Prictice
1-2-4-ALL
鼓励所有人同时对问题、想法、建议进行讨论
Agreement-Certainty MatrixEcocycle Planning
User Experience FishbowlShift & SharePanarchy
15% Solutions
发现并聚焦于工作成员的自由时间
Heard, Seen, RespectedWhat I need From You
25-To-10 Crowd SouringSocial Network WebbingCelebrity Interview
Troika CosultingDesign StroyBoardsHelping Heristics
Conversation CafeOpen SpaceSimple Ethnography

自我教练:做一个职业教练的计划

M(Me): 我想做一个职业教练,但是我还不知如何计划。

C(Coach):  先回顾一下,作为一名职业教练,需要什么样的技能的呢?
M: 教练、引导。 主要的实践包括 提问,倾听、反馈、肢体语言,重要的是在教练过程中察觉教练对象的变化,并根据变化,不断激发教练对象的潜能。 另外一项就是引导技能,在团队教练时,引导团队高效的表达观点、讨论、并形成一致的结论和可执行的行动。

C: 其他技能呢?
M: 不断需要训练的通用的能力吧。
 IQ, 通过模式学习,对对方的反应进行察觉,并选择自己需要使用的教练方法。
 EQ, 同理心、正能量、影响等等。
还有一个SQ的概念,灵商。一种寻找生命最终的目的和意义、拥有完美人生的基本愿望。所以,自身的心理承受能力一定要强大到一定等级,才能保持在教练过程中的正能量输出。

C:还有呢?
M: 不确定了,有一些琐碎的细节,应该可以通过再次阅读《高绩效教练》去补充一下知识和技能。不过重点是找到实践机会。

C: 很好。 那么对于上面说到的教练、引导、以及实践,有什么可行动的计划呢?
M: 平常运用。 一天至少进行一次有意识的教练行为。
一方面,包括自我教练,将自己以前拖延的,特别是重要但不紧急的任务目标,通过教练的手段进行一次思考,看看能不能去推动一下;
另一方面,找伙伴们聊聊,特别是在心里有一些动荡的伙伴,正好昨天有同学找我,聊聊他的创业想法。

C:还有呢?
M: 家庭、工作中有一些机会,但是我觉得我还不能很好的掌握。因为在这一个场景中,自己是带有一个很强的目标意愿的,很容易就会将自己所希望的目标通过强势的口吻强输出给对方。这一点,很头痛。

C: 那可以怎么改进呢?
M: 先处理关系吧。以前太强势了。 不过,现在我还不认为是一个缺点。强势的办事效率很高。 我需要学习如何在保证沟通效率的同时,进行更灵活的教练对话方式。
OK。 改进计划不是处理关系,而是改进自己的语言沟通方式。

C: 很好。关系的改进需要双方努力,需要察觉对方的反馈进行调整。所以能将计划聚焦到自己身上,更能保证计划能往前迈进。   改进计划还能更具体一些么? 计划应该准备什么?产生什么结果?
M: 开放式提问。我再去综合地理解、背诵一下这些开放式问题,加强对他们的印象。  
最重要的,就是强化、保持。可能这个教练愿景只能保持很短的一段时间,也可能因为其他的一些重要的事情,忘记了我要成为一个职业教练的任务。

C: 可以用什么来保持任务呢?想想方法。
M: 贴便签纸在明显的位置,将自我激励写在手机屏上,好像很多方面我以前都做过,但并没看到可持续的。很可能某天心情不好,就撕了。 或者想想,反正已经延误这么久了,就继续耽误着吧。好多事情就是这么被拖延的。。。
好吧, 我好像找到方法了。 在我的日记本上,每周都写上一句自我教练作为提醒。 在自我教练中,我会回来看这段对话的。

C:很好,做一个定期的提醒。 那行动之后,可以做一些什么行动,来进行持续改进呢?
M: 记录结果,记录对话,评估影响。可能评估影响并不精准,OK, 换句话说,是记录我能察觉的影响事实吧,还是记录。我可不喜欢去假设别人很喜欢我,更不乐意承认有人很讨厌我。通过记录,反思,强化自己的能力。  
我还得找到一个教练需要的能力雷达图,对记录的内容进行评分,持续的改进这些能力。

C:OK。 对行动总结一下吧。
M: 立即在日记本上的每一周周三,写上自我教练的任务。20周20多遍,不难,嗯哼。  
然后在教练知识中寻找一些具体的雷达图,多角度的,甚至包括单独考察倾听能力、反馈能力、提问能力的。   具体的改进模型我还不知道,先做出来之后再看吧。
下周自我教练之前,完成雷达图。我们再针对这个进行讨论。

C: 好的,看来这周的教练任务已经可以排满了,期待你的实践和改进。
M:谢谢。

部署Linux代理服务器

在DevOps自动初始化服务器时,需要自动安装Linux软件包、Pip依赖包等。但对于一些安全策略,从服务器直接访问外网时不被允许的。

所以,一般企业采用两种方式:

1. 下载依赖包,上传到服务器上后手动安装。 该方法非常冗余,而且依赖包可能会形成好几层依赖。依赖包的抓取和更新都是一件很耗时和无趣的事情;

2. 做一个软件库镜像。这种方式通过Docker的方式,比以前要容易的多了,软件上试行很简单,硬件上,准备百G左右的硬盘就好了。 还有,镜像更新需要你的网络足够好。

我偏好的方式,是建立一个代理。在一个有外网网络访问权限的机器上,安装代理服务器,其他不可访问外网的设备,通过代理服务器进行访问。可访问资源的策略通过代理服务器进行控制即可, 比如仅能访问yum源、pip源等。这种方式属于按需访问,简单轻便。

代理服务器比较知名的,是Squid,配置强大。另一个我最爱的小型简约的代理服务器是tinyproxy。

  1. 在可访问公网的机器上安装tinyproxy:
yum install tinyproxy

如果yum repo里面没有tinyproxy,可以去rpmfind寻找,并安装远程文件:

yum install https://rpmfind.net/linux/epel/7/x86_64/Packages/t/tinyproxy-1.8.3-2.el7.x86_64.rpm

2. 配置

vi /etc/tinyproxy/tinyproxy.conf
#Add below line, according your server ip configuration
Allow 172.16.0.0/12
Allow 192.168.0.0/12

3. 启动

service tinyproxy restart

4. 在其他机器上验证代理

ssh a-internal-server
export http_proxy=192.168.6.200:8888
curl http://www.luochunhui.com/

完成,就这么简单。

接下来在后文,我将通过配置,把这个Proxy,用到DevOps的自动化软件安装中去,解决yum、pip的安装问题。

给产品负责人进行干系人管理的10条建议

原文:10 Tips for Product Owners on Stakeholder Management

干系人管理

作为一个产品负责人,对干系人进行管理是其重要的一项工作职责。你需要了解干系人的关注点,你和你的产品能给他们带来什么样的需求,以及他们能如何帮助到你。干系人的种类很多,包括客户、用户、管理层、合作伙伴等等。作为产品负责人你需要对他们进行有效管理、并促使他们能够有效的协作,以便于最大化你的产品价值。本文将为产品负责人提供10条关于干系人管理的建议,文章最后还有在其他方面给予产品负责人的建议,希望你能喜欢。

管理干系人的10条建议

1.对干系人说”不”

作为产品负责人,你的工作是保证产品的价值最大化。因此,做好一小部分事情,远比将大量的事情做的虎头蛇尾要好的多。这不是一件易事!这意味着你将无法取悦所有人。举个例子,现在你拿起一款每天都会使用的产品,思考一下,它是不是有大量功能?还是说它只是一个简单功能的产品,而正是由于这一个简单功能,使得你每天都在使用它。

为了实现产品的价值最大化,作为产品负责人必须做出需求优先级的排序决定,也包括对一些需求说”不”。开始学习如何对干系人说”不”!有很多种说”不”的方法,事实上,我的同事为此专门写了一本书,对产品负责人有很好的帮助。你需要专门花一些时间去学习。

(译者注:原文并没有写这本书的书名,所以,译者只好猜测性的推荐两本:The Art Of Saying NO, SCRUM:用一半的时间做两倍的事

2.对干系人进行区别对待

一些产品负责人总有忙不完的工作,比如需求提炼会议,Sprint检查会,撰写产品故事。干系人管理也会占用产品负责人大量时间。如果你也是一个忙碌的产品负责人,先给你一个建议:对干系人进行区别对待。我遇到过很多产品负责人,他们花费了大量的时间去管理干系人,当然这并不是一件坏事。干系人管理是很重要的,而我说的是将时间花在重要的干系人身上,比如客户和产品的用户。并非所有的干系人都需要被同等对待,有些人对产品的关注度高,有些低;有些人有很大的决定权利,而有些人没有;有些人是你产品成败生死攸关的关联伙伴,有些人则只是看看热闹。所以,你必须对干系人进行分类,哪些是重要的,哪些不那么重要。你可以做一个干系人地图,这种方式可以让你更有效、更聪明地管理你的干系人。

3 停止对干系人进行个别管理

在上一个建议中,一些产品负责人不仅仅花费了大量时间在不重要的干系人身上,他们还为这些干系人进行单独汇报,导致时间完全不够用。在我之前的经历中,我也看到了一些高效的产品负责人,他们将干系人进行分组管理。比如,产品负责人会邀请一群用户参加定期的演示会议,在演示会议中,产品负责人或开发团队演示了新产品功能,有时也包括用户的使用培训。产品负责人会邀请另一群人作为重要干系人,来参与Sprint检查会,并共同讨论决议下一步的产品价值和需求。在产品提炼会议中,产品负责人则会邀请用户、客户或者其他人来描述他们需要的功能,进行头脑风暴,市场数据验证等。通过这些例子的展示,你可以发现,将关联的干系人集合到一个房间进行会议讨论,很节省你很多的时间。

4 客户也是干系人

在一些组织中,”客户”被理解为一类”可怕”的人群。我遇到过大量的产品负责人,他们在产品没有100%完成之前,拒绝将产品展示给客户。为此他们在没有任何产品反馈的情况下,为产品研发花费很长的时间。我真为这种开发方式感到羞愧。更好的方式,应该是让产品走出去,和客户一起协作。实际上很多用户都喜欢进行协作,提供建议,使得这个产品在未来能够更好地满足他们的需求。举个例子,在多年前,荷兰国际商业银行(ING Bank)发布了他们的第一个移动银行APP。在第一个版本中,只有一个查看银行账户信息的功能。除此以外,还有一个反馈按钮。这就是第一个版本的全部功能,并被发布给了银行的真实客户。版本发布后,银行获得了来自用户的成千上万条反馈信息,这些信息被整理后作为了下一个版本的产品需求导向。所以,别惧怕你的客户。将他们拉进来让如到产品的开发流程中,你会在他们身上得到惊喜的。

5 履行负责人的责任,逐渐获得授权

很多产品负责人新人并未获得多少授权。在新手阶段,他们常常做为一个记录员、代理人、或者商务代表。我们见过很多的产品负责人,他们不停的抱怨他们没有得到授权,没有权利进行决定,没有自由。但猜猜看,事实上,很多时候他们都能够做这些。

那么”履行责任人的责任,逐渐获得授权”到底是什么意思呢? 我们常教产品负责人持续地向干系人要求许可和授权,包括要求研发一个新需求,花一些时间进行问题的修复,解决一些技术债务。我并不是说将干系人牵扯进来有错,而是作为一个真正的企业家类型的产品负责人,你不可以只作为一个记录员,而应该成长为一个真正的产品负责人。这样,你才能向干系人表达你自己,表达你的产品,表达你的行为方式,并获得他们进一步的授权。所以,当你开始履行你负责人的身份,承担责任,制定计划,展示你自己对产品的喜爱和关注,你将进一步获得干系人的授权。换言之:”如果你自己不做计划,你将变成别人计划的一部分”。

Product Owner Maturity

6 如果你自己不做计划,你将变成别人计划的一部分

本句是第五个建议的结尾句,也是第六个建议。作为产品负责人,特别是企业家类型的产品负责人,你不会希望自己成为别人计划的一部分。你需要建立自己的计划,建立自己的产品并推进它成功。在组织进行”敏捷”改变时,我常常听到很多人说自己的计划不可能实现敏捷,所以,他们选择什么都不改变。在这种心态下,显然谈敏捷没有任何意义。当然,所有人都期望能在完全敏捷的环境建立计划,但实际情况是渐进的,和理想情况有很多的差别。

按照传统思维,当我们需要建立一个计划时,我们希望能够将进度保持与计划一致,防止偏差,我们将管理问题和风险,使计划回到正规。从敏捷的角度来看,计划是容许偏差的。计划只是对大方向的指示,甚至只是一个预测,用来指导我们在最近一段时间内的工作。不要把计划当成一个万能的”圣杯”,也不要当成刻在石头上的誓言,更不要把它当成是对未来的幻想。虽然计划是难以制定的,变化的,但是我们仍然需要一个计划。缺少计划就缺少行动,缺少下一步的工作目标。首先我们必须确定我们队未来的假设是清晰的,和团队取得一个一致的愿景期望,并共同建立战略、执行方向。其次,我们也需要接受变化的存在。虽然我们很难预测三个月之后的情况,但我们仍需要一个执行计划去渐进地接近它。

7 停止浪费时间在你不重要的干系人身上

这个建议在第二个建议时已经提到了,即队干系人进行区别对待。我见过很多的产品负责人花费了大部分时间在不重要的干系人身上,这些干系人往往拥有很少的权利,甚至对产品本身也没有多大兴趣。他们只是想介入一下,确保产品的开发过程在他们的”掌控”之中,也防止他们仅有的这点权利被取代或者消失。作为产品负责人,你可以给这些干系人发送一些工作简报、内部更新或其他什么东西,千万别花费大量时间在这些干系人身上。在每天的工作中,我发现很多的产品负责人做的并不好,所以,我将此项再次强调,希望对大家有用。

8 用心去理解干系人的诉求

对于产品负责人来说,这可能是一个全新的话题。很多的产品负责人对此从没主动关注过。在前文和提及过类似概念,即产品负责人需要对不同的干系人使用不同的沟通方式。你需要使用他们的思维方式进行沟通。比如,对一个运营部门的干系人,他不太关心产品的新特性,而更关心这些特性是否影响了产品的成单率,是否影响了净值收益、流程处理效率等。如果你用心去了解这些,了解他们真正关心的话题,你会发现在和他们沟通变得更加省心容易。

9 让敏捷教练帮忙,协助干系人管理

有效对干系人进行管理是一项具有挑战性的工作。特别是对”刁难性”的干系人。虽然您作为产品负责人对干系人管理负责,但这并不意味着您必须全部自己承担!您可以让您的敏捷教练为您提供支持!特别是当你面对开发过程、工作方式、使用敏捷管理的原因等问题质疑时,敏捷教练可以完全支持你。干系人(特别是(高级)管理人员)经常习惯于获得’控制权’。这对他们来说很重要,因为他们经常负责管理(部分)业务。控制很重要,在敏捷环境中也是如此!然而,敏捷环境对控制方式的理解有独特之处。我们经常使用更多的实践、工具和技术。例如,在敏捷环境中通常不再需要指导委员会。但是你不能只是移出他们,应当引入其他的方式来替换这个控制机制。因此,请求敏捷教练,为您和干系人提供支持,共同找到一种新的方式来保持控制,同时提高您的敏捷性!

10 不要成为干系人和开发团队的传话筒

在建议9里面,我们提到的”控制”。控制对于产品负责人来说也同样重要。我们也常看到一些产品负责人扮演着干系人和开发团队的传话筒,隔火墙的角色。开发团队和干系人、客户、用户进行直接沟通的行为是不被允许的。所有的沟通都必须通过产品负责人进行中转。这种方式不仅耗费了产品干系人大量的时间,同时缺乏效率和效果。

更高效的产品负责人会鼓励开发团队和干系人之间的直接沟通,这样开发团队可以更直接的获得产品的反馈,也能更清晰的明白用户即业务需求。除此之外,产品负责人也免除了当一只信鸽的传话角色,节省出大量的时间。

在鼓励沟通的情况下,信息的沟通途径会变得更多更复杂,甚至产生一些错误的信息。产品负责人开始担忧这些干扰信息。不要去试图完全的控制他们,那样又会使你成为传话筒的角色。你需要做的是和团队建立清晰的约定,让团队深刻地明白产品的愿景、目标和下一步计划。制定一个清晰的Sprint目标并专注于此。和团队建立约定,在哪些情况下, 开发团队可以自主决定需求细节的变更。假使出现了一些错误,我们也可以在回顾会上去发现并讨论这些错误,以便在未来进行改进。

以上10条,就是为产品负责人提供的管理干系人的建议。希望大家喜欢,并能帮助你成为一个更好的产品负责人。

最后,欢迎你继续阅读给产品负责人的其他方面的建议:

  1. Agile Product Management
  2. (Product) Vision
  3. Value
  4. Stakeholder Management
  5. Scrum Framework
  6. Product Backlog Management
  7. Release Planning

圣杯(Holy Grail):是在耶稣受难前的逾越节晚餐上,耶稣遣走加略人犹大后吩咐11个门徒喝下里面象征他的血的红葡萄酒,借此创立了受难纪念仪式。后来很多传说相信这个杯子具有某种神奇的能力,如果能找到这个圣杯而喝下其盛过的水就将返老还童、死而复生并且获得永生。 — 译者注