这个需求的目的是什么?
文章來源:公眾號-智能化IT系統。
程序員每天最不希望見到的是什么,除了BUG,估計就是需求了。每當見到新需求,大部分程序員的內心是掙扎的。并不是因為不希望做,而是怕因為需求導致一連串的問題。小編深有體會。
下面是一個實際的案例:
某知名互聯網公司,在早期開發了一款音頻播放器,在每一次用戶關掉播放器,第二次打開的時候,播放器會在上一次關掉的播放位置開始播放。產品上線后,引發了很多用戶的投訴。不認可這種方式。 后續通過了解,發現這一批用戶是音樂發燒友,都是聽歌曲的。這樣不難理解用戶的痛苦了,你一打開播放器,就從歌曲的中間高潮開始,那誰不爽? 于是,新的需求來了,每一次播放器被關閉后,下一次都從關閉的那個音頻源的最開始進行播放。 本以為平息了,可以新功能上線后,沒過多久,產品又引發了大批量的用戶投訴。不認可修改后的這種方式,甚至抗議更大。 后續對這一些用戶也進行了溝通了解,發現這一批用戶是聽評書的。這下啥都不說了,人家不煩才怪。 緊接著,團隊徹底的分析了下,針對音頻源,時長,做了不同的判斷,針對不同的類型做不同的處理。這樣,問題才得以解決。 |
?
從上面的案例中,在第一次提出產品要進行修改的時候,相信產品人員提出的需求是:請把播放器的邏輯進行調整,播放器被關閉后,下一次都從關閉的那個音頻源的最開始進行播放。可能當程序員接到這個需求時,自己也是想不到,這個需求是白做的,做了后面還是要改。這確實是很多程序員郁悶的地方。
但是程序員能否自己把關需求,減少無謂的工作和返工呢?答案一定是能。關鍵是是否足夠的換位思考,找到根本原因。
?
我們再看一個案例。
某團隊給一個知名酒店做了一個酒店的管理系統,提供給酒店的工作人員進行管理操作。有一天,團隊收到了酒店方的一個需求:希望后臺管理系統有一個新的模塊,其中會展示酒店每一層的平面圖,清晰的標識出每一間房間,并且用不同的顏色區分該房間當前是否有人入住。 這個需求涉及到的工作量是不小的,首先要用工具畫好平面圖,以及做上后臺交互,也要區分顏色,前端也要做校驗。這時團隊成員開始和酒店方咨詢需求的細節,很多人問了一些問題: 1. 除了這些還需要有什么功能么? 2. 顏色有什么限制呢?最好提供下你們覺得喜歡的顏色 3. 每一層一個頁面,還是所有樓層都在一個頁面? 酒店方一一給出了解答,這時,團隊一個剛畢業的同事,唐突的問了一個問題:這個需求的目的是什么,為了解決什么問題? 團隊很多“老司機”開始苦笑,不過酒店方還是給出了解答:因為我們想知道有哪些空的房間是相鄰的,這樣就可以滿足一些想入住的人員的需求,他們希望住到相鄰的房間。 這個時候團隊有人開始沉默了。 因為大家都逐步意識到現在酒店方人員說的才是原始需求,而之前提出的不過是他們認為的解決方案。而這個原始需求是很好滿足的,只要在后臺查詢SQL稍作調整,就能很輕松的查出相鄰的房間。這個需求兩個小時之內就可以完成了,也根本就不用搞什么平面圖來實現。 |
?
為什么我們的需求經常會改,原因有很多。但是很重要的一點,就是因為提出需求的同事,很多時候提出的并不是原始的需求,而是他們認為的解決方案。很多時候程序員就會被繞進去,從一個錯誤或者并不完善的解決方案中越走越遠。
?
這個需求的目的是什么?這句話看似簡單,但是至關重要。找出客戶心中的原始想法,然后針對原始需求,定制一個完整的解決方案,可以極大的減少反復的工作,并且通常能增加客戶滿意度。程序員的工作也會慢慢“舒適”起來。
說白了,也就是換位思考,多理解客戶的想法。其實這種情況在工作中出現的幾率是很大的。為什么會這樣,原因也有多種:
1. 有時候客戶會有“不給產品人員添麻煩”這種心理,就在原始想法出來后,自己想一個解決方案,覺得這樣需求就顯得簡單了。而產品人員同樣會有這樣的心理,不給程序員添麻煩,想把需求簡單化。但是其實效果是適得其反的。
2. 人性本質。人越大,越是包裝自己的原始想法,這很正常。一個3歲的孩子,口渴了會說:媽媽我要喝水。但是一個30歲的男人去到丈母娘家,口渴了,恐怕就不敢這么直接,可能會說:媽,我聽說您這買了上好的茶葉,可以品嘗下么?
3. 也不排除一些強勢的客戶或者產品經理,認為我說的方案就是對的,原始需求只要我知道,我的下游就是給我完成任務的。
4. 小編沒想到的種種原因。
程序員并不是流水線工人,更多的是系統的主導者。每天的工作“常規”化,是程序員的大忌。要清晰的知道解決方案和原始需求的區別,當接到需求的時候,搞清楚到底是原始需求還是解決方案,多思考,多溝通,這樣一定能規避一些常見的問題。
———————————————————
公眾號-智能化IT系統。每周都有技術文章推送,包括原創技術干貨,以及技術工作的心得分享。掃描下方關注。
總結
以上是生活随笔為你收集整理的这个需求的目的是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公钥加密以及混合加密
- 下一篇: OpenCover+ReportGene