天天看點

《超越需求:靈活思維模式下的分析》—第2章 2.4節發現和傳遞

本節書摘來自異步社群《超越需求:靈活思維模式下的分析》一書中的第2章,第2.4節發現和傳遞,作者【美】kent j. mcdonald(肯特 j. 麥克唐納),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

2.4 發現和傳遞

第三種對分析分類的方法根據我們何時進行分析來分類。劃分活動常常很有用,這可能是人們喜歡基于計劃的方法所描述的各種階段(分析、設計、開發和測試)的原因之一。将知識工作分解為不同活動有一定優勢,因為沒有哪一個人能擅長知識工作的每個方面,是以把活動分為不同的類别顯然有助于把事情分解為可管理的工作,并把焦點集中于不同的方面。

但組織這些工作的最好方式是什麼呢?當人們引用winston royce被視為瀑布計劃之源頭的論文(www.serena.com/docs/agile/papers/managing-the-development- of-large-software-systems.pdf)時,通常直接聚焦到展示了幾個不同階段的圖上,而這幾個階段是在建立大型系統時會發生的。但在第一頁有一個很有意思且常被忽略的圖,它隻包含兩個框,即“分析”和“編碼”,并帶有下面一段說明:

在所有計算機程式開發中,無論大小和複雜度如何,有兩個基本步驟是一樣的。如圖1所示,首先是分析步驟,然後是編碼步驟。如果工作量足夠小并且最終産品由建造者進行操作,那這種非常簡單的實作概念實際上就是所需要的全部工作——内部使用的計算機程式通常就是這樣。這種開發工作也是大多數客戶願意付錢的,因為這兩個步驟涉及真正的創造性工作,對最終産品的有用性産生直接貢獻。

royce繼續說到這種方法完全不适合大型軟體開發項目,并揭示了他對如何看待軟體開發團隊的一些哲學:

制造大型軟體系統的實施計劃如果隻有這些關鍵步驟,注定将失敗。很多額外的開發步驟是需要的,但沒有步驟像分析和編碼步驟一樣直接貢獻于最終産品,而且還推升了開發成本。客戶通常不願意為此付錢,開發人員也不願意實施這些步驟。管理的首要職責就是把這些概念推銷給這兩組人,并在開發人員方面執行合規檢查。

雖然我不同意這段話中的所有觀點,但我發現royce專注于分析和編碼作為客戶價值的兩個活動很有意思。我一直在尋找一些簡單直接的方式描述it項目中的關鍵活動,根據經驗,我傾向于把它分為“找出正确的事物來建立”和“正确地建立事物”。

ellen gottesdiener和mary gorman在他們2012年出版的《discover to deliver》一書中找到了合适的詞語來傳播這些概念。那就是:發現和傳遞。這兩個詞不僅具有頭韻,而且兩位作者進一步用一個無限符号包起來這兩個詞以表示這兩個活動如何互動并彼此影響,進而進一步鞏固了這些概念。終于有人聽到了這些概念,royce一定很欣慰。

這裡是gottesdiener和gorman對發現和傳遞的定義,我将在本書中繼續使用這樣的定義。

發現:探索、評估并為潛在傳遞确認産品選項的工作。

傳遞:把一個或多個已選擇的候選解決方案轉化為産品可釋出的部分或産品版本的工作。

這個概念最有用的方面是有一個标簽與不同類型的活動關聯。過去團隊已經從傳遞角度跟蹤進展,但經常沒有可視化發現活動。跟蹤尋找正确事物的進展和跟蹤建構解決方案的進展一樣有用,因而我常常将發現看闆和傳遞看闆分開,這将在第15章詳細介紹。

知識工作的方方面面都涉及發現的因素。當我們在建立、測試并部署解決方案時,仍然在“發現”關于需要和解決方案的知識。區分這兩個活動以強化每個活動的焦點是有益的。發現會增加針對需要和解決方案的了解,以便傳遞。傳遞主要是關于建立、測試和部署産出,而這些活動有助于進一步了解需要和解決方案,這反過來影響你的發現。當然,發現在傳遞過程中仍會發生,但主要工作是建立事物以幫助增進了解。

那麼設計在哪裡呢,為什麼沒有被稱為一個單獨的活動?一些設計發生在發現活動中,而一些設計發生在傳遞活動中。發現活動中的設計通過使用設計思維(design thinking)技術獲得對使用者更好的了解,通過模型、執行個體和驗收條件(将在第14章介紹)描述解決方案。babok v3區分了需求和設計,如表2-5所示,然後說到:“需求和設計之間的差別并不總是那麼清晰。同樣的技術被用來需求擷取、模組化和分析這兩者。需求會産生設計,這反過來可能推動發現并分析更多需求。兩者間重點的轉換往往是微妙的。”

《超越需求:靈活思維模式下的分析》—第2章 2.4節發現和傳遞

團隊基于技術選型和架構限制,在搞清楚如何在技術上實作使用者故事的過程中,設計就會發生。團隊針對設計展開初步讨論,但随着經驗增加會修改對設計的了解,這一過程中設計活動與開發和測試交織在一起。

是以,把設計作為一個單獨活動不會對整個流程增加任何價值,并且還會導緻毫無意義的争論——一個活動條目是在發現活動、設計活動還是傳遞活動中,然而在發現(準備進行疊代)和傳遞(疊代傳遞)之間明确的劃分會得到更加清晰的界限。

繼續閱讀