Apollo 技术文档Apollo 技术文档
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
指南
  • 架构概述
  • BigWorld 架构深度解析
  • BigWorld 进程架构与玩家生命周期
  • AOI九宫格系统详解
  • AOI广播与消息去重
  • Base 模块
  • Core 模块
  • Runtime 模块
  • Data 模块
  • Network 模块
  • /modules/actor.html
  • Game 模块
  • BigWorld 模块
服务器应用
API 参考
QA
GitHub
  • MMORPG 架构 QA

Q112: 如何与策划同学沟通技术方案?

问题分析

本题考察跨职能沟通能力:

  • 需求理解
  • 方案解释
  • 可行性评估
  • 协作推进

一、沟通原则

1.1 沟通要点

┌─────────────────────────────────────────────────────────────┐
│                    与策划沟通原则                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  听懂需求:                                                   │
│  ├── 理解核心乐趣                                           │
│  ├── 明确目标用户                                           │
│  ├── 了解期望效果                                           │
│  └── 问清边界条件                                           │
│                                                             │
│  讲清限制:                                                   │
│  ├── 技术可行性                                             │
│  ├── 性能限制                                               │
│  ├── 开发成本                                               │
│  └── 维护成本                                               │
│                                                             │
│  提供方案:                                                   │
│  ├── 核心需求优先                                           │
│  ├── 分阶段实现                                             │
│  ├── 替代方案                                               │
│  └── 风险说明                                               │
│                                                             │
│  持续沟通:                                                   │
│  ├── 定期同步进度                                           │
│  ├── 及时反馈问题                                           │
│  ├── 共同决策调整                                           │
│  └── 验证效果预期                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

二、需求分析

2.1 需求理解框架

# 需求分析框架

class RequirementAnalysis:
    """需求分析"""

    def analyze(self, requirement):
        """分析需求"""
        return {
            'core_value': self._find_core_value(requirement),
            'target_users': self._identify_target_users(requirement),
            'success_metrics': self._define_success_metrics(requirement),
            'constraints': self._identify_constraints(requirement),
            'risks': self._assess_risks(requirement)
        }

    def _find_core_value(self, requirement):
        """找到核心价值"""
        questions = [
            "这个功能解决什么问题?",
            "玩家有什么乐趣?",
            "对游戏有什么帮助?"
        ]
        # 与策划讨论回答这些问题
        return "核心价值描述"

    def _identify_target_users(self, requirement):
        """识别目标用户"""
        return {
            'player_type': '新手/老手/付费/免费',
            'playstyle': '休闲/硬核/社交/竞技',
            'expected_participation': '预期参与度'
        }

    def _define_success_metrics(self, requirement):
        """定义成功指标"""
        return {
            'usage': '使用率',
            'retention': '留存影响',
            'revenue': '收益影响',
            'engagement': '参与度'
        }


# 需求分析示例
"""
策划提出: "实现跨服交易"

需求分析:

1. 核心价值:
   - 活跃经济
   - 增加社交
   - 提升留存

2. 目标用户:
   - 中高级玩家
   - 有交易需求的玩家

3. 成功指标:
   - 交易量 > 1000/天
   - 参与玩家 > 20%
   - 投诉 < 1%

4. 约束条件:
   - 不能刷物品
   - 性能不能受影响
   - 需要防沉迷限制

5. 风险评估:
   - 经济系统冲击
   - 外挂风险
   - 客服压力
"""

三、方案沟通

3.1 方案展示

# 方案沟通框架

class SolutionPresentation:
    """方案展示"""

    def present(self, requirement):
        """展示方案"""
        return {
            'understanding': self._show_understanding(requirement),
            'approach': self._explain_approach(requirement),
            'feasibility': self._assess_feasibility(requirement),
            'timeline': self._estimate_timeline(requirement),
            'tradeoffs': self._discuss_tradeoffs(requirement)
        }

    def _show_understanding(self, requirement):
        """展示理解"""
        return """
        我理解您的需求是:

        核心目标: {核心目标}
        目标用户: {目标用户}
        期望效果: {期望效果}

        我的理解对吗?
        """

    def _explain_approach(self, requirement):
        """解释方案"""
        return """
        推荐方案:

        架构设计:
        - 使用独立的交易服务器
        - 消息队列异步处理
        - Redis 缓存热点数据

        核心流程:
        1. 玩家上架物品
        2. 交易服务验证
        3. 数据库持久化
        4. 广播更新

        安全措施:
        - 交易次数限制
        - 金额验证
        - 日志记录
        """

    def _assess_feasibility(self, requirement):
        """评估可行性"""
        return {
            'technical': '技术可行性: 高',
            'performance': '性能影响: 低',
            'security': '安全风险: 中,需要加强验证',
            'maintenance': '维护成本: 中'
        }

    def _estimate_timeline(self, requirement):
        """评估时间"""
        return """
        时间估算:

        Phase 1 (基础): 2 周
        - 架构搭建
        - 基础功能
        - 内部测试

        Phase 2 (功能): 2 周
        - 交易功能
        - 搜索功能
        - 联调测试

        Phase 3 (优化): 1 周
        - 性能优化
        - 安全加固
        - 上线准备

        总计: 5 周
        """

    def _discuss_tradeoffs(self, requirement):
        """讨论权衡"""
        return """
        方案选择:

        方案 A: 简单快速
        优点: 开发快,成本低
        缺点: 功能有限,扩展性差

        方案 B: 完整方案 (推荐)
        优点: 功能完整,可扩展
        缺点: 开发时间长,成本高

        建议:
        - 先实现方案 B 的核心功能
        - 分期上线验证效果
        - 根据数据决定后续投入
        """

