趙 宇,趙建軍
(1.北京礦冶研究總院,北京 100070;2.礦冶過程自動控制技術國家重點實驗室,北京 100070;3.礦冶過程自動控制技術北京市重點實驗室,北京 100070)
敏捷開發方法在選冶儀表軟件開發中的應用
趙 宇1-3,趙建軍1-3
(1.北京礦冶研究總院,北京 100070;2.礦冶過程自動控制技術國家重點實驗室,北京 100070;3.礦冶過程自動控制技術北京市重點實驗室,北京 100070)
隨著國內選冶過程關鍵參數檢測技術實現了儀器化,選冶儀表在單機自動化、操作智能化、信息挖掘等方面的需求開始不斷增長和豐富,這對選冶儀表軟件開發提出了更高的要求,如何權衡并解決需求更迭變化情況下選冶儀表軟件的發布質量和交付速度是我們亟待解決的問題。以選冶儀表軟件開發項目為例,探討了利用敏捷開發的方法優化開發流程的具體應用。
選冶儀表;敏捷開發;Scrum;在線;儀表軟件
隨著國內在選冶過程關鍵工藝參數品位、粒度、濃度、酸堿度/浮選電位等檢測手段成熟,國內研究機構相繼研制出工業在線檢測儀器儀表,在儀表投入市場應用初期,國內選廠在線檢測的需求相對簡單穩定,選冶儀表的研制開發可以在瀑布開發模型控制軟件過程和質量。但近些年來,隨著國內選廠對在線檢測理解的深入,以及其他行業儀表智能化進程的推進,不斷有新的功能需求提出,由于選冶儀器行業領域市場容量小,競爭程度較高,迫使儀表廠家對市場需求做出快速反應,不斷升級儀器功能甚至定制化,這對儀表軟件開發質量和交付速度提出較高的要求。敏捷軟件開發的思想是用于開發和維持復雜產品的框架,其目的是改善軟件開發在需求快速變化中的應變能力,本文深入闡述了敏捷開發方法在選冶儀表開發中的具體應用,并根據開發團隊的規模特點適當簡化開發過程[6-8]。
敏捷開發設計是以人為核心、迭代、循序漸進的開發方法,不同于瀑布開發過程,敏捷開發注重的是人與人之間的面對面交流,Scrum過程是敏捷軟件開發方式之一,是一個過程框架和流程,需要結合具體項目和團隊形式套用和改進,結合選冶儀表軟件開發團隊規模,適當簡化了開發流程[1-2]。
簡化Scrum過程的角色包括(1)產品負責人,負責確定軟件的功能標準,確保Scrum流程在項目中的實施。(2)開發小組成員,負責軟件產品在Scrum規定流程下的開發工作。
簡化Scrum過程的文檔包括(1)產品需求列表(Product Backlog);(2)沖刺需求列表(Sprint Backlog);(3)燃盡圖;(4)人力資源狀態表[3]。
簡化Scrum過程必要管理過程:(1)看板;(2)每日站會;(3)演示會議[5]。
首先由產品負責人確定按優先順序排列的產品需求列表,開發團隊根據需求列表分割細化若干沖刺階段并預估工作量,形成沖刺需求列表,每一次沖刺過程結束時,開發團隊必須形成可以釋放給用戶的軟件,并把開發的軟件展示給產品負責人及相關人員獲得反饋,以更新下一次沖刺列表的內容,依次類推,最終實現產品需求列表中定義的全部功能,如圖1所示[4]。

圖1 Scrum開發模型
Scrum流程方法的實施需要人和項目,本文主要以在線品位分析儀器開發項目為例,組建4人儀表軟件開發小組,組長擔任產品/流程負責人,其他3位成員組成開發團隊,分別擔任人機界面設計、嵌入式軟件設計、數據算法及控制時序設計、系統測試等工作。另外,軟件界面的設計美化需要一名美工人員,因為美化工作并不是貫穿開發的整個過程的,美工人員采用外聘的形式共組,敏捷開發的團隊必須是一個跨職能的高效團隊,才能讓每個人發揮最大的能量。
Scrum過程是主要準備工作就是挖掘需求創建產品列表(Product Backlog),由于該表清晰的定義了每個需求和任務的優先級和完成時間,因此它還是一個詳細的軟件開發計劃,通常產品需求早期階段存在大量的不確定,需要在實施階段不斷的更新,直至研發結束,如表1所列出一部分設計需求實例演示[10]。

表1 需求列表
初步需求開發很難在開始階段定義出一個產品完整的功能,比如說“內層面更換提醒功能”是計時提醒,那么儀器關機了是否需要仍然計時,提醒是彈出一個窗口還是給出一個報警,儀器相關聯鎖動作有哪些,儀器怎樣恢復測量等需要逐步細化的功能。一般客戶不具備需求論證手段也難免出現需求間耦合關系矛盾、多義性的問題,但對于Scrum只要保持開發者與需求提出者順暢的溝通渠道,開發工作即可啟動。工作量由團隊成員共同評估和商定,評估工作量之前先要形成第一階段沖刺計劃。經過技術討論,最終我們確定第一階段可以完成“標定取樣功能”。
另外一個重要方面是統計人力資源狀態,產品負責人根據開發團隊成員可用工作時間、統計人力資源狀態,如表2所示,簡化統計和管理的前提是需要開發團隊成員技術能力狀態均衡,最后計算該沖刺階段的釋放時間。

表2 人力資源狀態列表
在每個沖刺正式開發前,產品負責人根據該沖刺階段的需求任務形成看板—沖刺需求列表,團隊成員和利益相關人員可以清晰明了了解團隊項目進展狀態,如圖2所示。

圖2 沖刺-看板圖
每一個需求開發任務都應該被歸類在“待完成”,“正在進行”“待驗證”“已完成”4個狀態中的任意一個。例如開發“流道標定取樣”時,把該功能分解項放入“待執行”項目中,包括一次取樣設計、多路分配設計、樣品盒取樣設計、標定氣缸時序設計;當開發人員開始實現、測試驗證流道標定分解項子功能時,該功能依次標記為“正在執行”“測試階段”狀態;測試通過該功能標記“已完成”。在敏捷開發中的需要注意的是清晰各子功能相互關聯性,一個功能的修改會導致哪些功能需要重新測試和驗證[9]。
Scrum過程強調開發人員之間充分溝通以快速了解項目的開發狀態,但對于微型團隊而言,這種溝通如果過于頻繁會導致花過多的時間在交流上而不是軟件開發上,每天站會的形式是一個較好的方法。每個工作日開始,團隊人員會圍繞在看板面前主動交流3個問題:上次開會以來做了些什么,今天計劃做什么,現在有無任何困難,對于開發進度相對落后的程序員,其他成員的開發狀態可以潛移默化的對該開發人員產生危機感,無形中可以激勵開發人員的能動性,已達到提供其工作效率的目的。
如圖3所示,該燃盡圖顯示了整個開發過程的進度,橫軸表示開發所化的時間,縱軸表示實現的功能數量的關系。

圖3 看板-燃盡圖
燃盡圖可起到項風險預警提示的作用,該品位分析設備軟件開發在初期階段由于處于磨合階段,在需求沖突評估上出現了小失誤,產品負責人立即組織專題討論從而解決了問題并調整預定速度。在選冶儀表軟件開發過程中,也不斷有新的需求被提出,如果不是變更當前的沖刺階段需求,團隊負責人在評估需求優先級后及時更新需求列表,放入下一次沖刺階段中實現。在軟件釋放階段,為確保儀表軟硬件的匹配,需要專門的軟件釋放沖刺階段去完成驗證,從而確保軟件質量,當軟件系統具備了釋放條件后,此次沖刺階段宣告結束[5]。
經過敏捷開發過程的實施,選冶儀表軟件開發質量、開發效率和團隊成員專業素質都得到明顯提高。隨著選冶行業全流程自動化進程不斷推進和選冶儀表定制化時代的到來,未來對于選冶儀表功能需求仍將不斷的發展和演化。本文通過論述了敏捷軟件開發思想在選冶儀表軟件開發流程中的實踐與應用,證明了這種開發模式在選冶儀表研制過程中具有極強的適應性,發布的軟件產品在行業內也得到一定范圍的推廣應用和肯定。
[1]王式安. 基于敏捷開發的構件化軟件可靠性研究[J]. 微電子學與計算機, 2011, 28(3):119-122.
[2]曹國平. 嵌入式系統開發中敏捷方法的應用研究綜述[J]. 軟件學報,2014, 25(2):267-283.
[3]韓鵬. 小規模團隊的敏捷開發研究[J]. 軟件工程師, 2011(7):42-46.
[4]張林. 敏捷開發在軟件產品項目中的應用實踐[J]. 硅谷,2011(7):122:122.
[5]謝超. 敏捷開發方法在汽車儀表軟件研發中的應用[J]. 汽車零部件,2014(3):52-55.
[6]舒強. 中小軟件企業的敏捷開發之道[J]. 科技情報開發與經濟,2009, 19(6):195-195.
[7]文俊浩. Scrum中軟件缺陷管理方法的研究與應用[J]. 計算機工程,2011, 37(19):35-37.
[8]陳國棟. Scrum敏捷軟件開發方法實踐中的改進和應用[J]. 計算機技術與發展, 2011, 21(12):97-99.
[9]楊帆. 一種改進的Scrum敏捷軟件開發方法[J]. 電子技術, 2011,38(9):22-23.
[10]榮國平. 嵌入式系統開發中敏捷方法的應用研究綜述 [J]. 軟件學報, 2014, 25(2):267-283.
Application of Agile Process Implementation in the Mineral Processing and Smelting Instrument Software Development
ZHAO Yu1-3, ZHAO Jian-jun1-3
(1. Beijing General Research Institute of Mining and Metallurgy, Beijing 100070, China; 2. State Key Laboratory of Mining and Metallurgy Process Automatic Control Technology, Beijing 100070, China; 3. Beijing Key Laboratory of Mining and Metallurgy Process Automatic Control Technology, Beijing 100070, China)
With domestic mineral processing parameters to achieve instrument measurement, mineral processing instrument demand began to grow in the stand-alone automated, intelligent operation, data mining, etc, which put forward higher requirements for the instrument software development. We need to consider how to solve the problem of quality and delivery speed of the instrument software in the case of increasing demand. With the development example of mineral processing and smelting instrument software, the application of agile process implementation to optimize the development process is discussed.
mineral processing and smelting instrument;agile development;scrum;on-line;instrument software
TP319
B
1009-3842(2016)04-0075-04
2016-05-11
趙宇(1979-),男,遼寧鞍山人,高級工程師,主要從事選冶儀表嵌入式系統與智能化技術研究。E-mail:zhao_yu@bgrimm.com