iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 24
0
Software Development

軟體開發隨筆談系列 第 24

軟體價值的層次與平衡

軟體的價值在於什麼?在於好用的功能嗎?在於好維護的架構嗎?在於容易看懂的程式碼嗎?每個人對於軟體價值或是核心理念追求之道可能都不盡相同,或許這些都是軟體的價值所在。但是所有人都無法反駁的其中一個價值,就在於有人會想去用、或有人正在用。

所以把軟體的最重要的價值定義,講好聽一點在能執行想要的功能,講難聽一點就是能跑就好,其實也不為過。我們在開發軟體時應當以能符合使用者需求這個價值為最大目標,當然在想要達到這個目標前,還有許多功課要做,但是以軟體的價值在於有用為最優先應該是無疑慮的。

但是,對於軟體價值的認知不應該止步於此。為什麼常聽到工程師在靠北老闆或主管,一直要求軟體可以跑就好,卻不斷地忽略工程師不斷表達要還技術債、需要時間進行討論與設計,就是在於這些人只看到雖然最重要但也卻表面的價值。

常聽到圈內把程式設計與其他領域做比擬,有時候是建築學、有時候是藝術。事實上這些都是在講述軟體的內部價值,也就是工程師們熱衷的話題,如架構、風格、可讀性、效率、自動化測試等等。這些內部價值因為過於專業,難以被外行人理解,但不能因為看不懂就忽略這部分的價值。

如果把功能性比喻成木桶的底版,功能性的價值高低決定底板面積,而讓軟體可以動、可以跑,就是組成木桶側邊的木板,能動的越多代表木桶的高度越高。那麼,內部價值就是這些木板的品質與接合方式,而木桶能裝的水就代表整個軟體的價值。

若是只注重外部價值,那麼無論這個木桶裝再多水,都可能會不斷的漏,甚至突然某塊木板崩掉一部分,導致水大量流出。若只重視內部價值,完成一個底板面積較小或是不夠高的木桶,我們能裝的水可能就不多。若很重視可以跑的功能,但卻都沒有打到使用者的需求,那就會是一個底板超級小的木桶,花了再多成本去打造良好的木板與黏合,裝的水可能連解渴都不夠。

所以儘管軟體的第一價值是在可以用的功能,但我們仍有許多層次的價值值得追求,也需要追求。不只要讓軟體可以用、還要讓軟體可以用的功能是實際需要的功能。不只要讓軟體有實際需要的功能,還要讓軟體用起來好入門、順手。不只要讓軟體有好功能可用,還要讓軟體好維護、好擴充,讓程式設計師開發時能夠開心。這些價值要到什麼程度,是需要取得平衡的,而這個平衡取決於產品的定位、用途、使用情境,就像一個雷達圖一樣,會有不同特徵的圖案。

在開發軟體時,不妨想想到底是要一個一次能裝很多水,但用個幾次壞掉的大木桶呢?還是雖然水裝的不多,但夠好用的小木桶呢?還是一個怎麼摔都摔不爛的木杯呢?到底追求的價值是什麼,適合用怎樣的平衡?這都是整個組織要去思考的。


上一篇
學會調整自身狀況也是軟體開發很重要的事
下一篇
分離需求與實作的討論空間
系列文
軟體開發隨筆談31

尚未有邦友留言

立即登入留言