越过山丘-从程序猿到产品汪的转变

勤奋的喵2018-06-08 10:54

前段时间有同事跟我聊到希望转行做产品经理,希望听取下我的意见和建议。大概在5年前,我从一名普通的程序员转行做了产品策划。如今又在负责产品经理的相关工作,今天我就来回顾一下我的转行经历,希望可以帮助到想转行做产品策划和产品经理的程序猿们。


初始感觉


人们都说,隔行如隔山。初期开始产品策划工作的时候,确实有比较明显的感觉。

首先的第一感觉就是,产品策划需要了解和掌握的知识非常多也非常杂。原本作为程序员只要跟代码、跟IDE、跟内存、跟数据库、跟设计模式打交道的我,突然变成要跟交互、跟视觉、跟前段后端开发、跟运营、跟市场等相关接口人来打交道。

机器是死的,但人是活的。机器有固定规则和套路,只要摸清楚程序开发的基本原则和流程,你构思的架构和所写的代码就会按照你的想法一一呈现在眼前。但是,人是活的,市场是变化的,用户需求是多样的,甚至用户自己也不知道自己真正想要的是什么。

这时候,产品策划的工作就变得复杂和有难度起来。我们不仅仅要了解用户的真实想法和需求,还需要学习和掌握市场上的竞争形势,了解我们手上所有可调配的资源,在众多不确定的因素中找到一条可行的发展道路,使得产品以及我们负责策划设计的功能可以达到一个满意的预期效果。


程序员的优势


最开始转岗到产品策划的时候,有人跟我说过,好的产品经理都是技术转过来的。比如我们敬爱的老板、比如乔帮主、比如雷军等等。

的确,技术出身的人在做产品的时候有一些优势。因为是技术出身,在思考和设计解决方案的时候可以从设计伊始就了解和掌握技术的可行性。在功能策划和执行的过程中,技术出身的产品经理可以更好的与程序员沟通,准确的传达设计意图和设计思路。可以在整个开发过程中少走弯路,减少不必要的试错和返工。当然,最大的一个好处是,程序员不能“蒙”你!

可能很多非技术出身的产品经理都会遇到这样一个问题。自己辛辛苦苦设想的方案和设计功能,程序员一句简单的“做不了”而被打回。这种挫败感可能会伴随我们整个的产品策划工作中。还有一些问题是可能我们最开始设计的方案,在执行开发的过程中,可能会涉及到较多的资源、较长的开发周期。此时,技术出身的产品经理可以根据需求的最核心目标与技术人员沟通,寻求有效合理的解决方案。在满足基本需求的前提下,又可以按时保质的完成开发和版本迭代。

作为产品经理,每天的日常工作除了要了解行业动态、调研用户需求、设计解决方案外,最多的事情就是不断的与各个角色的上下游同事进行沟通和交流。而有着较强的逻辑性、过硬的技术功底、对全系统有着深入了解的程序员产品经理,在与用户、运营、市场同学交流讨论需求以及产品运营推广方案时,可以第一时间对各种设想和规划给出可靠的技术可行性,的确可以提高交流和沟通的效率,减少不必要的二次沟通以及避免好的想法因为技术原因而束之高阁。


技术出身的产品经理我认为第二个较大的优势是在设计方案时,可以有较强的系统性和逻辑性。我们都知道,设计哪怕再简单的一个功能,也需要与产品现有的功能和架构有着诸多的联系和关联,甚至设计的功能本身就包含着一个小的框架系统。而程序员有面向对象、设计模式和状态机等常用的开发设计工具,这些工具和设计思路,可以帮助产品同学在设计框架和规划方案时系统和全面地了解用户需求以及设计合理的解决方案。

例如,产品经理经常要做的竞品分析以及行业商业模式分析,其实在程序员看来就可以简单的整理成一个商业模式的状态机,用图表的方式表示。这样便于理解与沟通,也有利于设计和构想适合于自己产品的商业模式。如下图,是曾经做过对租车行业的商业模式和运营模式的分析。尝试着将租车行业的各个角色使用类似状态机的方式链接起来,对于各个竞品的比较和分析都是比较方便和直观的。


程序员的劣势


虽然作为程序员转行做产品,自身有一定的优势。但正如不同的角色都有转变成为产品经理的成功案例,从事不同工作岗位的同学也都有着自身职业背景的优势和强项。相对的,程序员同学也会有一些不足和先天的劣势。

首先,程序员出身的产品经理可能过于强调技术的重要性并追求过于完美的技术解决方案。强大而完备的技术解决方案是产品的一项重要的核心竞争力指标。但是要根据当前产品所处的阶段以及需求的紧迫程序来选择合理的解决方案。如果一味的追求强大而完备,则可能消耗较长时间而延误市场的窗口期。

同时,复杂而完备的技术方案,也可能导致系统的复杂度提高,增加了QA的成本,也增加了上线后可能出现BUG的风险。互联网产品的特点是节奏快,变化多,用户的需求随时都在改变和演进。产品经理应该分析用户的本质需求,根据用户的心智模型选择效率最高的设计和技术方案来验证设计原型。通过小步快跑的方式来不断的迭代和优化产品功能并寻求切实可行的技术解决方案。

很多时候,技术出身的产品经理设计的方案可能是从技术本身出发,而不是从用户的真实需求和实际的使用场景出发。为了技术创新而设计产品功能,反而会使产品事倍功半,用户并不买账。

技术型产品经理的另外一个比较大的劣势是对运营、市场等相关领域积累不够,对交互设计、视觉设计等方面也需要从零开始花费大量的时间去学习和了解领域知识。程序员的思维往往是线性的、严谨的和有较强逻辑性的。但是对于产品的运营、推广和传播往往又是需要有创造力的、突破的和离散型的思维方式。起初可能技术型的产品经理会有很多不适应。而这些都需要刚刚转变成为产品经理或者有志成为一名合格产品经理的开发同学多去学习和了解行业知识、分析成功案例、摸索成熟的商业模式,不断的调整和优化自身的思维模式,以适应产品经理岗位的要求。


建议


从最早的网易识字到云阅读的WP版本,从OBD产品预研再到后来云阅读整体的产品规划以及目前正在筹备中的网易蜗牛读书,我经过相当长一段时间的摸索和适应,也走过不少弯路踩过很多坑。

上面提到,隔行如隔山,在转岗的五年岁月里也的确感受过角色转换带来的困惑和迷茫。回想起当初转岗时的情景和心境,觉得当初还是做了一个很蛮大胆的决定。也许很多程序员朋友都会遇到一个困惑,随着年龄的增大,感觉代码写不动了,是不是可以考虑转转岗,去做产品经理吧。但是其实我想说,产品经理首先需要对产品有想法有意愿,有希望把产品做到完美初衷。而这个想法和意愿其实是贯穿于整个工作过程中的。

当初的角色转换其实是来自于领导的期望,我回想起来可能是因为我在日常的开发过程中,总会总结出一些我认为可以对产品有改进的想法和思路,然后反馈给产品设计层面。在完成责任内的功能点开发的过程中,也会根据竞品优点去主动优化相关的功能和特性。

还记得做iOS开发时,我负责网易微博iPhone客户端的开发。产品经理给到的需求是做一个@和#的提示需求,我在完成交互和视觉设计方案的同时,还根据当时Twitter的相关功能,一并优化了用户在输入过程的退格键操作以及连带的一系列优化功能,得到产品方的认可。

在云阅读做离线资讯的过程中,我也思考过离线资讯使用中的一些场景。比如:我设想的一个上班族,每天起床后的洗漱时间可以在wifi环境下自动帮助用户下载好离线资讯内容。这样,洗漱完毕即可拿起手机出门,在地铁或者公交车上就可以浏览早上发生的最新资讯。通过定时离线下载的方式,减轻用户的操作成本简化功能使用流程。我将方案整理成文档反馈给产品方,并得到的了认可在新的版本上实现了这个功能。

给希望做产品经理的同学的建议就是,产品的设计和优化是发生在每时每刻的,也发生在产品团队的每一个人身上。苏杰说,人人都是产品经理并不是要每个人都去做产品经理。而是应该有产品经理的思维和意愿。有把产品做好,有把不完美做到完美,把不完善做到完善的想法和意愿。最后,祝所有有志成为产品经理的同学,都可以做出让自己满意,让市场认可,让公司赚钱的好产品。


以上是自己的一些心得和体会,有可能片面,也可能以偏概全。欢迎大家拍砖,多多交流。


本文来自网易实践者社区,由作者李宝泉授权网易云社区发布 。