四、常见场景

4.1 场景处理

# 常见沟通场景

class CommonScenarios:
    """常见场景"""

    scenarios = {

        'Feasibility_Question': {
            '场景': '策划问"这个能实现吗?"',
            '回答框架': '''
            1. 技术上可以实现
            2. 但需要考虑:
               - 开发成本: X 周
               - 性能影响: 需要优化
               - 维护成本: 需要专人负责
            3. 建议先实现核心功能,验证效果
            '''
        },

        'Change_Request': {
            '场景': '开发中途需求变更',
            '处理方式': '''
            1. 了解变更原因
            2. 评估影响:
               - 需要改动的工作量
               - 对进度的影响
               - 对其他功能的影响
            3. 提供方案:
               - 全部接受 (延期)
               - 部分接受 (分期)
               - 拒绝 (解释原因)
            '''
        },

        'Performance_Concern': {
            '场景': '策划担心性能问题',
            '解释方式': '''
            1. 展示测试数据
            2. 说明优化方案:
               - 分区处理
               - 缓存优化
               - 异步处理
            3. 提供监控手段
            4. 制定扩容方案
            '''
        },

        'Timeline_Pressure': {
            '场景': '时间紧迫',
            '处理方式': '''
            1. 梳理优先级:
               - 核心功能必须做
               - 辅助功能可简化
               - 锦上添花可延后
            2. 并行开发
            3. 复用现有方案
            4. 适当加班 (短期)
            '''
        }
    }

五、沟通技巧

5.1 有效沟通

# 沟通技巧

class CommunicationSkills:
    """沟通技巧"""

    tips = {
        'Use_Analogy': {
            '技巧': '使用类比',
            '示例': '''
            策划: "为什么不能实时同步所有玩家位置?"
            回答: "想象一下,如果有1000个人同时在房间里说话,
                   你能听清每个人说什么吗?我们也是一样,
                   只需要让玩家看到附近的人就够了。"
            '''
        },

        'Show_Not_Tell': {
            '技巧': '展示而非讲述',
            '示例': '直接演示原型/效果,而不是只描述'
        },

        'Provide_Options': {
            '技巧': '提供选项',
            '示例': '''
            "我们有三个方案:
             A: 快但功能少
             B: 慢但功能全
             C: 折中方案
             您倾向哪个?"
            '''
        },

        'Focus_Value': {
            '技巧': '聚焦价值',
            '示例': '''
            "虽然这个实现复杂,但能带来更好的玩家体验,
             从长期来看是值得的。"
            '''
        }
    }

六、协作流程

6.1 标准流程

需求评审 → 技术方案 → 评审确认 → 开发实现 → 验收测试 → 上线运营

需求评审:
- 策划讲解需求
- 开发提问澄清
- 共同确认理解

技术方案:
- 开发设计方案
- 策划确认效果
- 评估开发成本

开发实现:
- 定期同步进度
- 及时反馈问题
- 协调资源

验收测试:
- 策划验收功能
- 反馈问题清单
- 开发修复

上线运营:
- 监控数据表现
- 收集玩家反馈
- 规划后续迭代

七、最佳实践

7.1 协作建议

实践说明
换位思考理解策划的难处
数据说话用数据支持决策
原型先行快速验证想法
文档同步保持信息一致
及时反馈不等最后才说
建立信任兑现承诺

八、总结

与策划沟通核心

与策划沟通 = 理解需求 + 讲清限制 + 提供方案 + 持续协作
- 换位思考理解需求
- 技术语言转业务语言
- 提供多个方案选择
- 保持开放沟通

参考资料

  • Product Management for Developers
  • Technical Communication
在 GitHub 上编辑此页
最后更新: 3/20/26, 6:06 AM
贡献者: cuihairu