CodeGym /Java Blog /Toto sisi /您需要了解的有關軟件開發方法的一切:趨勢、原則和初學者陷阱
John Squirrels
等級 41
San Francisco

您需要了解的有關軟件開發方法的一切:趨勢、原則和初學者陷阱

在 Toto sisi 群組發布
軟件開發是一個複雜的業務過程。這意味著 IT 專業人員需要使用優化、規劃和成本計算方面的語言。對管理概念的理解為雇主和開發人員提供了很大的優勢,並有助於將協作提升到一個新的水平。 您需要了解的有關軟件開發方法的一切:趨勢、原則和初學者陷阱 - 1

初學者註意!模型、方法和一般混淆

首先,我們需要做一個重要的澄清:軟件開發模型和軟件開發方法是分開和不同的。模型預測系統的行為方式。系統需要方法論才能正常工作。混淆軟件開發模型和方法是每個 IT 新手的標準操作程序,因此這不算大錯。模型的一個例子是經典的瀑布模型,它具有線性進展、每個階段目標明確定義以及對截止日期的嚴格控制。另一種模型是螺旋模型,其重點是及早發現和減輕項目風險。螺旋式發展從小處著手,首先解決局部問題,然後逐步解決更複雜的問題。最後,另一種模型是迭代和增量開發 (IID),其中項目生命週期被分解為一系列迭代,每個迭代類似於一個“迷你項目”。一般來說,模型是對軟件開發過程的描述。但方法論是用於控制、評估和監控分配任務工作的系統. 方法論是現代的大棒和胡蘿蔔,需要控制開發過程中的每一步。他們是根據項目的方向、預算和最終產品的實施期限來選擇的。更重要的是,可以根據項目負責人及其團隊的氣質來選擇方法。甚至基於公司或客戶的理念。讓我們來看看最流行的方法。

1.敏捷

Scrum 是一種敏捷的項目管理方法. 它基於“衝刺”或短迭代,嚴格限制時間(通常為 2-4 週)。這最大限度地減少了會議的持續時間,但增加了會議的頻率。每個衝刺都包含一系列要在迭代結束時完成的任務,每個任務都有自己的“權重”。在會議期間,團隊討論團隊成員已經做了什麼,他們打算做什麼,以及存在什麼問題。Scrum 使用積壓進行計劃。在這種方法中,團隊通常有一個 scrum master。此人幫助團隊不受干擾地工作,並為團隊創造一個舒適的環境。該項目還將有人擔任產品所有者的角色。此人是開發負責人,監控產品,並充當客戶要求與團隊生產之間的主要紐帶。

優點:

  • 能夠以盡可能低的預算快速啟動項目;
  • 每日監控進度,頻繁的項目演示;
  • 在項目期間進行調整的能力。

缺點:

  • 由於缺乏固定預算而難以簽訂合同;
  • 不適用於沒有經驗的團隊,或者當截止日期或預算被低估時;
  • 在衝刺之間不斷做出改變的能力會造成混亂。

它是給誰的?

像這樣的系統適用於最多 10 人的項目,無論是獨立的還是存在於大公司中。如果團隊有大量的工作和很長的生命週期迫使他們改變並適應新的市場條件,這將很方便。

2. 看板

看板最重要的特點是項目生命週期的可視化. 創建用於執行工作項的列。工作項目是單獨處理的。這些列標有以下狀態:待辦、進行中、代碼審查、測試中、完成(當然,列名稱可能會有所不同)。每個團隊成員的目標是減少第一列中的工作項數量。看板的方法很直觀,可以幫助您了解問題所在。看板的結構不是明確且不可撤銷的:根據項目的具體情況,您可以添加即興的列。例如,某些團隊使用的系統在執行之前需要為工作項定義完成規則。在本例中,添加了兩列:Specify(指定參數)和 Implement(開始工作)。

優點:

  • 計劃的靈活性。團隊只專注於當前的工作,也定義了任務的優先級;
  • 能見度。當所有參與者都可以訪問數據時,更容易發現全球性問題;
  • 高度參與開發過程。可視化過程增強了自我組織和自我控制。

缺點:

  • 不與超過五人的團隊合作;
  • 不用於長期規劃;
  • 不適合沒有動力的團隊。看板沒有為每個工作項目設定最後期限。該方法也沒有規定對延誤的處罰。

它是給誰的?

看板在團隊有動力成長和取得成果的公司中非常有效。應該已經很明顯了——這適用於一個小團隊。甚至可能是分遣隊或團隊的一部分。

3. 合理的統一過程(RUP)

RUP 方法論使用迭代開發模型。在每次迭代結束時(需要 2 到 6 週),團隊應該實現計劃的目標並獲得項目的工作版本,儘管是臨時的。RUP 要求將項目分為四個階段。在每個階段,都會執行下一代產品的工作:開始、細化、構建和過渡。在一個階段結束時,實現了項目里程碑。團隊評估其結果的那一刻可以被視為項目里程碑。這意味著該方法意味著在第一階段發布主要功能,並在後續階段添加附加功能。

優點:

  • 可以處理不斷變化的任務,包括來自客戶的任務和工作過程中出現的變化;
  • 確保產品的持續改進。在迭代過程中,您可以仔細評估項目;
  • 可以在工作的早期階段識別和消除風險,並有效控制開髮質量。

缺點:

  • 這種方法相當複雜,難以在小型團隊或公司中實施;
  • 取決於專家設置任務的能力;
  • 需要過多的需求文檔。

它是給誰的?

當產品需要盡快發佈時,具有明確規定的要求和風險的大型項目。甚至以犧牲功能為代價,為了快速佔據你的利基市場,只有在以後添加畫龍點睛之筆。

方法有很多種,但有一個趨勢

除了不可否認地流行並基於敏捷原則的scrum 和看板,以及穩健的、迭代的 RUP 方法論之外,公司還使用許多不同的方法論。一家公司可能更接近極限編程並做出最快和最簡單的決策。另一個可能更接近於測試驅動開發。另一個人可能更喜歡快速應用程序開發 (RAD)。也就是說,同時使用多種方法論是一種強烈的、毋庸置疑的趨勢. 或者甚至將模型和方法組合到一個獨特的管理系統中。當今的公司努力消除官僚主義障礙,在組織內部營造統一的團隊合作氛圍,而不在部門和組織單位之間轉移責任。根據Scrum 聯盟, 70% 的 IT 公司使用 scrum。其中包括谷歌、亞馬遜、Salesforce、微軟和 Adob​​e 等巨頭。初創公司和年輕的項目更傾向於看板,但豐田和 Wargaming 的遊戲玩家也使用它。Scrum 是一種計劃工具,而看板是用於監控進度的。至於 RUP,它最常被擁有 50-200 名員工和 1-1000 萬美元收入的西方公司使用。然而,IBM 修改了 RUP 以更接近敏捷原則,發布了 OpenUP 方法論(RUP,但敏捷)。這種自負的敏捷方法現在正在推動 IT 世界。這不僅僅是一時的時尚——它仍然是創新的,事實上它被許多大公司所採用。矽谷使用敏捷。Facebook 和優步使用它。

底線

每個項目都有自己的軟件開發方法,這取決於團隊、資金、截止日期和客戶要求。沒有通用的管理技術:即使是廣受歡迎的敏捷方法也無法確保開發過程的最佳方法。因此,我們會仔細選擇方法,有時甚至是原則性地選擇。如此之多以至於我們可以通過查看其方法來得出有關公司本身或其客戶的結論。方法論是混合的,以模型為補充,並進行調整。如此之多以至於它們產生了新的方法。也就是說,管理領域最終仍掌握在 scrum 和看板手中,其中包含瀑布模型或迭代 RUP 方法的意想不到的元素。
更多閱讀:
網站: 圖書:
  • Andrew Stelman、Jennifer Greene:“學習敏捷”;
  • Per Kroll,Bruce MacIsaac:«敏捷性和紀律變得簡單:來自 OpenUP 和 RUP 的實踐“;
  • Mike Cohn:“敏捷成功:使用 Scrum 進行軟件開發”;
  • Robert C. Martin:“敏捷軟件開發:原則、模式、實踐”;
  • Marcus Hammarberg, Joakim Sunden:“看板實戰”;
  • I. Jacobson、G. Booch、J. Rumbaugh:“統一軟件開發過程”。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION