Microsoft Project (或 MSPROJ)是一個國際上享有盛譽的通用的項目管理工具軟件,凝集了許多成熟的項目管理現代理論和方法,可以幫助項目管理者實現時間、資源、成本計劃、控制。 在前面的文章中,我曾和大家分享了軟件研發管理體系建設的一些見解,其中涉及對軟件研發管理體系的一些概念認知、什么樣的軟件研發管理體系適合我們的發展以及構建我們的軟件研發管理體系應包含哪些內容。結合最近一段時間的思考,今天再次和各位朋友探討一下軟件研發管理體系建設這個話題。今天要談的這個話題主要包括以下幾點: 1、研發體系框架 2、人員組織能力 3、項目管理能力 4、技術研發能力 5、持續交付能力 6、運維服務能力 7、安全可控能力 8、資源建設能力 在正式探討該話題之前,簡要談談最近的一些思考和想法,首要一點是社會的發展、業務的變化、技術的進步促進了研發模式的轉變,同時也促進了研發內容的轉變,例如從以往的單體架構向云化架構演變、從以往的PC端應用向多終端應用演變、從以往的傳統應用向智能化應用演變,另一方面項目交付的發展方向也是發生了重大轉變,從以前的注重過程標準、流程可控、需求明確和面面俱到向關注交付價值、交付效率、安全保密和過程可視的方向轉變。 正是基于對上述這些認知和理解,讓我對軟件研發管理體系的建設有了一些新的思考,為此和大家一起分享交流。 一、研發體系框架 在個人看來,研發體系主要從標準方法體系、技術能力、組織架構、交付模式、服務客戶等方面去分解考慮,并在中間通過人員組織能力、項目管理能力、技術研發能力、持續交付能力、運維服務能力、安全可控能力和資源建設能力等貫穿。研發體系框架示意如下圖所示:
 二、人員組織能力 在人員組織能力方面,需要建立組織崗位體系框架,包括崗位標準庫、培訓規范、崗位勝任能力標準、崗位認證流程、崗位等級認證、崗位發展通道等。在崗位體系建設方面,可以考慮按職能類(如部門總經理、部門副總經理、行政助理等)、項目類(如項目總監、高級項目經理、項目經理、項目工程師等)、專業類(如技術總監、技術經理、開發經理、系統架構師、開發工程師、測試工程師、實施工程師等)的方式進行分類設置。同時,明確相應的崗位發展通道。 關于組織崗位體系框架的建立,通常需要在公司層面來統籌考慮,因此需要和HR部門等諸多部門進行協同落實。 此外還需要建立績效考核評價方法,針對研發人員的績效考核評價方法在會對各崗位人員個人技能、綜合素質及工作任務進行持續跟蹤,并根據人員考核計劃開展績效面談輔導,幫助全員改進工作方法、提升工作技能和工作質效。 培訓作為人員組織能力的有機組成部分,需要強化培訓和知識共享,通過建立內部培訓體系,內部培訓與外部培訓相結合,多樣化培訓形式,將技術認證、培訓積分等納入技術序列晉升考評條件,強調培訓的結果。 三、項目管理能力 項目管理能力方面,需要在標準化項目管理與敏捷迭代之間融合升華并逐步形成滿足未來發展需要的敏捷項目管理能力,促進管理與工程維度相結合,應用最佳實踐,從而快速、高質量交付可工作的軟件。 除了項目管理體系方面的內容之外,還需要關注設計評審規范、應用開發規范、質量管理、配置管理等方面的內容。 對于涉及評審規范,需要針對需求、概要設計、數據庫設計、詳細設計、原型設計、界面設計等制定相應的評審規范,同時要對測試計劃、測試用例等進行評審,除此之外,還需要有代碼評審和發布評審等方面的規范約束。 對于應用開發規范,可以重點關注架構規范、設計規范、UI規范、編碼規范、測試規范等。其中,架構規范方面是通過規范架構設計,來管控軟件的技術合規性;對設計進行規范,包括如統一文檔格式規范、功能設計要素、DFX設計規范、數據庫設計規范等;UI規范是為避免使用者對不同系統進行多次學習、操作思維不連貫,從而提升操作效率;代碼規范是為了代碼能被更好的維護、擴展和更高的質量。包括代碼編寫規范和代碼質量管理規范;測試規范則是規范測試過程,包括測試步驟、測試方法、測試工具、用例規范等。通過對測試進行合規性管控,提高產品質量。 四、技術研發能力 技術研發能力主要從應用開發能力、平臺研發能力和技術創新能力三個維度考慮。
 應用開發能力著重于考慮對各類業務應用的前后端開發支撐能力;平臺研發能力著重于考慮對基礎平臺、公共組件、套件、工具等的研發提煉并讓軟件開發逐步具備搭積木能力;技術創新能力著重于緊跟前沿技術,特別是云大移物智方面的相關新技術的研發突破,以便于更好地為業務服務。 在技術研發方面,需要持續增強基礎開發能力,并在平臺化、產品化方面深入研發,拓展云計算、物聯網、移動互聯網、大數據、人工智能等方面的技術能力。 五、持續交付能力 在持續交付能力方面,不同階段會有不同的做法。個人認為,在構建持續交付體系框架的初期,可以考慮從兩個方面出發,一是統一軟件開發平臺,二是推行CI/CD。 統一軟件開發平臺,主要目標是把基礎服務平臺化、軟件架構標準化,從而進行快速的開發和迭代,提高整個應用開發域的自主可控能力。 推行CI/CD方面,主要是通過搭建自動化工具平臺,構建持續交付流水線,實現端到端無縫集成。這里面可快速運用的實踐包括代碼構建自動化、靜態代碼掃描自動化、API接口測試自動化等。有關這方面的一些實踐會在后續計劃分享的敏捷和DevOps轉型實踐的有關文章中探討。 六、運維服務能力 在運維服務方面,有兩方面的考慮。首先是對于軟件開發項目的生產運維,這方面可能會涉及到持續部署等方面的內容,更多會牽涉到DevOps中有關Ops的部分內容。另外一方面是針對常規性的IT運維服務及管理,這方面需要圍繞提升IT服務交付質量打造以流程、規范制度、技術人才和工具共同支撐的運維服務管理體系。 七、安全可控能力 在安全可控方面,著重于將安全問題擺在凸顯問題。這里面既有應用安全,也有過程安全,同時也需要考慮本質安全。應用層安全包括應用安全、內容安全、工控安全等。過程安全包括物理層安全、設備層安全和數據層安全,其中設備層安全包括物理安全、環境安全、設備安全等,系統層安全包括網絡安全、軟件安全等,數據層安全包括數據安全、身份安全、隱私保護等。 八、資源建設能力 資源建設能力方面著重于持續積累組織過程資產,包括持續積累在研發過程中所獲得的經驗和教訓,其中包含顯性知識(文字檔案),隱性知識(員工腦子中的思想、經驗)。組織資產積累除了顯性知識,更重要的是把隱性知識顯性化。
 同時還需要持續構建知識庫,推行各項制度、標準、規范、流程。 以上是本次針對軟件研發管理體系建設的進一步思考,歡迎各位朋友廣泛提建議,可以做進一步交流、探討。
在最新版本的Project中,微軟提供了更佳的用戶體驗。
|