前言
大家好,我是艦長。
你現在閱讀的是 Data Observability 系列文,此系列文的內容是依據我 2025 在 DevOpsDays Taipei 2025 分享的 25 分鐘短講「資料可觀測性 Data Observability」,將簡報內容逐一拆解為多篇短文。
前一篇文章我們聊到**「如何妥善管理與應用 Data」並不只是一個純粹的技術議題**,作為開場讓大家知道其實 Data 有很不技術的一面。(謎之音:都是人的問題!)
在本系列文繼續聊更多 Data 的話題之前,今天我想要做一個比較,我們先回到軟體開發領域,看看軟體圈都在意些什麼事情。
一切都是為了替使用者帶來「價值」
如果你問軟體工程師,你們在開發軟體時,都在意些什麼?為什麼你會選擇採用某些軟體工程的實踐方法?你都在考量些什麼?
前述這些問題,你可能會得到許多不同的答案像是「為了寫出乾淨的程式碼」、「為了打造可擴展的軟體架構」、「想要導入最新的軟體技術」、「為了確保服務穩定」……。
讓我們再繼續追問,那為什麼要「寫出乾淨的程式碼」、「打造可擴展的軟體架構」、「導入最新的軟體技術」、「確保服務穩定」?
有 Sense 一點的軟體工程師可能就會回答你——為了替使用者帶來價值!
(謎之音:你確定軟體工程師會這樣回答你?)
乾淨的程式碼、良好的軟體架構與系統架構、高可靠性的服務⋯⋯這些都是「手段」或「產出」,而做這些事情的結果,對軟體開發團隊來說,當然就是為了讓團隊交付給客戶的軟體,是有品質的、高可靠的、可以滿足使用者需求的,是能夠為使用者帶來價值的。(謎之音:然後客戶樂意付錢,公司賺大錢!)
那麼既然我們聊到「價值」兩個字,到底裡面包含了什麼?
我自己覺得這是一個大哉問,因為每個使用者想要的價值不同,但多半會有一些常見的層面。
- 軟體在工程面的品質:也就是軟體有沒有出現令人傻眼的 Bug?會不會突然閃退?軟體背後的雲端平台是否可靠?能否因應大量暴增的使用者連線?是否有後門資安漏洞?
- 軟體的功能是否滿足需求:軟體功能再強大,但無法滿足使用者需求都是白搭。像是廠商宣稱軟體可以做到無痛的自動雲端更新,隨時保持在最新的版本,但客戶說不好意思我們家禁止連上外網;又或者是使用者想要一個可愛溫馨風格的UI,然後廠商端提供的卻是高冷賽博龐克風格UI。
軟體圈都做了些什麼?
前面聊完了價值,最後來看一看軟體圈做了哪些事情,是不是都是圍繞著價值呢?
首先,基本上我們可以說軟體工程的各種實踐,都跟幫助團隊能持續產出高品質、符合需求的軟體脫離不了關係。
像是我們會在意軟體架構 (Software Architecture),從 Monolithic 、SOA 到 Microservices。
又或者是程式碼的可維護性,我們有 Clean Code、SOLID 原則⋯⋯。
為了讓軟體有一個可靠的運行環境,讓環境管理更穩定,我們有虛擬化技術、容器化技術與 Cloud、Serverless、 Infrastructure as Code、GitOps⋯⋯
當然別忘了還有大鍋粥 DevOps、SRE、Platform engineering。
軟體圈有各種不同的關鍵字,分別在不同層次幫助團隊可以更快、更穩定的將價值交付到使用者手中。
小結
好了,字數差不多了,我們就在此快速做一個小結。
今天這篇短文其實也是一個鋪梗,我想要讓大家思考一下,軟體圈從古至今的這些方法論、實踐、Keywords 都在做些什麼,都在關心哪些議題,以及解決了什麼問題。
然後順著這個梗,延伸想要問一個問題——「那在軟體圈,我們為 Data 做了些什麼?」
我們有針對程式碼、Infrastructure、軟體開發交付流程、軟體測試、軟體安全性⋯⋯做了很多事情,但是 Data 呢?針對 Data,軟體圈有做了什麼事情呢?是不是相較前面提到的那幾項,稍微生疏一些呢?(當然也可能只是我個人對此生疏,其他資深的軟體工程師對於 Data 也很熟稔。)
系列文連結
此系列文持續撰寫中,陸續更新連結。