為什麼以及如何管理軟件開發中的風險

已發表: 2021-10-05

在本文中,我們將討論軟件開發過程中的風險管理方法。 我們還從業務和發展的角度關注風險管理的重要性,甚至給出了風險管理計劃的示例。

2019 年 11 月 12 日,迪士尼推出了 Disney Plus,這是一項類似 Netflix 的原創內容流媒體服務。 成千上萬的用戶準備每月支付 7 美元或更多,以享受皮克斯、漫威、星球大戰和許多其他特許經營權的內容。

熱切的觀眾對連續幾天觀看中斷屏幕而不是他們付費觀看的內容感到失望。 投訴範圍很廣,從登錄困難到無法流式傳輸、應用程序故障以及節目和電影從庫中消失。

迪士尼將這些問題歸咎於需求超出其“高預期”。

這是軟件開發中技術風險管理不善的典型例子。
迪士尼能避免這些停電嗎? 是的。
你能避免類似的問題嗎? 也是。
在本文中,我們將深入探討軟件開發中的風險管理和風險緩解。

風險管理的重要性

風險管理的重要性

每個企業都是獨一無二的,並非所有風險都可以完全預見。 但是有一些方法可以幫助您識別瓶頸,計算風險發生的可能性,並預測發生時的負面影響。

風險管理是企業為避免或減輕風險影響而可以進行的一系列複雜活動。

風險管理的目的是了解什麼會出錯,為什麼會出錯,如果出錯會產生什麼影響,以及如何修復它。 有備則無患。

適當的風險管理的優勢在於,即使風險出現,它也可以幫助企業減少損失。

風險管理可以帶來以下優勢:

  • 通過減少可預見和可避免緊急情況的費用來節省成本
  • 通過允許開發團隊專注於開發,而不是解決不可預測的問題,從而加快工作的能力
  • 無需吸引額外資金來解決不可預測的問題,從而實現更明智的支出
  • 通過確保客戶即使在緊急情況下也能掌控一切,從而獲得更好的聲譽

風險類型

一個沒有經驗的企業家希望他們的業務不會發生任何壞事。 一個有經驗的企業家知道會發生一些不好的事情並提前做好準備。

那麼會出現什麼問題呢? 基本上什麼都行。 各種風險管理方法涵蓋各種類型的風險。 企業最常見的風險類別是:

  • 人為風險— 團隊成員的突發疾病、懷孕、被捕、死亡或職業變化可能會導致多種後果,從延遲績效到將職能委派給其他團隊成員。

  • 位置或地理風險——每個位置都有可能影響工作流程的特定問題,如氣候、政治局勢、時區和工作傳統。

  • 戰略風險——規劃問題、選擇錯誤的戰略和管理不善等事情從一開始就無法預見,但絕對應該被視為主要風險因素。

  • 運營或管理風險——這些風險與戰略風險非常接近,但更多的是關於執行:實施問題、不正確的工作依賴、管理不善、決策緩慢、優先級錯誤以及許多其他運營問題可能會延遲業務發展或花費大量資金克服。

  • 法律風險——最好研究一下特定地區的法律法規,至少看看能不能在那裡做生意。 此外,法律往往會發生變化,這通常會導致稅收變化和正規化問題。 法律風險還包括亞馬遜、Apple App Store 和 Google Play 等商業平台的規則和法規的變化。

  • 技術風險——所選擇的技術在紙面上看起來很完美,但在行動中表現不同。 不斷的更新、操作環境的變化、維護問題以及許多其他技術方面都會對業務產生重大影響。

根據業務類型的不同,可能會出現許多其他風險因素,並且上面列出的因素可能會發生變化。 但是了解這些風險有助於您選擇合適的風險管理策略。

風險管理策略

風險管理方法因眾多因素而異,但以下是一些最常見的風險管理策略:

風險規避

這是一種激進的策略,企業拒絕承擔風險並拒絕執行一項活動。

有多種風險,錯誤的代價太高。 例如,如果您知道解決方案的技術能力的限制,明智的做法是不要讓高負載項目使解決方案過載。 在這種情況下,失敗的成本可能高於可能的收入。

簡而言之,有時候為了不失敗,不從事一些商業活動是可以的。

