實施項目--為什么開發人員一直在抱怨需求變動


  幾年前的某個時候,公司大伙都等着下班我卻等着晚上加班,因為產品經理對產品的某個功能進行了調整和修改,我必須加班將其修改完善。對於這種事情我已經數不清了,產品經理的每一次變動都得讓我們技術部門的同學們加班到深夜甚至到天明,如今回憶起來歷歷在目!今天這個文章我們不談論是誰的責任,也不去抨擊產品經理的無能,說說技術人員為什么總是在抱怨需求在變動這些事, 希望大家踴躍討論。

 

  一. 抱怨現象

    最近我做了實施人員,經常到各個客戶工廠去給他們實施項目,在這個過程中我了解到了軟件的真實使用者,在這之間我就成為了客戶和公司技術人員的傳話筒,因為我本身也是做技術出身所以這樣對消息的轉化也就有了一定的優勢。最近幾次我在回來的路上一直再想同樣一個問題,為什么技術人員總在抱怨需求的變動,之前我做開發的時候也是在抱怨,現在換了新人我給他們傳話他們同樣在抱怨,這是為什么?

    案例一:

    前面的文字中說道過給客戶做的一個倉庫電子看板,這個里面經歷了幾次較大的改動,每一次我回來給公司的技術人員反饋問題他們總是那么的不耐煩甚至抵觸。

    第一次給客戶做的效果原型示例圖如下:

    

    分為兩個部分,兩個都是一樣的只是顯示內容不一樣而已,一個是進料信息一個是出料信息。

    第二次客戶要求在下面添加一行文字:

    

    這次添加的是下面的滾動文字,界面展示效果堪稱不錯,現場屏幕測試也完全OK。

    第三次 客戶要求下面的滾動文字可以替換,也可以不顯示或者不滾動

    第四次 客戶要求字段顯示的行數可以自定義

    第五次 客戶要求字段滾動的速度可以自定義

    第七次 客戶要求界面數據刷新數據的頻率可以自定義

    ............

    到了這個時候技術人員火了,MD天天改,天天這樣改,有完沒完?

    案例二:

    客戶之前做統計報表都是Excel自己統計的,而且統計的還有模有樣,在Excel中制作的非常漂亮而且顯得非常專業,后來公司上系統了需要在系統中能夠自動生成這樣的報表,這里貼一個示例圖看看客戶的要求。

    

    以上表格式Excel中的,客戶要求在系統頁面上顯示一個這樣的報表格式。因為使用者非技術人員之前就是一直用Excel這樣做的,要求就是給他們做成如圖的樣子就可以了並且數據正確。

    公司技術人員拿來之后一看這個報表也不怎么難嘛,很簡單,數據在系統中都可以統計得到。

    (1) 課題年份和獲獎年份有啥關系

    (2) 課題年份和課題數有啥關系,課題研究如果當年沒有完成直到第二年才完成算哪一年的?

    (3) 客戶研究是以小組的形式來展開的,他們和小組是否有關系,表格中並沒有體現小組的信息

    (4) 課題和成果之間的關系是啥,怎么好像數量關系沒有直接聯系啊

    (5) 課題和獲獎是否有直接關系啊?

    (6) 有了成果是不是就一定能夠獲獎啊?

    ..............

    后來開發人員懵了,這是啥子需求哦,改一個不是這樣的,該另外一個又不是這樣的,客戶又表述不清楚你想知道的東西,你確認一直認為客戶所要的東西變了和第一次說的不一樣啊!一個這么簡單的表格到了最后花了時間,花了人力,最后結果還是一團糟.

 

   二. 客戶不清楚最終想要什么

    以上兩個案例都是最近我實施過程中的真實案例,我們用事實說話不做虛假假設。在最近的工作中類似的經歷非常之多,這里只是舉兩個例子【我們這里說的是問題,如果哪位高人想說這表現出你們團隊協作能力較差,或者公司整體能力不行等麻煩不要看此文了,這個問題不在此文章討論,后續再說這些問題】。

    案例一分析:

    (1) 客戶頻繁的要求修改這些那些,說明客戶自己本身也不知道需要做什么怎樣的界面,界面需要展示什么數據。這是一個很正常的現象,如果客戶這些都全部清除你也就只有碼代碼的份了,處理碼代碼的體力勞動你沒有價值了。

    (2) 很多要求是在現場展示的時候提出來的,說明客戶很多時候就是隨心所欲,甚至拿着手機看到了一個非常漂亮的東西也想往上面貼。

    (3) 軟件是否適用要在真正環境下才能校驗"真偽",比如其中遇到的字體問題,在電腦上顯示非常好,但是在大屏幕上顯得非常小,遠距離觀看和近距離觀看還是有差別的。

    (4) 開發人員只是一味的跟着客戶的節奏在走,客戶說什么就是什么,說那里有問題就改哪里,最終代碼沒有結構性,滿是補丁的可以勉強運行,只要再修改里面千瘡百孔。

 

    以上總結幾點基本可以歸納出來在開發的過程中為什么會一直出現不停的修改,於是這也苦了開發人員,沒辦法那個誰說的"客戶就是上帝"。

 

  三. 開發人員未能真正理解需求

    案例二分析:

    (1) 技術人員太小瞧了一個簡單功能的開發.這里我一定要將這個排到第一點,個人覺得這是態度的問題,對於問題處理的態度問題。

    (2) 技術人員對給出的淺顯得需求未能去深入挖掘,不然不會到了開發過程才發現年份之間關系有問題。

    (3) 非專業人士的表達不能夠理解是因為技術人員沒有站在使用者的角度去想這個問題並且表達出來(我承認這個有點難度,但是作為有價值的的技術人員必須學會這么做)。

    (4) 發現問題沒有去歸納總結,而且沒有及時去反饋問題,也沒有去溝通問題。

    

  四. 案例分析總結

    以上單獨分析了兩個案例,一個案例問題出現在客戶這邊,一個案例問題出現在開發人員這邊,我這里暫且這樣划分。

    總結一下導致需求變動的原因:

    (1) 客戶本身不清楚自己具體要做成什么樣子,而且客戶的想法較多

    (2) 客戶現場的真實環境導致你某些程序不能滿足(適應環境,有機會影響環境,生物的適應性)

    (3) 客戶不能正確表述他所要的東西,雖然他心里非常清楚想要這個,和程序員一樣語音組織表達能力較差(實際上需求沒有變,表述不一樣理解不一樣)

    (4) 開發人員小瞧了簡單的業務需求,沒有深入去挖掘潛在的問題和需求,問題最終逐步暴露出來

    當然需求的變動還有很多其他的原因,比如市場的需求變動,客戶操作習慣的變動,業務的發展變動這些都會直接導致程序需求的變動,以上的原因導致的需求變動就足以讓技術人員叫苦不迭了。

    

  五. 技術員能不抱怨么

    說來很奇怪,我一直認為技術人員就是”很奇怪的動物”,從開始工作的那個時候開始走到哪里都能夠看到抱怨的程序員,沒有一個公司的程序員對需求變動不抱怨的,但是最終抱怨之后還是默默的修改變動的需求,說明程序員都是善良的!偶爾會抓狂但是他們還是會默默付出。

    對於后來我介入了這兩個功能的開發,並且做了一些工作來調整這樣的狀況:

    案例一中我自己在紙上羅列一些環境和硬件清單:

    1. 客戶屏幕分辨率使用的是1280*768,最大分辨率支持1990*1280,剛好公司有這樣一個屏可以模擬測試。

    2. 客戶使用xp系統(使用的工控機,沒得辦法),那我們也安裝一個xp系統,虛擬機就好[建議盡快拋棄xp系統,這個系統現在的確非常頭疼]

    3. 遠距離看屏幕字體大小,不要在電腦屏幕上看

    4. 需要自定義動態設置的參數全部羅列,顯示數據行數,字段數,刷新頻率,翻轉時間,滾動文字等等,每一個都具體在紙上羅列,然后對着去實現

    5. 問題分析主次,畫好數據傳輸的邏輯圖,問題優先級分等級,哪些問題是有關聯的,程序層次關系等等

    6. 交給另外的人員來測試,沒有參與過開發的(很是慚愧我公司沒有測試人員)

    案例二中我給開發人員指出一下幾個問題:

    1. 課題年份和獲獎年份的關系, 我先假設幾種關系,使用窮舉法:

      (1) 課題研究是否獲獎要到第二年才確認,甚至是第三年

      (2) 課題研究是否獲獎一定是在第二年確認

      (3) 課題研究是否獲獎一定是在當年確認

      (4) 課題研究和是否獲獎本身沒有任何關系

    2. 課題成果和獲獎之間的關系,同樣先假設幾種關系,使用窮舉法:

      (1)  課題研究有成果就一定能夠獲獎

      (2)  課題研究有成果可能能夠獲獎

      (3)  課題研究成果和獲獎沒有關系

    .........

    上面是簡單羅列的問題,我相信如果你能夠將這些問題羅列出來,說明你解決問題的思路已經非常清晰了,這個思路和技術無關,也就是你已經明白你要做的東西了。同樣你清楚這些東西那么你就很容易去有的放矢,針對具體的問題解決問題,而不是盲目的去修改代碼然后編譯一次交給實施人員去給客戶看行不行。對應客戶自己本身不能表訴那么你就從他表達出來的內容拆分幾種假設,然后你可以以你的專業語言去描述給他聽,他自己要明白你描述的是否是他想要的東西問題就解決了。

    我當然知道技術人員的抱怨是必比不可少的,我工作也有些年了,到現在還避免不了偶爾去抱怨一下,就跟家庭生活一樣偶爾也會有煩心和不愉快的時候,如果你坦然去接受面對這些問題我相信你會從容很多。

 

  六. 總結

    (1) 永遠不要奢望客戶清楚的告訴你他們想要什么東西,更加別異想天開的他們會給我們整理一份非常完美的需求文檔(如果有客戶為你做了很好的一份需求文檔,那是因為你的善良感動了上帝)。

    (2) 客戶的問題是你發揮自己能力和體現價值的時候

    (3) 好的程序層次結構,代碼的健壯性能夠很好的應付客戶需求的變動

    (4) 你和你的程序一定要比客戶想的多,而不讓客戶為你想更多的問題

    (5) 深入挖掘客戶的需求,這個不會讓你吃虧的,挖掘需求也有很多辦法,只要你真的再為客戶想問題那么解決問題的方式一定很多

    (6) 沒有一層不變的需求,也沒有完美的客戶,更加沒有完美的個人,要坦然面對工作中的問題

    (7) 溝通是解決問題的最好最直接的方式,直接打電話不要使用QQ發消息留言(最反感QQ留言了,開發人員最喜歡QQ留言了,因為不敢給客戶打電話)

 

 

  本文到此結束,文中所寫只是個人經歷和感受,不存在任何的偏見,可能和一些人的意見和想法有出入,但是不影響各位對此話題的見解!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM