在没有正式成为产品经理的时候,对于产品经理的认识大多停留在理论层面,比如用户体验五要素、马斯洛需求、AARRR模型、KANO、SWOT等等。等到实际成为产品经理时,会发现这些理论性的东西不一定能用得上,因为我们相信一个好的解决方案总是在“争吵”中产生的,更重要的是新的想法。懂理论,但是不依赖于理论,这也是我们实际在做产品时的一种态度。
我先简单介绍一下公司及项目的背景:
我们公司主要从事人工智能机器人研发与生产,工信部推出的中国机器人TOP10企业。有两个主要业务方向:ToB商业服务机器人,ToE人工智能教育项目。一个次要业务方向:ToC家用机器人。
我主要负责人工智能教育项目,面对的客户是教育集成商,教育相关领导,还有直接使用者——学生(普教、中高职都有涉及)。我们项目以教室的形式往学校里边做,就相当于原来的人计算机教室,里边都是电脑,教学生计算机知识。现在我们做人工智能教室,里边都是机器人,教学生人工智能知识。
前段时间我们接到了一个任务,要做一个用于学习的“开发者平台”。因为SH市某所学校有人工智能理论课程,但是没有实验的课程,需要我们提供一个平台,让这些学生学习完理论之后有一个能实验的平台。
看上去任务很简单,但是国内人工智能教育刚刚起步,用于人工智能教育的开发平台几乎没有,能够借鉴的很少。还有就是要结合教材、实验、机器人等等内容,涉及到的知识点比较多,覆盖面比较广,开发难度比较大。在这样一个环境下,我们开始了对产品的探索,最终积累了一段对我来说比较宝贵的经验。
我把项目的开发流程分成了六个阶段:
第一阶段,接受任务:搞明白我们为什么要做,用户是谁,使用场景是什么,有什么需求,交付时间是什么时候。
第二阶段,任务分析:因为是从0到1的心产品,那就需要我们在做之前深入了解产品的相关信息,让自己的认知先从0变成1,避免产品一直出现添砖加瓦的现象。
第三阶段,梳理产品结构:我已经对产品相关信息有了一定的认识了,那就要结合我们自身资源,搞明白产品包含什么内容,能不能满足用户需求,和同类产品有什么竞争优势,有什么值得借鉴的。
第四阶段,原型设计:产品里边要包含什么内容已经搞明白了,剩下的就是直接干了!画手稿、出原型!产品评审、技术评审、原型优化、优先级排序等等。
第五阶段,产品开发:原型已经画明白了,就开始进入开发阶段了,包含UI、UX、程序设计、产品测试等内容。
第六阶段,产品上线:上线!齐活!进入更新迭代周期。
第一阶段,接受任务
每做一个产品,就是在做一个项目,我们可以把产品理解为一款“手机”,项目就是生产“手机”这件事。
产品经理考虑的是如何将这个“手机”的用户体验最大化,比如加不加Home键,全面屏还是曲面屏,屏幕尺寸多少,升降摄像头还是刘海摄像头等等。而项目经理考虑的是这件事整个生命的周期该如何把控,人员分工如何,先组装主板还是先组装电池,成本怎么优化,风险怎么控制,质量如何保证等等。
第一个阶段主要是要搞明白我们为什么这么做,用户是谁,有什么需求,要达到什么效果,什么时候完成等等。
项目名称:“AI技术学习开放平台”开发项目。
我们为什么要做:
- 有客户提出的需求,能够为公司带来可观收益。
- 只有人工智能课程,没有相关实验,这种情况对于大部分学校来说是常态,这也是一个市场机会。
- 如果升级到项目发展层面,那这个平台除了要支持中小学操作学习以外,我们的职教项目更需要这样的平台,因为职教更注重的是学生“技能”的培养,对于实操实验更加注重。
- 再上升到公司战略层面来说,这有助于公司大数据库的建立。
现实告诉我,产品最核心的是商业价值,是能够给公司带来收益。如果一味地谈情怀、谈理想,拿不到钱,公司靠什么活,要你产品经理有什么用。拿罗永浩来说,他就是一个很好的产品经理,对于手机的想法都很超前,但是对市场把握不够,最终还是走到了被收购的路。
用户是谁:
- 普教阶段学生:中小学有编程基础的学生,平台作为辅助教具,帮助学生对人工智能技术学习。以体验为主,因为开发平台涉代码编程,学习内容难度较大,学生接受能力不太强,更多的是根据教材进行实验。
- 职教学生:中高职院校学生,人工智能相关专业,以开发为主,由基础编程到实践开发进阶。
使用场景:
人工智能实验室,教材,机器人。
有什么需求:
- 用户需求产品需求。
- 编程进阶学习支持通用的编程语言。
- 数据库进阶学习支持调用合作平台数据库、训练模型以及机器人本体相关文件。
- 机器人进阶学习支持通用编程语言编写的内容,控制机器人。
- 人工智能进阶学习支持人工智能相关技术的调用,并具备对应的体验及说明文档等功能。
- 职业能力培养具备场景应用等实战开发的功能。
交付时间:
- 第一星期内完成初稿原型,用于采集用户需求。
- 第二到三个星期完成原型优化、团队评审。
- 第四到五个星期完成UI设计。
- 第六到九个星期完成开发,测试。
第二阶段,任务分析
先让自己的认知从0上升到1,寻找相关产品的一切资料,快速填充自己认知。不要急于开干,要做好充足准备避免出现遗漏或者过错。
再次重申,这个步骤重要的是开阔视野,不要把整理来的资料当成开干的准则。
整理相关资料:
资料的整理分为内部和外部的资料,内部的资料主要是:
目前机器人所承载的人工智能技术
- 能够开放的API接口。
- 能够封装的SDK包。
- 教材所涉及的人工智能技术。
- 目前所涉及到的场景应用实验。
- 第三方合作数据资料。
外部的资料主要是:
- 各大(BAT等)人工智能开放平台框架。
- 人工智能在线学院框架。
- 在线编程平台业务逻辑。
调研同类产品:
在市场上寻找类似的平台,可以借鉴“SWOT分析法”进行优劣势分析。
如果要展开竞品分析需要很长的篇幅,以后有机会再专门写一篇关于竞品分析实战的文章。在产品调研时要注意分清功能调研和产品调研,这里放一张布棉老师的图,为产品调研提供思路。
第三阶段,梳理产品架构
这个步骤有点像用户体验五要素中的范围层,里边包括了我们产品里边要有什么功能、内容等。主要目的是为了明确哪些功能要做,哪些功能不要做,哪些先做,哪些后做,为以后开发的排期、优先级排序做准备。
业务流程在这个阶段也是必不可少的环节,业务流程可以为产品功能优化、独立功能设计、页面交互方向等提供帮助(当然了,也为了让UI、开发更直观明了的了解产品的运行模式)。主要包括了要完成一件事所需要的步骤、有哪些人会参与到流程、数据是怎么流转、异常问题处理等内容。
第四阶段,原型设计
1. 页面流程
如果产品功能比较复杂,可以在进行原型设计之前,先画出页面流程图,方便理清页面层级结构、交互逻辑。需要注意的是,页面流程是以用户的视角来画的,主要看流程的合理性,包含主干流向和辅助流向。以每个页面的重点元素作为主体,表明每个页面之间主要联系。
2. 原型设计
所有逻辑都搞明白后,就可以着手做原型了,在做原型的时候需要注意一下几点:
- 最好先手绘确认界面或元素位置,然后再用Axure等工具,因为手绘最快,修改最方便,和领导沟通更为方便。
- 页面跳转关系要明确,与第三、四阶段的信息要保持一致。
- 页面的整体结构要清晰、交互逻辑要清晰、运行逻辑要清晰。
- 就算是低保真,也要让页面元素、字体、文案等保持真实。
- 在原型上做好备注,如果没有特殊需要,就不用再写一份PRD文档了。一定要把所有的功能、跳转、交互、异常、窗口、版块、内容、文案等等写详细,这一步骤就是为了让开发同学看明白,避免原型与实际产品出现误差。
3. 团队评审
在产品原型画完之后进行产品评审会议,包括项目经理、产品经理、开发、UI、测试、运营等产品相关责任人,主要内容为:产品经理阐述最终原型,明确产品相关部门的任务,对产品存在的疑义进行解答,规划产品开发周期等,确保产品按照计划上线。
团队之间的合作存在于整个项目周期,不管在哪个阶段,都应该寻求团队的协作。在这里单提团队评审,目的是在开发前以会议的形式,正式通知团队产品进入开发阶段,消除团队间的信息误差。如果对产品还存在疑问需要提前告知产品经理,避免进入开发阶段后大改原型,导致不必要的麻烦。
4. 产品版本规划
比较复杂的产品不可能一次性开发完全,如果原型在团队评审最终时,发现还有些难以实现,或者开发的周期很长,这时候就需要对产品进行一个分阶段开发的规划。
关于版本规划,也可以在原型之前做好规划,根据项目实际情况做决定。
5. 原型优化
如果团队评审有问题,或者因为产品迭代有改变就需要再进行一轮原型优化。
第五阶段,产品开发
产品开发阶段,产品经理更多的就是项目经理的角色了,要对产品开发的周期、质量、风险等进行管理。首先就是要追周期,确保开发进度。其次就是要持续对原型持续解释,确保实际与原型一致。有时间再写项目管理。
第六阶段,产品上线
在产品上线前:
- 询问开发同学还有多少个BUG没写完。
- 询问测试同学还有多少个BUG要改进。
- 询问运营同学还有多少个段子没编完。
- 询问自己还有多少天可以出院(被团队的小伙伴邀请去爬山,中途自己上厕所时被蒙头胖揍了一顿,找不到凶手,地上只留下了自己之外的三双脚印)。
在出院后:
- 检查核心流程、核心功能是否完整可用。
- 检查BUG LIST是否处理完毕。
- 检查网站内容是否有足够的信息,初始数据是否填充完毕。
- 检查帮助文档是否完成。
- 检查服务器是否稳定,与机器连接是否有问题。
- 通知产品相关人员产品上线日期。
在上线时:
发布上线公告/邮件。壹壹感谢每位参与产品开发的人员。
在产品上线后:
- 根据用户需求和迭代规划持续更新。
- 对用户使用数据进行分析,进行产品优化。