優點:實施速度快——您只需拒絕或接受該活動。

缺點:將潛在收入留在桌面上。

適用於:擁有多個分支機構和收入來源的企業。

何時使用:可能風險的危害大於活動可能帶來的利潤。

風險緩解

這是一種使負面後果不那麼嚴重而不是完全避免它們的策略。

當經營一家比在前院賣檸檬水更複雜的企業時,您可能會面臨無法避免的問題。 在這種情況下,建議識別並減輕這些風險的後果。

這適用於已知的特定風險,尤其是在軟件項目中。 警告您的客戶即將出現的問題或提供臨時解決方案。 客戶可能不會滿意地離開,但至少他們會感受到你對他們的關心。 例如,如果您等待超過 90 秒的訂單,麥當勞會贈送免費冰淇淋的優惠券。

優點:您不會浪費資源來消除風險。 相反,你要處理它的後果,試圖使它們不那麼嚴重,這通常更容易做到。

缺點:您和您的客戶仍然必須應對風險的負面後果。

適合:擁有忠實客戶的企業、對時間敏感的企業、服務提供商。

使用場景:風險無法完全避免,但服務仍需按時交付; 緊急情況。

風險轉移

有了這個策略,你付錢給其他人來處理負面後果。
如果您的企業無法應對某種風險,請尋求幫助。 這可能是軟件開發中風險管理的一種非常昂貴的方法,但結果可以滿足客戶的期望並使您的業務繼續發展。 這也有助於將您的員工從他們不想做的骯髒工作中解放出來,從而提高注意力並提高質量。

優點:簡單且執行速度快。

缺點:可能會花費一大筆錢,並且您對部分業務的控制權會減少。

適用於:某些組件負載高的企業,或者用於實現您沒有很多專業知識的功能的企業。

何時使用:一項活動應該快速完成,沒有時間獲得自己的專業知識或培訓自己的專業人員。

風險承受能力

顧名思義,使用此策略,您只需接受風險的所有負面後果。

在某些情況下,業務活動的利潤遠大於可能風險的影響。 在這種情況下,企業可以接受風險。 但是應該警告用戶接受風險的後果。

Microsoft 在停止維護舊版本產品(如 Windows XP)時使用此策略。

優點:幾乎不需要資源。

缺點:你會得到所有的負面後果。

適用於:實施新功能比支持舊功能更重要的成熟企業。

何時使用:一項活動對大多數用戶沒有傷害,或者當為用戶提供的活動帶來的利潤高於可能帶來的不便時。

請注意,這些策略都不是靈丹妙藥。 任何其他類型的風險都可能伴隨技術風險並影響您的工作結果。 在大多數情況下,考慮到業務的特殊方面,特定項目的風險管理策略將是上述策略的混合

如何使用敏捷方法管理風險(示例)

使用敏捷方法管理風險

這就是軟件開發風險管理策略對 Mind Studios 的看法。

階段 1. 識別風險

時間:項目評估階段

在此階段,項目經理召集開發人員和設計師團隊進行頭腦風暴,尋找所有可能的風險以及可能引發風險的因素。

必要的步驟:

  • 回想一下我們在以前的項目中遇到的問題; 嘗試發現所有已知的未知數
  • 定義在此特定項目中可能發生任何類型風險的區域
  • 評估我們在開發產品時可能面臨的每個因素的影響

階段 2:分析和評估風險

時間:在項目評估階段之後

在這個階段,識別風險,然後分類。 在這裡,項目經理還分析風險的可能影響及其發生的可能性。 在此階段,最好考慮項目的複雜性、測試質量以及開發團隊之間的依賴關係。

此階段的結果是對每種風險的定義後果列表:

  • 客戶可能遭受的損失
  • 企業可能面臨的問題
  • 聲譽損失
  • 法律問題

第 3 階段:制定風險管理計劃並與客戶一起批准

時間:就在開發開始之前

在此階段,項目經理將風險管理活動正式化為計劃。 通常,項目的風險管理計劃是一個包含以下列的表格:

  • 風險定義

我們定義可能發生的問題並用一個簡短的句子描述它們。 定義一看就明白,所以我們傾向於用最短的方式描述問題:“服務器能力不足”、“無法上傳用戶內容”、“Play商店發布延遲”等類似的描述是明確並專注於問題。

  • 扳機

我們描述了我們如何知道風險是否已經實現。 究竟什麼會告訴我們有關問題的信息以及它的外觀? 如果觸發器可以來自不同的來源,我們應該將它們全部命名。 可以按概率或值對觸發源列表進行優先級排序。

  • 概率(分數)

我們定義風險發生的可能性。 根據可能風險的數量和重要性,我們建議最高和最低分數 - 例如,100 和 1。更可能的風險獲得更高的分數。

  • 影響(得分)

在此列中,我們對每種風險的嚴重程度進行評分。

  • 價值(分數)

我們定義特定風險對項目的重要性。 更高的數字意味著更高的優先級。 在 Mind Studios,我們通常通過將風險的影響和概率分數相乘來定義風險的價值。 但是,您可以根據自己的業務要求和特殊性,隨意定義此值。

  • 主要策略

我們命名將用於管理風險的主要策略或方法——例如,轉移、減輕或接受。

  • 替代策略(如果可用)

如果主要策略不可接受,我們將命名為次要策略。 例如,如果目前無法轉移風險,我們可以啟動緩解流程。 我們建議為每種風險創建盡可能多的策略。

  • 所選策略的行動計劃

這是戰略中最詳細的部分,我們在此為其實施創建了分步指南。 因此,我們應該有一個明確的計劃,以防萬一發生各種風險。 我們對步驟進行編號,包括相關人員和負責人的聯繫方式,並儘可能清楚和詳細地寫出每一步。

我們為我們為項目考慮的所有主要和替代策略制定行動計劃。

以下是我們在 Mind Studios 使用的技術風險管理計劃的示例

風險管理計劃示例

[谷歌表格]

第 4 階段:監控風險

時間:從第一天開始就在後台; 在每個開發衝刺之後檢查

無法保證已解決的風險不會再次出現。 這就是為什麼應該將風險監控集成到軟件項目的活動列表中。 觸發器也可以從用戶反饋和 QA 報告中識別。 將風險監控活動納入每個進一步的開發衝刺。

所有風險管理活動都應與客戶達成一致,尤其是在外包軟件開發時。 所有成本、實現概率和嚴重程度都應該盡可能清楚——客戶應該知道他們支付的是什麼以及誰負責每種類型的風險。 根據客戶的期望和客戶的預算找到可接受的折衷方案

經營風險

經營風險

不提及業務風險就無法完成有關風險管理的對話。 當您應對上述項目風險時,這很好。 但是想像一下,在開發過程中發現您的競爭對手將更快地發布類似產品或具有殺手級功能。 發現自己處於這種情況意味著即使您也沒有很好地處理項目風險,您也忘記了處理業務風險?。

業務風險是指業務之外的任何威脅到業務目標或指標的事物。 這可能是競爭對手、監管機構或經濟中的突然變化——或任何其他事情。

管理業務風險需要一大堆其他步驟和階段,值得再寫一篇文章。 但這裡有一些一般提示:

  1. 密切關注市場

擁有出色的商業創意並不能保證其他人沒有類似的創意。 定期進行市場研究和分析,以了解市場狀況並密切關注您的潛在和活躍競爭對手。

  1. 致力於您的產品與市場的匹配

確保您的產品能夠滿足強勁的市場需求。 如果新的市場條件影響了您的業務績效,您應該重新考慮產品與市場的契合度。 不僅要在產品開發中保持敏捷,還要在業務開發中保持敏捷。 改進、創新,並毫不猶豫地轉向。

軟件開發中的風險緩解:結論

一般來說,適當的風險管理可以幫助您專注於您的產品工作。 通過適當的風險管理,更多的資源可以專注於創造更好的功能和更高質量的產品,而不是克服風險的後果。

執行風險管理的開發人員可以更多地從事他們喜歡的工作,執行風險管理的企業主可以獲得更快樂的客戶、更好的聲譽和更多的創造力空間。

仍然對如何管理特定業務中的風險感到好奇? 我們可以提供幫助!

如果您擔心軟件項目中的風險,Mind Studios 項目經理將很樂意分享他們的專業知識! 保持聯繫。

由 Tymur Solod 和 Alexander Vasyliev 撰寫。