結合DevOps文化談應用的非功能性需求
眾所周知,隨著網際網路和資訊科技的發展,軟體、應用或APP已經進入了爆發式增長的階段。對於他們而言,功能性和非功能性是體現核心競爭力的兩個方面,功能性比較容易理解,而非功能性主要指速度、是否高可用、設計是否人性化……今天就結合DevOps來談一談對應用非功能性需求的一些認識。
關於非功能需求都包括哪些“軟”指標,可以通過ISO/IEC 25010 軟體質量管理模型瞭解一下。從圖中我們可以看到,除了功能性外,影響軟體產品質量的關鍵因素還包括效率、相容性、易用性、安全性、可靠性、可維護性和可移植性7個維度,每個維度又包括了許多方面,涉及到架構、內容、互動、運營、安全等,這些都屬於非功能需求的範疇。在get了這些需求後,如何去實現他們,又是一個比較頭疼的問題了。
ISO/IEC 25010 軟體質量管理模型
要想實現應用的非功能性需求,就要打穿部門之間的壁壘,讓不同的部門同時參與,互相協作。因為這些需求放在哪裡、哪個部門、哪個階段貌似都不能一勞永逸,高枕無憂,因為有的需求需要的是伺服器資源,如“支援動態使用者1500以上”,有些需求需要的是開發過程解決,比如“系統支援多種瀏覽器”,還有的需求是需要應用釋出之後,運維團隊來實現,比如“普通修改一天內完成”,再有甚者,需要多種資源,多個團培配合著來,比如“應用熱點/流量熱點分析”等。
多部門協作以實現應用的非功能性需求
當多個部門共同參與開發應用的非應用型需求,這種文化氛圍與DevOps殊途同歸。在DevOps的文化裡,不緊緊的打通了運維與開發的屏障,更是將各個階段形成了一個生生不息的迴圈,形成一個持續整合、持續交付的生態,如果說DevOps是一種文化,一種氛圍,追求高品質的App是目的,那麼,努力發展非功能需求的實現及優化則是一種行之有效的手段。
由於實現了非功能需求的服務化,在一個良好的DevOps的氛圍裡,我們甚至可以利用這些服務來做線上BI甚至精準營銷,由運營側提出需求,指定基於App的使用者行為分析圖,然後分析收集的資料,反向推動優化非功能需求的實現甚至是主線功能需求的優化,從而達到提升客戶滿意度,提升市場佔有率的目的。由於我們已經打通了應用交付服務的關節,所以這些資料和分析與每個部門各自為戰比起來,要精準、快速、高效的多。
DevOps提升應用品質
以上就是我結合DevOps文化對應用非功能性需求的實現的一些想法,在應用同質化加劇的情況下,非功能性需求這個“軟服務”會給使用者提供更