Belka Games的分析部门是如何构建的
Ев根尼·吉尔曼诺夫(Евгений Гильманов)—— Belka Games 分析部门负责人——在为 App2Top.ru 读者撰写的专栏中详细讲述了他是如何在公司内构建分析部门的。
引言
Ев根尼·吉尔曼诺夫
过去一年在 Belka Games 非常丰富多彩。尤其是在分析部门,我得以参与其构建。
在加入公司之前,我在浏览器游戏分析及网站和移动项目分析方面已有经验。Belka 以大量有趣和具有挑战性的任务吸引了我。
这些任务确实非常多。首先,我们需要整体改善分析系统。其次,在某些方面,我们需要重新构建分析系统。例如,我们希望系统能够提供关于功能改进的建议,从用户体验和指标两个角度。
现在任务仍然不少。我们有很多提升的空间。
初期阶段
1) 选择和实施分析系统
当我加入公司时,首先需要把所有人的分析需求统一到一个“分析窗口”。为此,我们需要选择并实施一个分析系统。
这个过程大约花了两个月的时间,值得单独写一篇长文。如果简而言之,市场上有很多解决方案,它们在功能和价格上都有各自的特点。
在选择分析系统的同时,我们的服务器开发人员将数据库从 MySQL 转移到 Greenplum——一个更现代、更适合处理大数据集的工具。
在选择系统时,了解产品和团队的需求至关重要。并不总是需要一个拥有大量功能的太空船。同时,也并非所有付费解决方案都是最好的。
最重要的是,必须明白:你选择的系统是要长期使用的。创建大量报告,然后将其“搬家”到另一个系统会非常困难和费力。
在为我选择分析系统时,我特别看重以下几点:
- 灵活配置数据的能力;
- 快速获得和可视化数据的能力;
- 能让大量同事访问数据的能力;
- 系统的高工作速度;
- 所有数据必须存储在我们的服务器上。
最终,在研究了超过 10 种解决方案后,我们项目团队选择了分析系统 re:dash。它通过一个简单的代码编辑器来获取查询的可视化,构建仪表板,并添加变量/过滤器。
我们用 HTML 代码将系统进行封装,创建了一个统一的“分析窗口”,这一点我们现在在公司中仍在使用。
Belka Games 的分析窗口(已编辑,不含准确数值)
Belka Games 的分析窗口(已编辑,不含准确数值)
您可以通过这些链接了解 Greenplum 和 re:dash 的更多信息。
2) 建立产品部门与分析部门之间的流程
分析不仅要准确,还要提供回复和洞察。最重要的是,分析必须是及时的。等待六个月后获得一个酷炫的洞察,当项目已经经历过多次变更并附加了新功能时,往往是无用的。
为了保证分析的及时性,必须培养团队在严格规定的期限内获取反馈的习惯。
例如,当我们改变了关卡设计后,需要测量变化对部分用户群体的效果。根据通过率和一系列其他内部指标,我们计算最小样本量和达到该样本量所需的天数(如果天数趋向于不切实际的巨大数值——实验将被重新考虑)。
在获得样本量后,测试结果会被分析,并决定是否将新的关卡设计推广至所有用户。
3) GIGO 和自检
在分析中有一个原则:garbage in — garbage out (GIGO)*。
* 根据维基百科,这一原则意味着:若输入数据不正确,则即使算法本身是正确的,也会得出错误的结果。在俄语文化中,该原则类似于“种什么,得什么”的说法。
因此,在工作的前几个月,确保数据的准确性和干净性至关重要。
以下是准备报告时自检的一些要点:
- 至少在初期,必须有多个分析系统作为数据源;
- 在分析时,需要详细研究功能,以便自己理解如何运作(在报告中加入对功能的简要描述也是一个好习惯);
- 分析师必须明白自己在数据库中写入了什么(对于数据库中新出现的实体,最好亲自检查日志);
- 提供的信息(图表、表格等)必须清晰直观:信息传达得越复杂,人们的信任度就越低。
***
当初期的主要任务(创建统一的“分析窗口”和调试部门间的流程)解决完后,内部开发团队意识到,分析是获取答案和洞察的优秀工具。因此,后续的请求出现了几何级数的增长。
扩展时机
1) 如何决定团队扩展
任务量巨大,这当然令人愉悦,但有一个细节。人力的能力是有限的:即使你是个工作狂,喜欢加班(我们不这样做,也不建议任何人这样),这个问题也无法解决。即使是小团队,在一流的水平上也很难维持多个项目的分析(尤其是像《计时员》和《Funky Bay – 农场与探险》这样的巨大项目)。
因此我们决定扩展团队。
在独联体市场找到合适的人才不容易,但可以做到。这里有几个对候选人的基本要求(我在这里故意不提哪些岗位描述中的通常内容):
- 相关背景(分析,但不一定是游戏开发领域的);
- 在处理数据时独立性和细致性;
- 积极主动。
自2019年初以来,我们开始寻找人选。我曾在 DataTalks 和 DevGamm 上介绍 Belka Games 的分析工作,我们也积极面试候选人。目前我们已经组建了完整的团队,但我们始终欢迎优秀人才,因为工作的量越来越多。
2) 远程办公
对团队来说,最困难但又必要的决定是采用远程办公。由于流程的特性,有时这实际上是不可能的。
在 Belka Games,我们对这种工作形式有过疑虑。远程工作、与团队联系不够紧密的分析师,可能会错过重要信息,或者在工作时缺乏足够的动力和生产力。缺点是显而易见的,但优点更胜于缺点:
- 分散的团队状态给雇主带来更大的灵活性;
- 克服对远程工作低效的恐惧后,可以更快更高效地扩展团队;
- 构建分散团队是我个人的挑战。
现在,60%的分析团队成员在其他城市远程工作,只有40%在明斯克的办公室里。
我认为远程团队成功工作的关键要素包括:
- 每个人对我们正在做的事情的高度关注(这种关注是从面试和试用期开始的,保持兴趣是公司和团队领导的责任);
- 与所有团队遵循相同的规则(我们使用 Asana 作为整个开发的连接工具,任何重要任务都不会被忽视);
- 细致的文档管理(所有分析笔记都在 Confluence 中记录,没有这些记录,很难跟上工作);
- 透明的团队动态(分析团队中的每个人都知道谁在做什么,有流程并加以遵守);
- 定期与负责人进行一对一的会议(在会议中讨论:进展情况、任何公司事宜、任务中的困难等)。
3) 适应
尽管团队分散,所有新成员均在明斯克经历适应期。通常这会持续一个月到一个半月。
新员工的头几周几乎是按小时安排的。之后,他会变得自由得多。
个人适应阶段非常重要。这是与团队的熟悉、与领导的密切工作,以及理解 Belka Games 对他的期望(我们希望在试用期内就能看到某些成果)。
适应期过后,团队能够信任这个人。这一点很重要。
流程的构建
1) 书写流程
系统在规则未明确前不会正常运作。
目前我们针对常规任务(更新和功能的分析)有模板。模板是为了避免出现分析文档在格式和严谨性方面的混乱。
我们制定了所有流程的文档。这意味着,对何时、何事、如何进行分析都有记录。例如,针对所有功能/更新都有独立的仪表板,以监控必要指标。
Belka Games 的分析窗口(已编辑,不含准确数值)
我认为分析师设定任务的过程非常重要。在这一过程未被书面化之前,有时很难开始任务,流程经常拖延,需与客户澄清详情/时间/期望结果,这影响了速度甚至质量。
为制定此流程,我们举行了几次内部会议,向分析团队提问。分析师作出了回应,分享了他们更易于消化“计算和报告”请求的方法。
2) 时刻把握脉络
团队每个月都有公开的计划,标明每项任务的完成百分比。在这里可以追踪团队的动态。
每周我们根据计划和产品团队的需求形成新的冲刺。
每天我们在一个封闭的 Slack 频道中报告昨天完成的工作和今天的计划。
从外部来看,这可能被视为过度的微观管理。然而,早上了解昨天做了什么以及今天要做什么是非常有用的。此外,总是有机会与同事共享。这是一种很好的仪式,有助于大脑在早晨清醒。
3) 制定简练的回答
对产品团队请求的回答需要尽可能准确和快速。仅仅按现状给出答案是不够的:需要提出增强/平衡功能的建议,指出更新中哪些方面表现良好,哪些不佳。
在这里我想稍微详细说明一下。分析师(因某种原因)往往有一个特点。我不会说这是好是坏,但我们非常喜欢在一个人面前“倾倒”十几张图表和表格,并用术语装饰。这种方法甚至让准备充分的读者也感到不适,更别提忙碌的经理了。分析变成了没人在乎的多页报告。
详细的分析是必要的,我们并没有放弃,但设立了“报告规则”。这一规则的核心在于,分析师应在一到三个句子中阐明功能测试的结果,并在同样的限制内提出改进建议。
示例:
结论:
- 保持功能上线;
- 该变化使第七天的留存率整体提升了 20%;
- 该变化对 iOS 用户的影响大于 Android 用户(增长 25% 对比 15%)。
建议:
- 更深入研究在各个平台上效果的差异;
- 功能有潜力,可以通过平衡的调整进一步发展。
潜在的制作人获得了有关实施功能的几个结论和待“讨论”的建议,以及指向包含图表、表格和大量文本的完整报告的链接。
4) 在各个阶段参与功能构思
分析师经常会彼此抱怨,说开发人员会找他们,有时会说:“功能一个月前上线了——做个分析。”或者“我们的指标下降了,帮我调查一下发生了什么。”
我从 Belka Games 开始工作起就希望避免这种情况。事后了解这些事情通常很困难。在此阶段所需的数据可能已经不存在。因此,我们的分析师在新功能的整个实现阶段都有参与。
- 设计和游戏设计。设计新的日志(如有必要),描述我们将如何分析内容。重要的是在发布前对此进行详细说明,并提前考虑功能可能影响的指标。这将有助于更精确地预测可能需要的日志类别,以及评估功能的时间。
- 日志产生。此处的工作是确保数据传输到数据库的方式和形式。
- A/B 测试。决定是否需要进行测试,计算所需的样本量,并给出结果——这是分析师的专属任务。
- 一旦功能上线,分析师会在当天或次日创建针对该功能的 仪表板,这样游戏设计师、制作人和所有相关同事都能够理解游戏的状况以及该功能对平衡的影响。
- 如果是版本更新,则需为新旧用户群体分别准备主要指标的仪表板。
5) 监测指标
我们单独监控版本和功能对各个用户群体的影响,它们对老玩家和新玩家的影响。
- 对于新手,我们首先监视留存率(Retention)和 LTV。
- 对于老玩家,我们监控流失率(Churn rate)以及 ARPPU/ARPU。
如果是新功能的实施,我们会查看与其相关的指标以及可能受到影响的其他指标。
例如,我们正在调整《计时员》中个人目标的余额。在这里,有哪些有趣的内容可以分析呢?
宏观指标:
- 参与感(游戏时长、会话次数);
- 收入。
自定义指标:
- 达到目标的人数比例如何变化?
- 参与此功能的玩家在该功能运行期间是否花费了更多时间在游戏中?
- 该功能对游戏中获得/支出的虚拟货币的平衡影响如何?
- 该功能将如何与其他游戏内事件协同工作?
6) 为分析师引入成就系统
我们最近引入了一项新举措——成就系统。每月末,分析师选择两到五个已完成的任务,并按以下方式阐述:
- 任务描述;
- 简短结论;
- 后续行动;
- 对公司的收益。
听起来没什么新鲜的,普通的报告。然而,当你完成分析任务并着眼于“后续行动”和“收益”这两项时,对如何向团队呈现信息和对自己要求的结果会有完全不同的看法。单纯“做完”工作是行不通的。
7) 参与游戏拆解
在许多公司,游戏拆解已成为常规流程。通常,这项工作由制作人和游戏设计师负责。在我们这里,这两者都参与其中,但并非只有他们。
我支持分析师同样积极参与该过程。原因很简单。最好的创意往往在用户体验、数字和对游戏的理解之间碰撞而产生。
未来展望
达到理想的系统和理想的分析部门,从理论上讲是不可能的。新挑战不断出现,同时也会带来失误、突破和重大创意。
但我们可以不断追求理想。为了实现这一目标,我认为保持系统的正常运转至关重要。做到这一点需要:
- 明确且有效的流程;
- 对游戏的热爱和对行业的兴趣(在游戏开发领域,不能只是来工作完成任务);
- 与产品团队、市场营销和商业开发的密切合作。
相关主题: