尋找需求以外的價值,為價值而創新,成為軟件開發的關鍵

尋找需求以外的價值,為價值而創新,成為軟件開發的關鍵

在一個項目團隊例會里,Team Lead講了一件最近團隊裡發生的事,客戶(他在團隊裡的角色是PO)要求做個查詢功能,看起來很簡單,我們寫好代碼,測完沒問題就交客戶了。客戶收到也測了一下,很生氣,說這個查詢查一次要花幾十秒,這讓用戶怎麼用?你們怎麼能這樣對待工作?


我們做完確實測過幾條數據,覺得沒問題。客戶用上萬條數據測試發現有效率問題,我們工程師不高興:你又沒說要查多少數據,多長時間查完算合格?


客戶當然可以把這類非技術需求也寫清楚,但我們的價值就只是實現它?瞭解一下客戶的使用場景,除了性能問題,還可能有其它問題——如果我們能夠發現,那就是需求以外的價值。如果我們要求客戶把這些要求都寫出來,我們只管實現,可能不如客戶去自己實現來的更快,成本也可能更低,或者隨便找個外包公司(程序員)都能做,找我們價格那麼高,圖什麼?


尋找需求以外的價值,為價值而創新,成為軟件開發的關鍵

我最近接觸一個支持、維護類項目,客戶每個迭代發一些Tickets給我們,可以理解成正在運營系統裡的Bug。有時3、5分鐘我們就可以搞定一個,從局部、技術的角度看,問題確實沒有了,但我們可能不知道整個系統是怎樣運作的,架構是什麼,以及為什麼設計這樣的架構?表面上解決了一個問題,但可能帶來了整個系統更不穩定,更加難以維護。


如果我們先去了解架構,瞭解業務,再給出方案,解決同一個問題,我們可能要花十倍的時間。我們擔心這麼做客戶不理解,嫌我們太慢,沒有"產出"。不僅客戶,甚至也過不了我們的團隊負責人那一關。

遺憾的是,無論固定價格還是ODC,我們都在關注"產出","效率",或"交付"。"價值"很少被提及,因為"價值"被認為是客戶的事情,客戶要我們做的軟件沒有價值,或價值不大,當然是客戶自己的問題。客戶不應該自己把"需求"弄清楚嗎?


盛安德建立只有十幾年時間,這十幾年的經驗告訴我們,高價格,或者不斷提高的價格是盛安德賴以生存的基礎。這與傳統行業不同,傳統行業都在絞盡腦汁降低價格。一個外包公司不斷提高自己的價格,明顯與外包市場的客戶需求背道而馳。但提高價格是我們生存的基礎,我們只能改變自己的定位,尋找甚至創造一個新的市場。


外包市場並不適合我們,我們要成為一家提供創新服務的軟件公司。

我們創新的價值來自客戶需求之外,如果需求是客戶對自己所面臨問題的解決方案,我們的創新來自對客戶所面臨問題的重新審視和分析,併為客戶提出新的,至少是改進的解決方案。這些方案不可能被一次性提出,而是隨著項目的進行,在客戶的參與和協作的過程中,不斷髮現和完善的。


每一個程序員,乃至整個項目團隊,要知道我們每天的工作和最終的交付物都是開放和未知的,沒有一個既定的結果等待我們交付。交付最大價值即是團隊終極目標又是個體每項工作的目標,團隊最大價值很大程度上依賴個體對價值的追求,個體對價值的追求正是敏捷理念的基礎。


對價值,而不是工作量的追求,讓每個人的工作很難被直觀衡量,難以衡量就難以被管理,所以自我管理就很重要,團隊要靠相互信任而不是命令工作,客戶也必須成為團隊的一員,而不是甲方。老爺式的甲方管理,最後只能落個害人害己的結果。好在這種情況在我們的ODC裡不常見。

如何尋找需求以外的價值?

沿著需求向上找,這份需求要解決怎樣的問題?這個過程可以分兩步。

1、現有業務流程是怎樣的,需求是否為實現現有業務流程提供了可行的方案,至少要了解到軟件的應用場景,再去看需求,就知道為什麼會有這樣的需求。即使我們不去改進需求,至少不會做錯,變成無用功。

2、藉助信息化和我們的技術手段,現有業務流程有沒有優化的空間?這個要求高一些,但我們也有很多團隊和程序員能做到這一步,當然,這也和客戶對需求/業務的開放程度,及開發過程的敏捷度有關。

總之,我們的ODC模式,要求每一位工程師,都去關注需求以外的價值。只有如此,我們的價值才不會被需求限制,被"別人"限制,它只取決於我們的創造力,和我們自己的選擇。用哪吒的話說,這叫"我命由我不由天"。

尋找需求以外的價值,為價值而創新,成為軟件開發的關鍵


分享到:


相關文章: