如何做一个懂产品的程序员?
這篇是之前發過的《懂程序員的產品經理是什么樣子?》的鏡像篇,這次是程序員視角。
兩個相愛相殺的崗位,想要更好的達成共識、更好的合作,自然不僅僅是一方的事情。這次Z哥先會帶你看看產品經理眼中的程序員是什么樣子。然后給出一些我的建議。
直接進入正題吧。
從產品視角是怎么看程序員的呢?我根據我自己的經歷以及與其他產品經理的交流下來看,吐槽的主要是以下幾點:
這個功能實現不了。
希望所有產品都不要改版,一次性把現在或未來要做的開發完。
只關心要寫多少代碼,不在乎產品體驗。
寫完程序從不自測,直接丟給別人測試。
過分追尋新技術潮流,完全不考慮對產品帶來什么價值。
第一點,的確存在一些由于技術限制導致實現成本無限大的需求,比如手機屏幕背景色根據手機殼顏色切換……
但是,國內的技術環境不像老美那的技術味道重,大多還是商業導向的,很少企業里需要用到高精尖的技術,所以,真正實現不了的功能微乎其微。
對于大多數的功能需求來說,無非是一個成本大小、價值高低的問題。從立場上看,程序員自然是站在「成本」一方的,但對大多數人來說,決定這個成本的主要因素往往是自己工作的難度和耗時,費時費力的功能就容易得到“實現不了”的結果。
第二點對大多數產品經理來說是他們的對立面。因為大多數產品經理最喜歡“走一步算一步”地高頻迭代,甚至是有一個想法就開始干。而程序員則喜歡來一個大而全的,并且內容要非常詳細的,心里的想法是,這樣的話我一開始就可以設計一個完美架構來支撐它。
而且,內容越詳細,產品經理就越不敢亂調整需求,畢竟“證據在手”嘛:D。
第三點在大多數程序員身上都能看到。畢竟做程序員的還是理科男偏多,對需要有同理心、需要靠感受的事情的確弱了一些。
第四點的原因主要有兩個。
一個是對自己的代碼過度自信導致,我自己深有體會。我還記得有一次我交付一個功能,那個功能我單元測試都寫了不少,對質量很有信心,覺得就算有bug也都是比較深層的bug。結果沒想到……第一天就測出來好幾個低級的bug。
另一個原因是反正有測試人員在,等他們測出問題我再改不是更輕松。惰性使然,從個人角度的確如此。但是從團隊角度來看,徒增了不少的溝通成本。
第五點的原因也有兩個。
一個是行業里的新技術迭代的確太快,怕不學新技術被淘汰。
另一個原因是,只有用上新技術才能有談資,顯得自己與眾不同、有成就感。
以上就是對這五點的簡單分析,那么如何改善呢?繼續往下看。
下面這些方法都是我親測有效的,強烈推薦你也試試。這里的序號與前面被吐槽的五點一一對應。
01? 說實現不了之前,先三思
根據先后可以做以下3個思考:
是覺得這個功能沒有價值不想做嗎?
真的實現不了?我想全了嗎?
這些方案里,有成本比價值低的嗎?
第一個問題先確定必要性。我們不是說不能推需求,而是要推掉低價值、無價值的需求。當然有沒有價值不一定你說了算,但至少這才能算是拒絕的理由。
第二個問題,努力拓寬自己的邊界、舒適區。如果我們總是習慣性地從大腦的記憶中找解決方案,那么將會永遠在舒適區止步不前。
第三個問題,拒絕需求雖然不用動之以情,但一定需要曉之以理。當你能清楚的闡述利弊、收益比,拒絕需求自然不是一件需要相互扯皮的事情。
經過了這三個問題的思考,不管最終能不能實現,相信可以很好的與產品經理達成共識。
02? 明白需求本身也是成本
過度地苛求需求要細、要完整、要全面,這個本身也是在增加產品經理需要投入的時間。你的開發成本是成本,產品經理的也是。
與其等一個“XXXX最終絕對不改版”,不如從已經達成共識的部分開工,在這個過程中再與產品經理「共創」,多一起溝通打磨,此時再讓產品完善PRD等文檔,形成最終版。
03? 刻意練習,多換位到用戶視角
平時多去體驗一下自家的產品以及競品,把整個過程中的感受記錄下來。比如,哪里感到不太順手、哪里感受到了小驚喜、哪里感到特別煩人等等。結果不重要,重要的是這個過程,慢慢鍛煉自己作為用戶的感知力。
有些程序員看起來經常把用戶體驗掛在嘴上,其實提出來的很多反而是脫離大眾習慣的“個性化”需求,就是因為平時缺少對同行、外界的關注。
04? 交付的東西是自己的「招牌」
“有人的地方就有江湖,有江湖的地方就有稱號”。如果長期報以等測出來bug再去修的心態,你在別人心中的稱號就是負面的。
輕則影響自己的口碑,影響與他人之間的協作關系;重則失去未來的晉升機會。一個對自己的東西都不負責的人,如何負責更多的人、更大的事情呢?
在這件事上,除了多自測外,作為過來人,我建議每一個程序員認真對待單元測試。特別把核心、復雜的方法單元測試給做上,這對交付功能的質量的提升非常明顯。
05? 不產生價值的新技術是“垃圾”
擁抱新技術是值得鼓勵的。但是單純的為了體驗某新技術而去使用它,這不但給團隊在挖坑,也在給自己挖坑。
比如你花了不少的時間在項目里用了某個新技術,但是對團隊沒有帶來什么價值,你說后續公司還會繼續投入資源加大新技術的使用嗎?大概率并不會。那么之前了解到的一些知識,就會隨著時間的推移而淡忘,投入的時間大多數浪費掉了。
所以,對待新技術Z哥的觀點是。對于無法在工作中找到價值點的新技術淺嘗輒止即可。相反,遇到可以產生價值的新技術,請全身心投入進去,而不是僅僅在應用層面搗騰,不去深入細節。之前發過一篇講解新技術選用的文章《程序員與新技術之間的「愛」與「恨」》,可以點擊文末的鏈接閱讀。
很多程序員對待新技術的習慣是,打一槍換一個地方,經過了幾年,發現技術實力還在原地打轉,不免有些可惜。
另外,推薦大家可以閱讀一兩本心理學、行為學相關的書,特別是我們做程序員的。
這不但可以提高自己對用戶體驗的感覺,還能提高對人性的洞察力,包括對自我的認知。是一項不管在生活中還是工作中都非常有用的技能。
好了,總結一下。
這篇呢,Z哥和你分享了我對程序員如何更好地與產品經理達成共識這件事的看法。主要是以下五點建議:
1.說實現不了之前,先三思。
2.明白需求本身也是成本。
3.刻意練習,多換位到用戶視角。
4.交付的東西是自己的「招牌」
5.不產生價值的新技術是“垃圾”
希望對你有所幫助。
如果你有關于軟件架構、分布式系統、產品、運營的困惑
可以試試點擊「閱讀原文」
總結
以上是生活随笔為你收集整理的如何做一个懂产品的程序员?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Azure认知服务之使用墨迹识别功能识别
- 下一篇: 【LeetCode】1. 盛最多水的容器