好比,要開發一個信息監控系統,這個系統里包括數據采集模塊、數據庫存儲模塊、數據分析模塊、后端(web—backend)邏輯模塊和前端(web—frontend)展示。
(3)開發的時候要讓每個工作包盡量小(維持在2N3天可完成)并且有完成該工作包的尺度定義:交給開發職員的工作包就不能描述成“實現前端頁面”,太粗略也太籠統,而要描述成“實現前端頁面的網絡流量趨勢圖,橫軸以天為單位,縱軸以pbs為單位,顯示一個月內的網絡數據趨勢”。
再如,要開發一個包含結構(外殼)、大型預制件(電路板)和數控程序(應用程序)的數控折彎機。
(3)開發的時候要讓每個工作包盡量小并且有完成該工作包的尺度定義:類似于“完成WiFi模塊的大型預制件布局,尺寸符合結構要求:8.3cmx5.5cmx3.6cm”;這里針對結構設計和大型預制件設計“工作包盡量小”的要求比較難做到,由于數控程序是“軟”的,比較輕易切割和組裝;而大型預制件和結構是“硬”的,不能把結構或電路的某一部門作為一個工作包進行交付(整體與部門之間的依靠性太強),所以這里只能盡量使用這種思維進行工作包劃分,不能拘泥,只能因項目而異。這是一個“零整轉換”的過程。細化開發任務,是一個銜接項目需乞降開發職員詳細的過程。
數控折彎機進級換代細化開發任務的基本原則是:工作包之間有盡量清楚的接口定義(便于集成)、開發過程中有盡量少的相互依靠(便于獨立開發)、一個工作包盡量在2-3天能夠完成(便于檢查進度),工作包要有明確的完成尺度或定義(便于檢查質量)。那么在開發的時候,應做好以下工作。細化開發任務,就是將做一個數控折彎機所要求開發職員完成的任務拆解到一個個功能模塊,或者稱為“工作包”或“任務包”。
就像“曹中稱象”的故事一樣,一頭大象太大沒法稱量,拆解為一個個石頭塊之后,就可以通過完成石頭塊的搬運來組成大象的重量。
(1)要定義好模塊之間的接口:前端輸出的頁面包含哪些圖表才能知足業務需要、后端輸出給前真個數據格局是什么、數據庫的結構和接口是什么、數據采集模塊輸出哪些數據字段。
(2)要減少組件之間的依靠:結構設計職員根據與大型預制件職員溝通過的尺寸使用 SolidWorks等3D設計工具設計結構并模擬大型預制件電路板的組裝是否存在干涉;大型預制件設計職員根據與結構設計職員溝通過的尺寸使用Altium Designer等PCB設計工具布局電子元器件和大型預制件走線,查看是否能與結構和EMC設計都不;中突;數控程序開發職員可以直接在學>--7板長進行驅動開發和數控程序主業務開發,不需要等待為數控折彎機定制化的大型預制件出來后才開始工作。
(2)開發的時候要減少依靠:接口定義好了,前端就可以用模擬的后端數據進行開發,不需要等待真正的后端數據;數據格局和數據庫接口定義好了,后端就可以用填充了模擬數據的另外數據庫進行開發,不需要等待運行環境的數據庫及其真實數據;數據庫與采集模塊之間的數據字段定義好了,數據庫就可以用模擬的數據插入、刪除、更新進行操縱從而測試數據庫負荷和機能要求,不需要等待有真正的采集數據到達。那么,對細化開發的工作包也是同樣的要求:數控程序的整體功能機能等指標能夠被一個個零碎的工作包所反映,拆成的一個個零碎的工作包要能拼裝成數控程序的整體功能和機能要求。
(1)要定義好組件之間的接口:結構尺寸要怎樣設計才能知夠數控折彎機設計的新奇性和獨特性,大型預制件電路受限于結構尺寸應該怎樣鋪排電子元器件和走線布局,數控程序需要開發哪些驅動和應用層邏輯算法;當然,設計到結構和大型預制件的開發往往比較復雜,由于大型預制件受限于電子元器件尺寸和EMC設計要求等,往往需要跟結構設計之間反復溝通、調整。折彎機