軟件項目開發的全過程是一個很大的范疇,從確定需求,到編碼設計,到集成發布,到運維、運營、設計方方面面。在這個過程中,交付過程是非常關鍵的,因為它影響著軟件的質量、穩定性和用戶體驗。
在當今競爭激烈的商業環境中,突發交付項目的出現成為了軟件企業面臨的一項巨大挑戰。這些項目通常具有緊迫的時間要求和高度復雜的任務,需要企業迅速做出反應并提供高質量的解決方案。為應對這些突發交付項目,越來越多的軟件企業采用敏捷開發的交付方式。
本文基于敏捷開發交付的思想,探討在實際的突發軟件交付項目中,如何通過敏捷交付的思想去進行軟件的有效高質量落地。
時間緊:交付周期短,設計、研發、測試的時間嚴重壓縮,里程碑設置嚴格
任務重:通常背靠重要的任務事件,需要在限期里取得重大結果
要求高:即使在緊迫的時間里,同樣會對系統軟件提出較高的建設要求,如:架構的先進性、合理性、可靠性和擴展性等
需求模糊:由于項目的突發性,軟件的需求主線往往未能及時理清,甚至存在來源多樣性問題,需同時滿足多方訴求
資源緊張:通常研發資源都是日常分配在提升及交付項目當中,在突發情況下,短期內會存在人力資源緊張的問題,需要快速協調抽調資源
能力參次:由于是臨時抽調拼湊的研發交付團隊,成員的業務理解和技術能力會存在差異,需要進行技能的快速拉齊
敏捷開發交付思想是一種在軟件開發領域被廣泛采用的方法論,它強調快速響應變化和持續交付高質量的軟件產品。在當今快節奏和不斷變化的商業環境中,敏捷交付思想成為了許多組織的首選方法。
強調團隊合作和溝通,鼓勵開發人員、業務代表和利益相關者之間的密切合作。通過頻繁的溝通和反饋,團隊能夠更好地理解客戶需求,并及時調整開發計劃和優先級。這種協作和迭代的方式使得團隊能夠快速響應變化,并在較短的時間內交付可用的軟件。
強調持續交付和迭代開發的重要性。與傳統的瀑布模型相比,敏捷交付思想更注重頻繁地交付小型的軟件功能,而不是一次性交付整個產品。這種迭代開發的方式使得團隊能夠更早地獲得用戶的反饋,并及時進行調整和改進。通過持續交付,團隊能夠更好地控制項目進度和風險,并更快地將軟件產品推向市場。
鼓勵團隊在開發過程中靈活應對變化,并通過頻繁的迭代來不斷改進產品。這種靈活性使得團隊能夠更好地適應市場需求的變化,并及時調整開發計劃和優先級。同時,敏捷方法還提倡簡單性和可持續性,避免過度設計和不必要的復雜性,從而提高開發效率和產品質量。
提倡團隊成員和利益相關者之間的透明可視,促進更好的溝通和合作。敏捷方法通過可視化工作流程、任務面板和迭代回顧會議等方式,使團隊成員和利益相關者能夠清楚地了解項目的進展和問題,并及時進行調整和改進。這種透明度有助于減少溝通和協調的成本,并提高團隊的效率和工作質量。
總結起來,敏捷開發交付思想就是一種以人為中心、持續交付、靈活性和透明度為核心的軟件開發方法論。相較于傳統的瀑布式開發,可以幫助團隊更好地適應市場需求的變化,提高團隊的效率和工作質量,并為客戶創造更好的價值。
基于敏捷思想的價值觀及原則,我們在面對突如其來的軟件研發交付項目,結合軟件研發交付的幾個階段,進行了如下實踐:
方案需求前置現場:在項目啟動的初期,部署核心方案人員需前置現場,快速收攏客戶需求,引導客戶建設思路,減少定制化研發。通過與客戶的深度溝通,了解客戶的需求和動機,從而制定更合適的項目規劃和產品設計方案。
鎖定建設范圍,精準工作量評估:前置人員配合客戶快速完成建設范圍內容的圈定,明確范圍內容,及時輸出功能清單,反饋后端研發預判投入,形成投入決策依據。在明確項目目標和范圍的基礎上,通過精準的內容估算,合理安排資源,為項目投入成本、人員選用提供有力依據。
確定投入規模,設定核心團隊架構,分組定責:基于規劃的建設內容,分組設定研發負責人、關鍵設計以及明確組內所需人員要求,包括:缺口數量及技能要求,明確小組目標及職責。
拉通外部組織資源,快速甄選投入:基于團隊設計的資源訴求,快速向公司發起資源申請訴求,拉通外部組織,收集近期可抽調投放的人力資源,針對人員進行及時的面試溝通甄選入組,鎖定參與工期,規劃滾動進項的時間節點,補充團隊人力缺口。
交付里程碑分解切割:根據客戶整體目標,設計切割出多個主要里程碑,每月輸出匹配的建設成果,滿足配合項目組客戶領導階段性成果匯報輸出。
前后方緊密配合,迭代輸出設計:方案設計人員前置客戶側,推動客戶快速確認設計原型,后端主力研發協同配合前方完善設計,同步理解客戶訴求并反饋實現意見。根據任務大小,按3天為一個單位快速迭代方案成果輸出,通過前端人員的主動推動,加速與客戶的交流互動,保障設計內容的準確性和修訂及時性。
原型驗證,快速印證方案設想:針對客戶提出的關鍵核心技術場景,架構設計人員輸出關鍵核心的原型,由后端研發進行快速研發驗證可行性,通關驗證結果印證設想,完成設計方案的輸出。
持續改進和學習:研發啟動初期,定立規則強調持續改進的思維和實踐,包括:方案迭代回顧、團隊培訓和知識分享等,務求以最短的時間內拉齊相關研發人員的知識短板。每周定期探討如何借助研發每日的進展反饋和數據分析來改進團隊的工作流程和項目管理,爭取前期項目管理快速進入正軌。
采用Scrum方法團隊高效協作:小組負責人每日組織“站立會議”,協調溝通團隊的工作進度,確定當日沖刺目標落實團隊成員,成員分享進展、問題難點及尋求支持。每個階段沖刺結束后,團隊會進行回顧會議,評估過去的工作,找出需改進的缺陷。小組會議后再由項目主管組織組長間的聯動會議拉通信息。通過鼓勵團隊成員之間的密切合作和互相支持,提高團隊的凝聚力和效率。
平臺產品能力復用,降低定制化研發投入:積極拉通公司級成熟存量產品的整合,復用產品能力,串聯打通應用與平臺產品的業務實現過程,基于28定律盡量提升配置化能力的覆蓋度,結合小量的編碼完成定制化需求,快速滿足客戶的功能訴求,縮減功能重構投入。通過產品技術整合,降低項目研發成本,提高項目投資回報。
創新技術引入,工具化提效:引入創新性的研發提效工具,如:低代碼、WhaleBI等,分析篩選出與工具匹配度最高的用戶功能需求,利用高效的工具輔助實現,快速構建平臺應用界面,實現產物輸出品質一致,有效騰出精銳前端力量投放到其它復雜功能研發任務中。
業務數據預置,降低業務交付復雜度:結合客戶提供的業務場景,提前預置所需的配置數據,如:流程、參數、采集對象、性能及告警監控指標等。確保軟件交付時的業務配置數據完備,開箱后交由實施人員通過簡單的配置調試則可快速接入使用。
出廠版本部署演練,輸出穩定的可快速交付版本:通過多輪次的環境部署演練,沉淀整理出快速部署搭建的腳本,并加載到ZCM/Sims等環境部署工具上,實現預置的環境配置及對應基座部署版本。借助反復實戰演讓交付人員清楚熟悉部署過程,了解常見問題,積累經驗。
總結交付手冊,用于指導快速開局業務加載:通過交付人員的實踐演練及測試人員的日常使用,沉淀出完整齊備的交付文檔資料,如:部署、業務配置、調試的標準動作,用于指導現場項目快速交付部署,完成必要業務配置及內部調試,有效確保產品交付落地順利。
知識就緒,提前熟悉規劃功能:測試人員從設計階段中后期介入,熟悉了解版本規劃所需的功能及業務場景。前期設計人員每周進行1~2輪功能知識培訓及問題答疑,快速提升測試人員對項目業務功能的理解,提升滿足從業務視角的整體場景去驅動進行測試,而非僅停留在功能可用性的驗證層面。
場景聯合設計,制定測試目標:核心設計人員牽頭核心業務場景設計,測試人員配合測試功能范圍點的覆蓋確認,共同制定測試計劃和預期測試目標,避免測試在驗證過程中對成品內容理解出現分歧偏差,影響進度及質量。
測試問題負責人點對點跟蹤,快速撲滅:測試問題每日由測試人員統一匯總到問題跟蹤表,由模塊小組負責人分析后跟測試人員進行解答,制定bug改進計劃及復測時間安排,保障bug修復響應及時。
用戶參與和反饋循環:強調用戶參與的重要性,每周對測試就緒的版本功能,通過例會給項目用戶進行相關演示和反饋收集,建立有效的用戶反饋循環機制,快速調整和優化產品功能,避免在里程碑積壓大量成果去演示,產生大量偏離返工。
綜上所述,基于敏捷的思路結合軟件交付的幾個重要階段環節的實踐策略,可以一定程度上有效幫助我們解決突發項目所面對的困境,其中心思想做法歸納來說,主要還是圍繞以人為中心的快速溝通、復雜分解、快速迭代、快速反饋、快速整合及提前就緒等方面進行處理。
成功的軟件系統落地離不開高效的軟件交付組織管理,對于突發交付項目的重要性更是不言而喻。敏捷交付的方法思想可以幫助團隊更快地響應變化,更快地適應新的要求,并更快地交付可用的產品,通過快速迭代和反饋,幫助團隊在項目中更快地發現問題并及時解決,更好地管理風險,從而確保項目的成功。
浩鯨科技經過多年的交付歷練沉淀的實踐經驗,可以有效應對各種復雜的突發項目交付,未來仍會持續改進提升,繼續保持高效響應更多的交付挑戰。