摘要html
一、介紹行業應用軟件背景,對比汽車行業和軟件行業。數據庫
二、概念導入,從軟件項目逐步引伸到軟件產品、軟件產品線、軟件平臺、軟件生產線等概念編程
三、管理和運營軟件產品線架構
四、組織和構建一條軟件生產線框架
五、提升生產力(Merge平臺)編程語言
參考資料: ide
1. 軟件產品線設計思想。 工具
2. 關於平臺的設計參考: 學習
認識大衆汽車平臺 https://wenku.baidu.com/view/52118fe171fe910ef12df8d8.html 開發工具
MQB、MLB、MEB 大衆家的平臺 http://www.pcauto.com.cn/client/782/7826488.html
3. 汽車行業PLM解決方案
https://wenku.baidu.com/view/34d86dec4afe04a1b071de90.html
背景
軟件業相對與整車製造等傳統行業屬於新興行業,發展時間相對較晚,發展的歷史也相對較短,但其發展速度確一日千里,在軟件行業內其的軟件(操做系統、工具軟件、編程語言等)和硬件的發展突飛猛進,這對傳統行業提出了新的挑戰,一方面傳統行業承認其將來的發展也認識到必須與軟件業相融合(即互聯網+的思想),才能在將來突破瓶頸取得進一步的發展,各行業中的企業和公司都在不斷的努力實施業務系統軟件。而另外一方面軟件業的發展並無從爲傳統行業服務的角度出發,同時因爲發展時間較短,行業內缺乏一批成熟的跨界人才,他們即在軟件業是專家同時又深刻了解傳統行業發展特徵,可以較好的實現將傳統行業與軟件也融合的目標。
這種狀況致使的結果是實施系統軟件的企業十分痛苦,每每購買了實施了10個業務模塊,隨着企業運營管理與系統功能的不一致性日益凸顯,結果是每每是企業委曲求全以適應和有限度利用系統功能的目標,充分使用其中2-3個業務模塊的功能,從而產生了大量的浪費,其中包括企業的投資成本、實施中產生的問題成本等,而這種浪費對系統提供方的軟件團隊(公司)來說並不十分敏感,這個過程也能夠說是客戶在爲團隊的成長買單。
但這個過程是軟件團隊成熟、軟件產品成型的必經之路,本文介紹的軟件產品線架構設計的目標是規範和縮短這一過程,爲軟件研發團隊由項目研發到產品研發的蛻變提出一種思路。
概念導入
第一步:整車產品線到軟件產品線
軟件業在行應用方面的發展主要是以借鑑和學習所涉及到的行業經驗爲主,例如軟件工程的設計就是參照建築工程過程而創建的。本文說起的軟件產品線則以整車產品線的創建做爲參照。
經過下面表格,快速創建從汽車產品線到軟件產品線在概念方面的參照關係。
序號 |
整車領域概念 |
軟件領域概念 |
1 |
整車成品 銷售訂單(車型+選配件) |
項目交付物 客戶需求(應用平臺+定製組件) |
2 |
選配件 採購方選擇的可變化的配置部分,如真皮座椅、天窗、車身顏色、內飾顏色等。 |
定製組件 針對目標客戶需求量身定製的專用組件。 |
3 |
車型設計 平臺+變化件 |
軟件產品 應用平臺+標準組件 |
4 |
變化件 基於平臺加入的如車身外殼等不一樣型號的總成、模塊和零部件。 |
標準組件 針對行業特性設計的標準業務組件,包括預置的業務處理過程。 |
5 |
車型產品線 按照平臺劃分 |
軟件產品線 按照應用平臺劃分 |
6 |
平臺 將整車中不變的總成、模塊、零部件整合爲一個平臺。 |
應用平臺 系統中不變的部分:系統框架、權限管理、組件調用方式,運行環境等。 |
通過上面表格的整理,咱們確實發現了軟件產品線與整車產品線在邏輯概念方面能夠創建對應的映射,由此能夠證實應用整車行業產品線的管理方式進行軟件產品線的管理是可行的,只要創建了合適的映射模型。
第二步:從整車生產線到軟件生產線
整車生產線的創建是基於完成整車生產各工藝階段的生產目標而創建的,通常分爲衝壓工藝(原料毛坯到車體毛坯)、焊裝工藝(車體成型)、塗裝工藝(車體噴漆)、總裝工藝(總成裝配),整車生產線造價昂貴、設計複雜,可適應針對預設的產品線進行多品種小批量的以生產訂單爲驅動的生產模式,其特徵是生產線的設計通常是針對同平臺的少數幾款車型的產品線進行創建,變化相對可控,終端用戶只能在設計好的幾種變化件中進行選配。
反觀軟件產品的設計過程,每每以項目爲單位,因爲應用行業的沒有成型的標準致使沒法高效或者準確的爲客戶提供選配項目和標準,同時客戶企業的業務任務因爲缺少計算思惟沒法提供準確的需求目標(客戶業務人員每每在系統上線試運行期間和項目驗收的前期,會爆發性的提出大量需求變動),加之研發團隊在軟件工程職責轉換過程當中致使的信息衰減,最終使得在項目實施過程當中不斷的出現需求偏離、設計偏離、需求細化、需求變動的事件,結果是研發團隊付出超出預期30%以上的成本,並交付了高度定製化的業務組件。
相對於設計成熟、工藝完備、流水做業的整車生產線模式,軟件產品的研發過程更像是純手工操做的時代,而這便是軟件生產線概念提出的驅動力
經過下面表格,提出了參照整車生產線特徵,創建的軟件生產線的目標。
序號 |
整車生產線(以總裝工藝爲例) |
軟件生產線 |
1 |
整車成品 生產訂單(車型+選配件) |
項目交付物 客戶需求(應用平臺+定製組件) |
2 |
領料單 從庫存領取生產訂單產品所需的總成零部件。 |
業務組件需求清單 分解客戶需求後的產品所需組件清單。 |
3 |
出庫單 零件出庫至生產線邊。 |
組件庫 選取預設的標準業務組件(具有廣泛性),針對個性化需求須要開發後交付。 |
4 |
零部件裝配及信息採集 在工人根據裝配工序設計在目標工位完成零部件裝配,並將信息記錄MES系統內,做爲後續追溯信息。 |
組件安裝與配置 將業務組件安裝至系統運行平臺,這部分能夠人工完成,也能夠交由產品線架構系統完成。同時應用配置管理工具,基於MES可追溯性思想進行追溯信息管理。 |
5 |
整車質量檢測 該工序由專用檢測線完成,檢測線系統提交整車質檢單,由MES系統打印整車合格證 |
集成測試 通常使用測試工具完成迴歸測試、壓力測試,輔以人工完成複雜業務流程測試。提交系統測試報告。 |
6 |
車輛發運和交付 由廠家司機將車輛運送至銷售公司庫房(或稱成品發運庫) |
安裝部署 由系統實施人員爲客戶完成系統的安裝、調試、培訓等工做。 |
管理和運營軟件產品線
隨着研發團隊的發展,其運營的軟件產品線將持續擴充,能夠按照產品所屬行業、應用平臺劃分爲多個產品家族,每個家族內的產品使用統一的運行平臺(可能存在版本的區別),並處於相同或類似的業務領域。
每個加入產品的發佈都伴隨着一系列的組織活動和交付物,總體運行架構參見下圖:
產品線架構設計是基於對軟件產品的認識(產品=平臺+組件),結合整車生產過程當中的總裝裝配工藝生產過程,借鑑了PLM部分思想提出的。圖中的生產流向由左至右分別涉及到運行平臺/組件的設計工藝、平臺和組件的裝配工藝、終檢工藝和返修工藝,期間的在製品交付物包含運行平臺、標準組件、定製組件、軟件產品,整個生產過程使用MES系統中可追溯×××和配置管理,對運行平臺、組件、發佈的產品進行實施版本管理。
組織和構建一條軟件生產線
軟件生產線在軟件產品線架構中處於核心位置,其目標是爲各個工藝步驟提供了細化的說明部分,並針對生產過程存在關鍵問題提出解決方案。
運行平臺的設計目標從支撐業務處理的底層功能入手,包括對組件的處理、組件依賴的開發工具庫支撐、運行日誌和監控方面的功能、系統運行受權類功能設計。
組件設計目標從對組件的管理角度入手,每個組件信息中除了開發相關的工程代碼、部署文件,還要包含版本信息,同時帶有相關的需求文檔、設計文檔、用戶手冊等資源類文件,針對目標運行平臺還要提供安裝說明、配置說明等資料。
裝配工藝的實現過程
實例化運行平臺(即項目環境),包括平臺部署的代碼、中間件、數據庫等。
實例化組件:
a) 標準組件:從組件庫中選取合適的組件,根據安裝說明和配置說明將組件部署到運行平臺上。
b) 定製組件:遵循運行平臺對組件開發的規約,結合具體的客戶需求作定製化開發,並放置在定製組件庫中進行管理,再部署在運行平臺上。
終檢工藝部分應用迴歸測試、壓力測試等工具進行系統化的測試,輔以人工完成複雜業務流程的測試,造成測試報告。
返修工藝部分應用軟件缺陷管理方法,平臺或組件的缺陷進行修復,並經過小版本好的形式融入版本管理。
產品化的過程
應用軟件產品線的管理方法以後,定製化交付到產品化研發的工做將從運行平臺和組件庫兩方面進行:
定製化的組件將逐步造成積累,並能夠有計劃的轉變爲標準組件。
運行平臺再不斷的實施過程當中將逐步完善。
再完善一下前文對產品的定位:
更好的產品= 更完善的平臺 + 更具適用性的組件
提升生產力
在應用軟件產品線架構思想進行研發的過程當中,運行平臺是相對穩定的,通常狀況下能夠每3-6個月更新一個版本,而如何快速的開發標準組件和定製組件則成爲產品線可否快速成型的關鍵問題。
針對這一部分我將在後續寫一篇博客,專門介紹我研發的一個做品,快速開發平臺Merge。
總結
本文參照整車生產線的工做模式提出了軟件產品線架構設計,爲研發領域軟件的團隊提出了由項目化交付轉向產品化研發思路。
應用軟件產品線架構進行軟件產品的運營,在純技術方面並無不可逾越的鴻溝,難點在於將架構思想融入到團隊的組織和管理過程當中,並持續堅持下去。