敏捷開發文檔:互補還是互斥?

      網友投稿 796 2022-05-29

      如果敏捷是反文檔的,為什么會發布一個宣言?

      2001年,17位軟件開發、測試人員(其中包括Ward Cunningham、Jim Highsmith、Alistair Cockburn以及Bob Martin)共同發布了《敏捷宣言》,并正式提出敏捷開發方法,作為傳統文檔驅動、重量級軟件開發過程的替代方案。《宣言》提出了以下基本原則:

      個人和交互高于過程和工具

      工作軟件勝過全面的文檔

      客戶協作高于合同談判

      響應變化而不是遵循計劃

      似乎預見到這種簡單可能會導致誤解,《敏捷宣言》也對此進行了澄清:“也就是說,雖然右邊的東西有價值,但我們更看重左邊的東西。”

      即便如此,業內對敏捷開發方法的誤解和困惑仍然存在。“over”被“instead of”所取代,原本《敏捷宣言》的意圖是“最好把更多的注意力放在軟件上,而不是把時間花在過于詳細的前期文檔上”,現在似乎變成了“讓我們完全拋棄文檔,并希望我們記住討論的所有事情。”

      一、敏捷神話:“文檔并不重要”

      采用傳統IT項目方法的團隊會在項目的早期階段定義并記錄需求。隨后,這些需求將會被提交給開發人員,開發人員收到需求后便立即開始實施。

      雖然敏捷開發方法是作為這種文檔驅動開發過程的替代方法而創建的,但它并不打算完全消除內部文檔。由于軟件開發在本質上是動態的,因此,敏捷開發更重視工作軟件而非綜合文檔。

      敏捷開發方法中沒有任何內容會阻止團隊創建項目所需的文檔。事實上,在某些情況下,文檔是絕對需要的:將用戶故事添加到待辦事項列表中,以及創建流程圖、做會議記錄等。敏捷只是——敏捷只是建議在這方面團隊要聰明一點。

      文檔應該“剛剛好”。太多或過于全面的文檔會浪費時間,而且開發人員很少相信詳細的文檔,因為它通常與實際代碼不同步。另一方面,經驗表明,文檔太少始終是困擾溝通、學習和知識共享問題的根源。

      二、投資敏捷文檔的原因

      敏捷文檔的創建和維護對某些人來說是“不可避免的災難”,但對另一些人來說,這是一項愉快的任務。同樣,會有一些合理的理由讓你相信,值得在敏捷文檔上投入時間:

      項目的利益相關者需要它。從根本上來說,創建文檔是一個業務決策,團隊將利益相關者的資源投入到文檔開發中,因此他們應該對是否以這種方式花費他們的錢有發言權。

      支持與外部團隊的溝通。開發團隊總是位于同一地點是不可能的,并且讓利益相關者隨時待命也是不可行的。共享文檔通常是與偶爾的面對面討論、電話會議、電子郵件和協作工具相結合的解決方案的一部分。

      也不可能總是讓項目涉眾隨時待命。共享文檔通常與偶爾的面對面討論、電話會議、電子郵件和協作工具結合在一起,是解決方案的一部分。

      支持組織記憶。敏捷建模的原則之一是“實現下一個努力是你的次要目標”,這意味著與“工作軟件是你的首要目標”的原則相平衡。這意味著,團隊在開發軟件時,還需要開發使用、操作、支持和維護軟件所需的支持文檔。

      把事情想清楚。把想法寫在紙上的行為可以幫助自己鞏固它們,并發現自己思維方式中的問題。那些在腦海中看起來清晰而直接的東西,往往會被證明是非常復雜的,所以可以先把它寫下來。

      雖然以上所有的理由可能都是文檔化的合理理由,但我們總是問自己這樣一個問題:我們目前需要的最少可交付量是多少?

      三、如何在敏捷中編寫文檔

      1.敏捷文檔的4條原則

      敏捷中的文檔是“可變的”,需要整個團隊協同維護。為了充分利用我們在文檔上投入的時間,我們可以遵循一些簡單的原則:

      確保它總是“剛剛好”。請記住,創建的任何文檔都必須在之后進行維護。如果文檔簡單、不復雜、不太詳細,就更容易理解和更新。

      用“just in time”來寫。在記錄之前先耐心等待——這是避免積累錯誤和過時信息的最好方法。在需要的時候再生成文檔,而不是在需要之前生成。

      敏捷開發與文檔:互補還是互斥?

      將文檔放在一個容易獲取的地方。文檔只有在可訪問的情況下才有用,將產品文檔存儲在團隊成員可以輕松找到的地方。

      與團隊合作。在敏捷團隊中維護文檔是一個協作過程,應該鼓勵每個團隊成員對此做出貢獻。

      2.何時記錄

      敏捷中工作軟件的迭代交付有效地取代了很多(盡管不是全部)全面的前期需求文檔。其理念是盡可能保持文檔的簡單和輕量級,特別是在項目的早期階段。那么在什么情況下值得在文檔中投入時間呢?

      一個常見的敏捷實踐是盡可能推遲所有可交付文檔的創建,在實際需要交付文檔之前創建文檔。例如,系統概述和支持文檔最好在軟件開發生命周期(SDLC)的結束時編寫。從本質上講,這種方法是在等到信息最終確定后再捕獲它。

      另一種敏捷文檔的策略是持續文檔化。在整個項目中編寫可交付文檔,在更新代碼的同時更新文檔。這種方法符合敏捷的方法,即持續生成潛在的可交付的解決方案。

      然而,由于需求可能在項目的過程中不斷發展,因此需要相當多的時間來讓可交付文檔的保持最新狀態。從敏捷的角度來看,這又是一份“沉重的負擔”。

      在實踐中,敏捷通常會推遲編寫文檔,直到他們有時間這樣做,實際上,即使他們最初決定持續更新文檔,也會逐漸轉向文檔的后期實踐。

      3.記錄什么

      敏捷文檔中可能用到的文檔示例包括案例研究、圖表、表格和站點地圖。以下是在項目過程中會考慮創建的一些文檔:

      產品愿景:它是對產品核心的描述,是對當前的成本估算、預期收益、風險、人員配備估算和計劃里程碑的總結。這一文檔的要求是:保持簡短,直切要點。

      項目概述:這是與項目相關的關鍵信息的總結,例如主要用戶聯系方式、技術和用于構建系統的工具等。將其作為團隊新成員的起點,并在整個開發過程中對其進行維護。

      設計決策:這是團隊在整個項目中做出的與設計和架構相關的關鍵決策的概述。

      操作文檔:這通常是對系統所涉及的依賴項的描述,以及對備份過程的參考、故障排除指南等。運營部門可能會有此類文檔的標準格式。

      需求文檔:它是對系統功能的概述,包括用例、用戶故事或基本用戶界面原型等。旨在將需求捕獲為可執行規范。

      支持文檔:這包括專門為支持人員提供的培訓材料、故障排除指南等。與運營部門一樣,支持團隊可能有標準模板或示例來使用。

      系統文檔:提供系統的概述,包括技術體系結構、業務體系結構和其他高級需求。系統文檔有助于確保關鍵信息的留存。

      用戶文檔:它包括用戶參考手冊和支持指南。這一文檔的要求是保持簡單、易懂。如果需要采用大量的培訓來教會用戶如何使用該產品,那么解決方案文檔的設計就是有缺陷的。

      四、結論

      “我們接受文檔,但不接受數百頁從未維護過以及很少使用的大部頭。”

      — Jim Highsmith

      敏捷開發方法絕不是反文檔的。它只是提醒團隊不要編寫多余的文檔,并且在必要時盡可能保持文檔的簡單性。通過敲定某種格式和細節級別的,允許更改并能交付足夠價值的文檔,以保持團隊在正確的方向上前進。

      往期文章:

      從科學管理到豐田生產模式,精益是如何產生的?

      5S管理如何應用到軟件開發中

      5M1E,軟件質量管理最佳解決方案

      敏捷開發 軟件開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【云會議技術系列雜談|第三期】云會議已具備的功能
      下一篇:字節跳動《實時音視頻通訊技術》學習筆記之RTC概述及技術簡介
      相關文章
      亚洲av无码有乱码在线观看| 久久精品国产亚洲夜色AV网站| 国产亚洲一区二区在线观看| 亚洲成人一区二区| 亚洲喷奶水中文字幕电影| 久久亚洲精品国产精品| 久久91亚洲人成电影网站| 亚洲中文字幕无码永久在线 | 亚洲自偷自拍另类图片二区| 亚洲AV无码乱码在线观看富二代| 亚洲人成色777777在线观看| 亚洲性日韩精品一区二区三区| 亚洲人成影院在线观看| 亚洲M码 欧洲S码SSS222| 国产亚洲精品2021自在线| 亚洲av成人一区二区三区观看在线| 亚洲人成网站在线播放2019| 亚洲综合在线一区二区三区| 亚洲成人黄色网址| 亚洲av片不卡无码久久| ass亚洲**毛茸茸pics| 伊人久久五月丁香综合中文亚洲| 中文字幕乱码亚洲无线三区| 亚洲av中文无码乱人伦在线观看| 亚洲A∨精品一区二区三区下载| 自拍偷自拍亚洲精品播放| 国产AV无码专区亚洲AV琪琪| 亚洲国产成人久久综合一区77| 亚洲人午夜射精精品日韩| 日韩一卡2卡3卡4卡新区亚洲 | 亚洲乱码一二三四五六区| 亚洲日本乱码卡2卡3卡新区| 亚洲精品无码专区久久| 日韩亚洲综合精品国产| 久久精品亚洲日本波多野结衣 | 亚洲AV日韩精品一区二区三区| 亚洲色一色噜一噜噜噜| 亚洲毛片av日韩av无码| 亚洲中文字幕伊人久久无码| 亚洲国产精品无码久久一线| 久久亚洲私人国产精品vA|