作為一名程序員格侯,難免會和產(chǎn)品經(jīng)理打交道。記得有一個段子:
產(chǎn)品汪:程序猿吱晒,我們來實現(xiàn)一個緊急需求甸饱?
程序猿:請說。
產(chǎn)品汪:請根據(jù)手機(jī)殼的顏色仑濒,來實現(xiàn)APP啟動的顏色叹话。
程序猿已經(jīng)在風(fēng)中凌亂。墩瞳。驼壶。
從這個段子中多少能折射出產(chǎn)品和技術(shù)之間的各種激情“火花”。產(chǎn)品經(jīng)理眼中簡單的需求喉酌,而在我們看來是不可能實現(xiàn)的热凹。而程序員也無法理解產(chǎn)品經(jīng)理為什么要實現(xiàn)這樣的需求。那么泪电,站在一個程序員的角度應(yīng)該怎么樣和產(chǎn)品經(jīng)理溝通呢碌嘀?
1.深刻理解需求,清楚需求的動機(jī)和緣由
我們程序員一定會在問歪架,產(chǎn)品經(jīng)理為什么想要根據(jù)手機(jī)殼的顏色來動態(tài)實現(xiàn)APP啟動時的顏色股冗。既然想聽解析,那就先別急著說出自己的結(jié)論——技術(shù)上無法實現(xiàn)和蚪!既然有疑問止状,那就先將自己的疑問解決。
2.換位思考
產(chǎn)品有產(chǎn)品的角度攒霹。作為程序員我們追求的是什么怯疤?邏輯正確,更快催束,更容易擴(kuò)展集峦。產(chǎn)品追求的是什么?說實話,我自己沒有深刻去思考過這個問題塔淤。站在一個慣性的角度思考可以想到:一個產(chǎn)品為什么存在摘昌,他的存在能解決什么問題,他的用戶體驗好不好高蜂。這些才是決定一個產(chǎn)品的核心價值聪黎。畢竟工作性質(zhì)影響了一個人的思維邏輯,所以這時候备恤,我們能站在一個產(chǎn)品的角度去思考每一個需求稿饰,便顯得尤其重要。
3.不放過每一個細(xì)節(jié)
作為程序員想必對這句話都是深深認(rèn)同的露泊。因為一個標(biāo)點符號或者類型的錯誤喉镰,會導(dǎo)致一個自己意想不到的bug。產(chǎn)品經(jīng)理在設(shè)計一個產(chǎn)品的時候惭笑,都是從大方向去想問題的侣姆,大方向沒有錯就行了,細(xì)節(jié)脫離不了大方向脖咐。這是他們想的。但是對于程序來說汇歹,卻萬萬不能屁擅。因為一個細(xì)節(jié)的邏輯往往決定了整個大方向。舉個例子:有一個需求产弹,用戶的作品需要提交審核派歌,經(jīng)過審核才可以讓所有人看到。當(dāng)產(chǎn)品經(jīng)理交這個需求給你的時候痰哨,你能察覺到什么問題了嗎胶果?這里面有幾個細(xì)節(jié):1.用戶提交審核后,用戶可以不可以再編輯作品斤斧;2.作品是否會多次審核早抠;3.需不需要記錄審核歷史;4.用戶作品是否需要有版本的控制撬讽,如要產(chǎn)生版本蕊连,版本又是如何產(chǎn)生的;5.審核通過后游昼,用戶可以不可以再修改作品甘苍,若不可以,那么是不是其他人就看不見用戶作品......話說回來這只是一個簡單的邏輯需求烘豌!但是涉及的細(xì)節(jié)卻是太多太多载庭。我們往往在編碼的時候?qū)懖幌氯ィ褪且驗榻o的需求太模糊,沒有細(xì)化到點上囚聚。
4.換一種方式說“不能實現(xiàn)”
不能實現(xiàn)靖榕,這句話想必我們都是經(jīng)常說。但是直接對產(chǎn)品經(jīng)理說靡挥,沒準(zhǔn)會讓產(chǎn)品經(jīng)理抓狂序矩。因為我們會讓他們覺得他們提出的任何需求,我們都不能實現(xiàn)跋破。但是事實并非如此簸淀,因為不能實現(xiàn)是有條件的,比如時間不夠毒返。所以我們要先認(rèn)同產(chǎn)品經(jīng)理的觀點(“能實現(xiàn)”)租幕,再提出自己實現(xiàn)他的需求的條件是什么。因為現(xiàn)實產(chǎn)品經(jīng)理也不會經(jīng)常犯傻拧簸,經(jīng)常提出一些不合理的需求劲绪,但是面對需求,我們需要評估實現(xiàn)的時間盆赤,而且這個時間不是那么容易評估準(zhǔn)確的贾富。
5.當(dāng)遇到不合理的需求時,積極尋求替換方案
就拿段子里面的需求來說牺六,讓我們提供幾種APP皮膚給用戶進(jìn)行選擇颤枪,肯定比原先的需求容易實現(xiàn),而且也更加符合人性化淑际。說另外一個故事畏纲,有家智能家居的公司,要實現(xiàn)廚房水龍頭春缕,根據(jù)人聲說水溫幾度盗胀,就可以達(dá)到幾度。換個角度想锄贼,你會感覺出40度和45度水的溫差嗎票灰?而且根據(jù)人聲判斷,這又涉及到聲音識別系統(tǒng)宅荤,你要兼容多少種語言米间?其實我就覺得左右切換就挺智能的,完全沒有必要搞的那么復(fù)雜膘侮。所以程序員要找到一種更好更容易實現(xiàn)的方法屈糊。別給產(chǎn)品經(jīng)理的想當(dāng)然自亂陣腳。
6.必須遵循文檔精神
在開發(fā)的時候琼了,我們往往會另外與產(chǎn)品經(jīng)理進(jìn)行細(xì)節(jié)化的討論逻锐。但是這種討論結(jié)果夫晌,我們并沒有記錄到產(chǎn)品原型里面或者需求列表里面。但是過了幾個月后昧诱,我們自己往往會忘記我們當(dāng)初為什么會討論出這樣或者那樣的一個細(xì)節(jié)晓淀。所以一切的需求必須是根據(jù)的。從另一方面來說盏档,也保障了雙方的利益凶掰,別等到出問題的時候,不知道是誰的責(zé)任蜈亩,而在這一方面懦窘,程序員往往很吃虧。
6.對自己的程序有一顆藝術(shù)的心
有人說過稚配,當(dāng)需求影響到代碼擴(kuò)展性的時候畅涂,會首先砍需求,而不是改代碼道川!在一定程度上午衰,我是認(rèn)同這句話的。在我看來冒萄,程序是一件思想上的作品臊岸,要達(dá)到藝術(shù)的境界,從功能尊流、體驗和邏輯上都必須是合情合理的帅戒。就像一件藝術(shù)品一樣,看起來是渾然天成的奠旺!因為一件看起來很“丑陋”作品蜘澜,一定是不符合人的邏輯和習(xí)慣的施流。
寫到最后响疚,感覺繞回到程序員自身了。其實跟產(chǎn)品經(jīng)理溝通瞪醋,最重要的是要明白到:我們是在解決問題忿晕,而不是在制造問題!主要抱著這個核心银受,一切問題迎刃而解~~