今天下午沒事去參加了某公司來我校舉辦的一次產品設計相關的講座。大部分“創新與設計”課程的學生或未來想做產品經理工作的同學都去聽了,我因為最近要幫一位老師做一項目的產品原型設計,連Axure還沒完全用會,因此也跑去旁聽。
這位高級產品經理講的繪聲繪色,教我們產品需求文檔怎么寫?整個產品的設計流程、常用工具、產品經理的工作職責、研發管理相關的內容等等。我自己簡單總結了幾點:
- 產品設計過程中最重要的四個部分:理清產品業務流、產品原型設計、需求分析文檔PRD(word)和需求跟蹤列表(Excel)。
這里要說明的一點是:以前的需求分析文檔很大,一般都幾十頁甚至上百頁,維護起來十分困難,現在的需求分析被拆分成兩部分:需求分析文檔+需求跟蹤列表,其中需求分析文檔一般只有4、5 頁,包含一些基本固定下來的業務概述和功能描述,在以后的開發中一般不會再改動,需要改動的細節使用跟蹤列表來跟進,大大減輕了維護難度。
- 產品設計常用工具:Enterprise Architect(常用于業務流和建模)、Microsoft Visio(框架圖、建模)、Axure(原型設計)和Balsamiq Mockups(原型設計)。
- 產品設計相關的理論:馬斯洛需求層次理論、Kano模型分析和四象限定位法。
- 軟件研發管理常用IPD(集成產品開發)和Scrum(敏捷開發)兩類methodology。
- 推薦了一些像《誰說大象不能跳舞?》、《精益創業》和《周鴻祎自述:我的互聯網方法論》這樣的書籍。
整個講座下來,我的確學到了一點產品相關的知識,本應高興,但實則不然,因為我從這位高級產品經理和身邊的同學口中聽到了一些貶低我們程序員的言論。我首先根據今天聽到的知識簡單總結出整個產品的開發流程,如下圖所示:
產品開發流程圖.png
是的,做個產品真心不易,流程很復雜,產品經理掌控著最關鍵的產品設計部分,而我們程序員只處于中間的一個小小環節,只負責實現人家設計好的產品圖就行。從我今天聽講的感受來看,產品經理是這樣看程序員的:
- 我們產品經理做的事是最關鍵的,我們負責需求設計、原型設計和用戶界面/體驗/交互設計,這些任務是具有創新性和挑戰性的,因為我們要深入挖掘用戶的需求,思考怎樣的業務流最讓用戶滿意,然后設計出相關的原型甚至各個交互頁面(點擊這個按鈕發生什么事),你們程序員只需要把我畫的圖和交互動作實現了就行,如果我們改動了需求,你也要馬上改,如果我們發現這套產品方案不行,要重新設計,你也得重新編碼重頭干。當然我們盡量少改需求、不改方案,否則不就是“耍猴(程序猿,猿,尼瑪!!!)”了嗎?
- 程序員做的都是最底層體力勞動。為什么說是最底層呢?程序開發下面不是還有個測試嗎?是的,測試雖然在開發之后,但也能管程序員,因為若測試人員測試后覺得做的太爛,完全有權力叫開發人員撤掉重寫……
當然,這只是我看到的“產品經理心目中的程序員”,也許也有很多產品人覺得程序員的工作很偉大,很神奇呢。
另一方面,程序員又是如何看待“萬惡”的產品經理呢?我曾聽一個技術前輩是下面這樣的想法:
我們程序員的工作都是很magic的,能夠實現各種各樣的功能,有趣的、實用的、搞笑的……涉及的技術也很高大上,夠人專研一輩子的。而產品經理就是做做調研、寫寫文檔、畫畫圖,沒有什么技術含量,工作也很枯燥無味……
那么實際工作過程中,產品經理到底是怎么看程序員的呢?而我們程序員又是如何看待產品經理的呢?難道是真的互相貶低嗎?沒有互相欣賞的嗎?我個人認為這兩份職業都是高大上的,都不容易……