最近項目收尾,看似就快到終點了,可是也磨了近一個月還沒結束。今早起來仔細想想,都磨在哪了呢?其實無外乎兩個方面:微調和debug。對比了最近一個月的工作日誌和前一個月的日誌,差別真是大啊。前一個月都是一周幾個功能,後一個月幾周都在針對一個功能調整。這確實是那所謂二八原則的一個體現。
其實項目也經曆了很多,對這樣的過程也毫無意外感,但這次只是想對微調這個東西思考一下。微調或者稱為打磨也可以,說白了就是功能都基本完了,在介面、操作或一些流程上做最佳化,提高軟體的易用性。這部分說起來容易做起來難。
其一目標不明確。
在項目初期很難定義出需要打磨的東西。一般是在大部分功能完成或系統整合之後才能明確的東西,甚至於在使用者使用了系統之後才能明確的東西。如果是產品,那這塊的空間就更大了,因為不是客戶定製的東西,所以為了未來的銷售做再多的打磨都不為過。
其二不能光明正大。
目標都不明確,如何估計時間和工作量。在項目初始很難把這部分的任務量估計出來,就算要做軟體報價也不能把這部分直接寫出來,因為客戶看到之後一定覺得太有欺騙性了。所以要不就把時間和預算平攤到其它環節,要不就根本沒考慮這部分。悲劇總是這樣一次又一次準時上演。
這個問題怎麼解決呢,我想針對定製的軟體項目和一般的產品要按不同思路來處理。
定製軟體項目這塊涉及很多因素,我覺得最重要的就是溝通。在項目開始前和客戶好好溝通,讓他們意識到有這麼個打磨環節在裡面,會花費大量人力和時間,會提高軟體品質。在開發中與客戶保持聯絡,多對原型系統進行測試評估,爭取能早日得到反饋。在後期多與客戶協商,不是所有要求都能滿足,爭取能達到雙贏。說到底就是千萬別繞過這個問題,別藏著掖著,這樣等到最後就比較難看了。
產品這塊其實是市場、開發人員和老闆的一個相互協商。市場需要好的東西,開發人員希望工作量少一些,容易開發一些,老闆希望快一些,少花點錢。這幾個角色是互相制約的,必須在這中間取得一個平衡。這道理在這裡說了也是白說,這個平衡全天下估計也難有人能做好。像蘋果的IPhone4手機和IOS系統,我想毫無疑問是經曆過漫長的打磨曆程的,在喬幫主沒有把錢花光之前,沒把設計人員和程式工程師累死之前,給了所有使用者一個接近完美的產品。這個過程不可複製,不可模仿,因為大部分人都是把錢花光了,隊伍散了,產品還一塌糊塗。
每當我聽到有些開發的人三周可以交付一個項目,我總覺得很不可思議。直到公司找外包做網站時我才理解,那真是1000塊錢,幾天就出了。但是,那做出來的東西只能用垃圾來形容。所以我還是堅信一個成功的項目,一個好的產品絕對不可能在短時間內完成的,就像21天學通c++那樣也是不可能培養出一個優秀的軟體開發工程師。
軟體後期完善的這個過程就像圍棋的收官階段,雖然大規模攻城略地已經結束,但邊角旮旯的處理能力也同樣是決定勝負的關鍵因素。