榮輝 上海核工程研究設計院
關于核電軟件自主化與產品化的思考
榮輝 上海核工程研究設計院
核電軟件自主化是我國成為核電強國、實施核電中長期規劃、核電技術走出去的關鍵要素。本文通過對核電軟件自主化現狀的調研以及實施軟件產品化的必要性分析,并結合軟件產品化的相關理念和方法論,提出了核電軟件自主化和產品化的一些建議和措施,以期促進核電軟件向產品化軟件的轉變,提升軟件開發效率,降低軟件開發成本,提升企業核心競爭力。
核電 軟件自主化 軟件產品化
目前,我國核電事業處于從核電大國邁向核電強國的關鍵時期。核電軟件自主化亦是我國成為核電強國、實施核電中長期規劃、核電技術走出去的關鍵要素。為此,本文通過對自主化與軟件產品化的一些介紹,結合當前我國核電發展戰略,進一步分析了實施軟件自主化與產品化的必要性。并通過相關調研,提出了一些思考和建議,以期促進核電軟件的自主化和產品化發展。
軟件自主化,顧名思義,即通過自主化的開發獲得軟件的知識產權。軟件自主化對于一個企業突破知識產權限制、拓寬市場范圍、保持核心競爭力至關重要。沒有自主知識產權,在市場競爭中就會受到種種限制而處于被動地位,喪失競爭優勢。軟件產品化,即客戶無需為軟件添加或調整代碼和語句即能完成軟件的安裝和配置、應用初始化、系統管理、用戶使用的全過程。由概念可知,軟件產品化是建立在模塊化和標準化之上的。通過將軟件劃分為不同的功能模塊,所有模塊以一定的標準進行開發。不同的軟件,其功能由不同的模塊組成。一些模塊可以在多個軟件中實現復用,避免了重復開發。通過模塊的復用,快速形成滿足客戶需求的解決方案。通過市場化的積累,逐步形成軟件服務。
通過對核電行業的調研及問卷調查,結合相關實際情況,本文進行了細致的分析,并參考軟件自主化及產品化的理念和方法論,從管理、人才、技術等方面對核電行業實施軟件自主化和產品化提出了一些思考和建議。
3.1 戰略上高度重視,形成共識
軟件作為智力資產的重要組成部分,同樣凝聚著一個企業的專家知識,行業經驗和規范規程。不僅能反映一個企業自主創新,研發設計能力,也是與國內外同行競爭者保持你無我有,你有我優的核心競爭力的體現。因此,通過在戰略上高度重視,形成共識,創造一個軟件自主化良好氛圍,讓每個人都認識到軟件自主化對核電未來發展的戰略意義,積極配合,相關自主化工作才能順利展開。
3.2 統籌管理,有所為有所不為,順應大數據發展趨勢
軟件產品化不把所有的軟件需求以同等的重要性進行開發,而是參考二八原則,保證核心功能的質量。針對具體的軟件開發,也不是所有軟件都需要使用產品化的理念和方法論來實施。首先建議梳理企業中哪些軟件需要自主化,哪些軟件是自主化的核心軟件。對于前瞻性、戰略性的軟件,力爭自主開發,好鋼用在刀刃上,將有限的優勢資源集中于解決關鍵問題,做到有所為有所不為。另一方面,使用大數據技術進行信息發掘,實現數據增值是時下研究的熱點。據《2016年度中國軟件開發者白皮書》統計,有24%的企業在進行大數據相關的開發和應用,并且自主開發是企業構建大數據平臺的主要方式。所以,大數據相關技術的發展是大勢所趨,但是企業必須進行全局統籌,才能從總體上對數據進行有效梳理并逐步實現大數據應用。
3.3 完善質量保證體系,逐步實現人員分工
針對核電行業,軟件開發的質量保障非常重要,首先要建立相關質量保證體系,例如可參考CMMI等相關標準制定管理體系。此外,針對相關開發人員需定期進行再培訓,讓質保理念深入人心。另一方面,本文建議引入一些行業普遍證明了的方法和工具例如精益六西格瑪的DMAIC方法等來進行開發過程中的質量控制。DMAIC的質量控制方法在軟件開發領域同樣有廣泛應用,將其引入到軟件開發過程中,可有效避免軟件需求不明確,錯誤估計項目大小和難易程度等問題。
3.4 強化用戶跟蹤反饋,建立軟件Bug反饋平臺
由于軟件開發知識密集和人力密集型的特點,即便采用了完備的開發測試策略,軟件Bug也總是難以避免。將軟件Bug及時反饋給開發人員,有助于不斷改進軟件產品魯棒性,提升軟件產品質量。因此,建議建立軟件Bug反饋平臺。將已發布使用的自主化軟件在該平臺上公開征集軟件Bug,并每年對積極反饋軟件問題的人員進行獎勵。
3.5 加強外協管理
軟件自主化工作不可能完全由核電行業從業人員完全自身進行開發,對于一些緊迫性高、時效性強的開發項目,可以考慮利用外部資源。但是外協人員作為非核電相關人員,對核電的相關業務流程較難理解到位,對于涉及到核電安全性和經濟性相關法律法規的理解也相對薄弱。因此,對于分包給外協的項目,必須重視與外協保持密切溝通,并對外協所交付的軟件成果制定完善的測試策略。另一方面,相關規范與規定(如編碼規范、界面設計等)也必須在外協得到落實。
3.6 培養復合型人才,完善人才激勵機制
軟件研發其核心是人才。擁有優秀的開發人員和管理人員,是實現優秀軟件產品的基礎保證。核電軟件研發和一般的軟件研發不同,除了要求開發者有過硬的軟件開發基礎外,更重要的是對相關業務流程,甚至涉及核電安全性和經濟性相關法律法規的深刻理解。僅具備軟件開發知識,不懂業務流程和法律法規,則難以準確領會軟件開發需求,所開發的軟件難免存在功能的疏漏和潛在風險。相反,軟件開發基礎不過硬,則所開發的軟件質量難以保證,其用戶體驗和實用性會大打折扣。所以,必須培養出同時具備軟件工程和核電相關知識的復合型人才,并完善激勵機制。
3.7 可擴展的技術架構,模塊化設計與復用
實現軟件產品化的一個最基本要素是軟件功能模塊化。將軟件功能分解成許多可用來組裝與重用的組件,避免重復開發。如將數據庫的讀寫和更新等功能做成一個通用模塊,不同的軟件產品在開發過程中需要對數據庫進行操作時,直接調用該模塊,實現軟件復用,可提高工作效率。另一方面,模塊化的方式還有助于標準化的實施,實現開發的分工,也是讓合適的人做合適的事的另一種體現。
3.8 精簡技術平臺,統一開發工具
建議將軟件開發中應用到的技術平臺進行精簡,并對精簡之后的技術平臺設置使用優先級。如在服務器使用方面,Linux不僅免費,而且具有比其他服務器系統更好的穩定性。能使用Linux做服務器進行開發,則盡量使用Linux進行開發。在數據庫使用方面,根據軟件產品實際需求選擇合適的數據庫,并不是所有的數據庫都需要使用Oracle軟件,對于一些規模較小的獨立型應用,開源免費的MySQL即可勝任。
3.9 應用數據交換標準,建立信息模型,規范數據接口
核電軟件間必不可少會存在不少的軟件接口,如果只是一對一的打通接口,單個開發,效率低下。為了解決這個問題,一些組織通過使用信息交換標準方法建立了信息交換模型。應用系統之間只需將需要交換的數據遵循信息交換標準向信息交換模型進行映射,即可實現大幅降低數據交互轉換接口的開發工作,提高開發效率。
[1]肖然.突破軟件產品化的困局.2013
[2]CSDN.2016年度中國軟件開發者白皮書.2016
[3]譚志彬,柳純錄.系統集成項目管理工程師教程.2015[1]
榮輝,1984年5月,男,吉林白城人,本科,工程師,核電設計方向。