今天下午没事去参加了某公司来我校举办的一次产品设计相关的讲座。大部分“创新与设计”课程的学生或未来想做产品经理工作的同学都去听了,我因为最近要帮一位老师做一项目的产品原型设计,连Axure还没完全用会,因此也跑去旁听。
这位高级产品经理讲的绘声绘色,教我们产品需求文档怎么写?整个产品的设计流程、常用工具、产品经理的工作职责、研发管理相关的内容等等。我自己简单总结了几点:
- 产品设计过程中最重要的四个部分:理清产品业务流、产品原型设计、需求分析文档PRD(word)和需求跟踪列表(Excel)。
这里要说明的一点是:以前的需求分析文档很大,一般都几十页甚至上百页,维护起来十分困难,现在的需求分析被拆分成两部分:需求分析文档+需求跟踪列表,其中需求分析文档一般只有4、5 页,包含一些基本固定下来的业务概述和功能描述,在以后的开发中一般不会再改动,需要改动的细节使用跟踪列表来跟进,大大减轻了维护难度。
- 产品设计常用工具:Enterprise Architect(常用于业务流和建模)、Microsoft Visio(框架图、建模)、Axure(原型设计)和Balsamiq Mockups(原型设计)。
- 产品设计相关的理论:马斯洛需求层次理论、Kano模型分析和四象限定位法。
- 软件研发管理常用IPD(集成产品开发)和Scrum(敏捷开发)两类methodology。
- 推荐了一些像《谁说大象不能跳舞?》、《精益创业》和《周鸿祎自述:我的互联网方法论》这样的书籍。
整个讲座下来,我的确学到了一点产品相关的知识,本应高兴,但实则不然,因为我从这位高级产品经理和身边的同学口中听到了一些贬低我们程序员的言论。我首先根据今天听到的知识简单总结出整个产品的开发流程,如下图所示:
是的,做个产品真心不易,流程很复杂,产品经理掌控着最关键的产品设计部分,而我们程序员只处于中间的一个小小环节,只负责实现人家设计好的产品图就行。从我今天听讲的感受来看,产品经理是这样看程序员的:
- 我们产品经理做的事是最关键的,我们负责需求设计、原型设计和用户界面/体验/交互设计,这些任务是具有创新性和挑战性的,因为我们要深入挖掘用户的需求,思考怎样的业务流最让用户满意,然后设计出相关的原型甚至各个交互页面(点击这个按钮发生什么事),你们程序员只需要把我画的图和交互动作实现了就行,如果我们改动了需求,你也要马上改,如果我们发现这套产品方案不行,要重新设计,你也得重新编码重头干。当然我们尽量少改需求、不改方案,否则不就是“耍猴(程序猿,猿,尼玛!!!)”了吗?
- 程序员做的都是最底层体力劳动。为什么说是最底层呢?程序开发下面不是还有个测试吗?是的,测试虽然在开发之后,但也能管程序员,因为若测试人员测试后觉得做的太烂,完全有权力叫开发人员撤掉重写……
当然,这只是我看到的“产品经理心目中的程序员”,也许也有很多产品人觉得程序员的工作很伟大,很神奇呢。
另一方面,程序员又是如何看待“万恶”的产品经理呢?我曾听一个技术前辈是下面这样的想法:
我们程序员的工作都是很magic的,能够实现各种各样的功能,有趣的、实用的、搞笑的……涉及的技术也很高大上,够人专研一辈子的。而产品经理就是做做调研、写写文档、画画图,没有什么技术含量,工作也很枯燥无味……
那么实际工作过程中,产品经理到底是怎么看程序员的呢?而我们程序员又是如何看待产品经理的呢?难道是真的互相贬低吗?没有互相欣赏的吗?我个人认为这两份职业都是高大上的,都不容易……