聰明人驅動開發

某公司(對,是某公司,這就意味着很多人看到這篇文章可以理直氣壯的說,這不是在說我,我們不是某公司,至於到底是誰,可能智者心裏最清楚)的幾個程序員(記住,這裏的程序員是地球上某個地方的人眼中的那些敲代碼的)接到了一個項目,要在 3 個月內完成一個一般項目組要半年才能完成的系統。他們除了項目經理口中所描述的客戶需求和一份密密麻麻的用戶需求規格說明書之外,幾乎得不到用戶其它的反饋。

項目在一次啓動會議上就這樣開始了。

接下來就是不計其數(其實再不計其數也超不過 90 次)的加班,他們都很相信自己的實力,也相信時間能夠解決一切――因爲一天 8 小時工作之餘還有其他 16 個小時。臨近 3 個月末,程序員們幾乎到了崩潰的邊緣,但是大家心裏都有個信念,那就是堅持過 3 個月就可以解放了,於是肅寂的深夜裏他們又精神起來。

3 個月的期限到了,大家終於拿出了一個勉強可以用的系統,雖然仍然漏洞百出, bug 不斷,但他們也收穫頗豐,無數個臨時解決方案、口頭協議、與代碼脫節的文檔、沒有註釋和縮進的實現、連自己都說不清楚能不能用的代碼 這一切,他們都有一個共同的理由:時間不多,我們已經顧不得那麼多浪費時間的事情了。

但是,正當大家認爲可以鬆一口氣並計劃週末行程的時候, QA 組卻報告了甚至比用戶需求還多的問題列表,其中大部分問題都可能會導致系統失敗。

而正當大家沮喪且不知所措的時候,項目經理的反應似乎出人意料,在一個漫長的內部評審會上,他平靜的做出了項目延期一個月交付的決定。

於是,接下來的一個月大家遊走在自己親手製作的代碼迷宮裏,過着修改一處 bug 會帶來 3 處新問題的日子, 3 個月後可以放鬆的希望早已消失的無影無蹤 就這樣,大家最終還是用了一個多月的時間把一個補丁摞補丁的系統交付給了客戶。

到這裏,我們的勇士們似乎雖不完美但也自豪的完成了任務,但事實並不這麼讓人隨心。客戶看到系統之後,發現了(這是一定的,系統的問題能欺騙自己但欺騙不了用戶)另一批問題,然後是修改、交付、修改交付 啊哈,我們的故事又得以重複的繼續了

這段故事結束已經是將近 7 個月之後的事情了,最終的項目驗收會上,程序員們才真正明白客戶方其實是計劃在 6 個月完成這個項目,而客戶爲了保證順利上線,他告訴項目經理需要 4 個半月來完成項目,而項目經理則爲自己留出了另 1 個半月的緩衝期,可憐的程序員們只得到了一半的時間來完成這項任務。

到這裏,我們好像沒看到一個傻子,故事是被一羣聰明人驅動着,但事實卻似乎並沒有偏袒他們,問題出在哪裏呢?

怪圈 1 客戶認爲開發方交付的系統一定是有問題的,所以他必須給自己留出緩衝期來修正這些問題,而緩衝期佔用的時間會導致開發方無法交付出高質量的系統。這一怪圈也體現在項目經理身上。

怪圈 2 所有人都是在爲了節省時間努力,但最後卻比計劃用的時間還多――即便是之前已經考慮到了緩衝期。

怪圈 3 貧瘠的溝通和過深的溝通層次導致了雙方的不信任,從而使每個人都進入防禦狀態,而防禦狀態又進一步阻礙了溝通。

這些大家“耳熟能詳”的現象,幾乎已經成了業界的殺人滅口必備道具。人們都在很努力尋找各種方法試圖擺脫它們,卻始終沒有走出過這些圈子。

那麼針對這幾個怪圈我們應該怎麼解決呢?

1、    多次交付。  

緩 衝期是降低風險的有效手段,風險又來自於信任度,交付次數太少會使客戶無法及時掌握項目情況,影響客戶信任度,而信任度不足會導致客戶(包括你的上司)爲 自己設置緩衝期,從而壓縮實際開發時間。因此,用多次交付代替一次交付,可以將風險和誤差分攤到每次交付中而不是最終的一次――即便是多次的誤差之和要多 於一次交付的,就像人們可以忍受每天班車晚點 2 分鐘,也不可忍受它一個月基本不晚點但會有某一天晚點 30 分鐘。

2、    有效時間才稱爲時間。  

怪圈 2 是我們大家常常會走入的誤區,認爲時間可以以穩定的比率換取價值,但這似乎只是一廂情 願,不同的任務、不同的開發人員、不同的過程模型,時間與價值的比率是不同的,有的甚至是負值(俗稱幫倒忙),再多的時間浪費在比率不高的任務上,只會讓 整體速度降低,最終得到時間不夠的假象。一般負比率的時間投入有,重複性工作(重複代碼、重複過程、翻譯代碼的文檔等等)、誤導性工作(錯誤的註釋、脫節 的文檔)、資源透支(頻繁加班、臨時性解決方案、不切實際的進度安排)、過度工作(過度設計、超出需求前提的實現、完美主義)

3、    現場客戶。  

現場客戶可以增大客戶對項目的瞭解程度,及時的對需求做出變動,保持項目相關者最及時和暢通的溝通,這樣不但可以降低“開發方交付的系統一定有問題”這一想法的出現機率,開發人員也可以得到最直接的反饋和最合適的工期約定。

或許這個故事所暴露的問題不僅僅是這些,但再多的問題也需要正確的方法和大家共同的努力去逐個擊破,所以在此拋磚引玉,希望自己的點點想法能爲大家帶來一些幫助――哪怕是反面教材,也希望給各位看客帶來寫什麼。

哦,對了,故事的結尾應該交待一下最終 BOSS 的情況,雖然不像童話故事那樣浪漫,但客戶方領導的辦公桌上確實放着一份寫有“ 本項目計劃在 8 個月的時間內上線運行 ”的文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章