觀察到的需求
2008 年 9 月 16 日
以下是我最喜歡的軟體開發引言之一
需求是開始建構產品前應該先釐清的事項。在建構過程中,或更糟的是,在客戶開始使用產品時才發現需求,代價昂貴且效率低下,我們假設沒有人會這麼做,因此不再贅述。
-- Suzanne 和 James Robertson
這是他們所著「掌握需求流程」一書第一版的開場白。常讀我文章的讀者可能會猜到,我喜歡這段話並非因為認同其內容。我喜歡這段話是因為它總結了瀑布式開發方法對需求的價值觀(事實上,「需求」一詞本身就具有瀑布式開發的性質)。
敏捷方法違反了這個基本假設,打算在建構和交付過程中發現「需求」。但即使如此輕率地無視上述明智建議,也比不上許多領先網站現在所做的。這些網站透過觀察使用者在網站上的行為來探索需求,並利用這些資訊產生新功能的想法,如下所示
- 觀察人們試圖在網站上做什麼,並提供更簡單的方法讓他們執行。
- 觀察人們放棄做某件事的地方,並找出方法解決讓他們感到沮喪的問題。
- 建構新功能並觀察人們是否使用。
- 建構實驗性功能並提供給部分使用者。你不僅可以看到他們是否喜歡,還可以評估它對伺服器的負載。
為了支援這種分析,你需要在應用程式中新增使用者記錄行為,並建構一些工具來分析這些記錄。許多記錄會免費出現在網路應用程式中,我懷疑這是人們開始這麼做的主要動力。但隨著記錄和分析新增到應用程式中,它們可以進一步擴展。
我尚未在網路上找到太多關於如何執行的建議,我也沒有聽說太多關於實際執行的討論。像許多事情一樣,它需要集中精力花時間建構監控能力,然後使用它來探討如何改善軟體。此外,這與傳統軟體流程(即使是敏捷專案)有很大的不同。
但這裡有很大的潛力。每個人都知道人們所說他們想要的東西和人們實際需要和使用東西之間的差異有多大。透過觀察人們實際上如何使用您的應用程式,您可以找出軟體實際上發生了什麼事 - 這可以提供比其他來源更直接的資訊。因此,我認為更多團隊應該考慮將這種方法新增到他們的工具箱中。