足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

應用程序生命周期管理軟件方案的評估指南
2016-02-23 11:55:44   來源:Kristof Horvath ,譯者 邵思華   評論:0 點擊:

應用程序生命周期管理工具能夠帶來許多益處,并且在來自各種行業的公司中得到了越來越多的應用。不過,找到最適合你的需求與內部流程的解決方案仍是一個復雜的任務。本文的作者提供了一份指南,通過列出一份涵蓋了你對于ALM的需求的征求意見書,幫助你做出合理的采購選擇。

許多軟件開發者在從事越來越復雜的產品開發工作時仍舊在使用一些單點的陳舊解決方案,這些方案往往并不是為了這種復雜度和產品而設計的,而采用一種應用程序生命周期管理(ALM)平臺能夠有效地為開發者提供幫助。許多公司與團隊仍然依賴于一些陳舊的工具以追蹤他們的開發流程,這使他們在試圖跟上軟件開發不斷增長的步伐與復雜性時不得不面對更多的挑戰。

越來越多的公司已經認識到ALM解決方案能夠在協作、可追蹤性、快速推向市場以及軟件質量等方面帶來諸多的益處。但是,各種軟件商提供的ALM工具可謂不計其數,而你所選擇的平臺對于你的軟件開發過程(以及公司的成功)將產生巨大的影響。因此,選擇一種能夠對你的當前以及未來的流程提供最佳的支持,并簡化這種流程的ALM工具是至關重要的。本文旨在幫助你對于各種選擇進行評估,并在購買ALM軟件時幫助你做出合理的決策。

介紹

為了跟上不斷擴大的市場的需求,軟件開發者們如今所面對的軟件方案的復雜性正在不斷提高。InfoQ的大多數讀者們已經了解了這一點,其中有很大一部分或許還在這個問題上掙扎。而從傳統的瀑布式模型向敏捷實踐的轉型也在不斷地增長,對于讀者中的大多數人而言這一點應該也并不陌生。

越來越多的軟件開發公司開始意識到,依賴于不合適的陳舊工具以及大量的手工操作已經不可行了。像MS Office(Word與Excel)、Bugzilla、Mantis等工具依然普遍用于需求、問題、變更,乃至于整個開發流程的管理。而這些工具不僅功能上非常受限,并且必需進行大量的手工操作,才能夠對各種交付品(源代碼、測試用例等等)進行集成,以及生成能夠表現出交付品的可追蹤性的鏈接。

實際上,軟件開發者所面對的普遍問題就包括流程的不清晰、流程管理的不合理、缺乏協作(或是不夠自然)、以及為了確保可追蹤性所必需的繁重的人為流程。這些問題對于那些安全至上的設備,例如用于汽車、醫學以及航空產業中的設備中嵌入的軟件的開發團隊尤其明顯。這些安全至上的市場建立了各種標準與規定,以實現完全的透明度以及無間隙的端到端可追蹤性。因此,使用“舊式”的單點工具實際上是不可能完成這種開發任務的。

ALM將拯救這一切

生產軟件開發平臺的軟件商很早就認識到了這方面的需求,并推出了各種解決方案以應對這些挑戰,這一切顯得很自然。歡迎來到應用程序生命周期管理的世界,ALM工具提供了形形色色的功能,使軟件開發生命周期合理化,并且讓這些復雜的流程變得更清晰。毫無疑問,各行各業對于ALM軟件的采用率將不斷上升,并且這種趨勢在今后幾年內還將繼續。

應用程序生命周期管理工具的作用包括改進軟件質量、降低成本、加快推向市場的速度、并通過清晰定義的工作流增進協作。它將使你在整個生命周期中對于交付品與流程有著全盤掌握。此外,高級的整合ALM解決方案還為報表的導出提供了簡單的方式,對于之前所提到的那些高度關注安全性的產業來說,這種能力能夠大大地促進在合規性方面的審計工作。

好,現在,對于你所面對的最迫切的困難來說,已經出現了一個解決方案(或至少能夠為你帶來很大的幫助)。那你是否應當馬上沖到商店里,從貨架上取走一份ALM平臺工具,然后就坐在椅子上等著數錢呢?

事情是這樣的:應用程序生命周期管理軟件有著各種不同的類型與規模,在其中找到一個能夠完美地適合你的流程的工具并不容易。為了迎合不斷發展的市場需求,ALM這一領域本身也在持續發展中,他們對于相同的問題可能會給出不同的答案,因此對ALM方案進行對比也是一件困難的任務。

如果以上這些觀點不夠有說服力,那么還有一點:你需要為將來做好準備。舉例來說,你目前或許依賴于某種瀑布模型或V模型,但越來越多的軟件開發公司正在、或即將轉向敏捷流程。你所選擇的ALM應當是不會過時的,它不僅能夠支持你現有的流程,并且還要支持未來可預見的各種開發方面的變化。因此,完美的ALM平臺應當足夠靈活,以滿足你不斷變化的需求,它支持你現有的流程,而不是告訴你應該如何開展工作。

如何選擇正確的ALM工具?

首先,也是最重要的一點是建立計劃。如果你能夠進行一些事前的思考,在尋找工具之前先找到你的優先事項與需求,就能夠避免許多麻煩。雖然這一點聽起來很簡單,但你或許需要拓展一下思維。先暫緩一下,從一個客觀的、外部的視角審視一下你的流程。以下這個檢查清單將幫助你充分地為流程做好準備。

一旦你擬定了特定的需求之后,準備一份征求意見書(Request for Proposal - RFP)是一個不錯的點子,它是你選擇ALM工具與軟件商的第一個依據。請記住一點,你不需要一個人完成所有工作:ALM的軟件商將迫不及待地為你推銷他們的商品,因此你的團隊無需遍歷整個市場,人為地選擇各種可用的ALM平臺。你應當利用好一個事實:你才是預算的持有者,放心地讓軟件商們去操心那些事吧。盡管如此,但RFP也是一把雙刃劍:軟件商將盡力表現出他們的優勢,而對產品的劣勢避而不談。因此,你必須仔細地編寫RFP,以確保它完整地涵蓋了所有需求。

策略、技術與業務需求

通常來說,你需要考慮三種類型的需求,這幾種需求將以不同的程度影響你的決策。在決定了需求規格的優先級之后,不妨建立一種簡單的打分系統,以評判這些ALM方案。你可以為每個特性或功能點給出1分至10分中的一個數值,這種方式可以讓你方便地評估不同的軟件平臺的得分。

策略優先級

現有流程

雖然優秀的ALM方案能夠幫助你對于流程進行改進與合理化,但你或許并不想一次性全部推倒重來。因此,理想的平臺應該能夠以靈活的方式進行配置,以適應現有的內部流程。并且在你能夠預見的將來,它應當能夠支持更高級的工作流。

現有的生態系統與集成

與現有的流程類似,有一些現有的工具是你想在新的方案中繼續保留的,而你所選擇的ALM平臺應該能夠與這些工具集成。此外,還要注意一點,你可能必須與其他團隊、部門甚至是外部的合作伙伴進行交流,而他們可能會使用其他類型的工具,甚至是已過時的工具。

即使你在團隊內部可能會使用新的ALM軟件中包含的高級需求管理功能,但如果這些人依然在使用MS Excel進行需求的管理,那么你的ALM工具也必須能夠處理.xls文件。你與合作伙伴或承包商之間仍然需要交流需求方面的內容,因此在這一個例子中,對Excel的支持是必不可少的。

另一個要考慮的部分是:你所選擇的解決方案是否本身就提供了與你使用的其他工具進行集成的功能,還是提供一些API以創建自定義的集成能力。

支持的方法學

正如之前所說,ALM并不僅僅針對敏捷流程,許多現有的ALM產品同樣支持瀑布式流程。即使是那些安全至上的產業也在越來越多地轉向敏捷流程,你或許會考慮在將來的某一天替換現有的流程及方法學,以擁抱敏捷方法所帶來的各種益處。有些開發團隊在轉換過程中會選擇一種混合型的途徑,以揉合敏捷與瀑布方法的各種實踐。因此,如果你還不確定會采用哪種方法,那么最好的方式是找到一種能夠同時支持這兩種方法的ALM工具,使你能夠采用混合型的轉換途徑。

特定于產業的解決方案及多生命周期的管理

你需要仔細地考慮一下是否需要一種特定于產業的解決方案。舉例來說,對于從事高合規性產業,例如醫學及汽車領域的開發者來說,他們能夠從預配置的流程模板及儀表板等工具中受益良多,這將幫助他們在配置與合規性的審計過程中節省大量的時間。而提供這種解決方案的軟件商也會在這些領域具備相當的知識,因此,如果這一點對你來說很重要,請確保在你的計分系統中反映這一點。

對于醫學設備中的嵌入軟件來說,他們對于風險管理方面的功能的需求比起做瑜珈應用的公司來說顯然要更為迫切。不同的軟件商對于開發流程中的風險管理提供了不同的解決方案(有一些軟件商決定在ALM系統中完全忽略這一部分)。FMEA(失效模式和效果分析)、具體的風險跟蹤、風險矩陣圖、風險可跟蹤性等等都是你需要注意的內容。

開發IOT產品的公司必須同時應對硬件、軟件和服務的創新以及開發。不僅管理這些相互牽連的生命周期非常困難,它對于ALM軟件商來說也是一個新的領域。因此,并非市場上所有解決方案都已為這種并行的生命周期管理的支持做好了準備。還是那句話,如果這一點適用于你的組織,請確保你已調查過所選擇的方案如何支持并行的開發流。

技術規格

集成的架構

使用ALM的目的就是為了鞏固對某個平臺整個生命周期的管理。因此,你需要確保所選擇的ALM方案支持開發過程中的各種流程。除了需求管理之外,軟件開發與測試(及質量保障)的功能也是最基本的。最好還能夠提供一些額外的功能,例如某些ALM工具能夠提供強制需求管理模塊、支持發布管理、DevOps,可能還會提供其他各類的特性。

有一點需要指出的是,這些功能不應僅僅把獨立的模塊簡單地拼接在一起。你所需要的是一個集成的架構,它應使用一個單一的集中式repository以保存所有模塊的數據。這能夠幫助你確保數據在整個生命周期中的一致性,為參與這一生命周期的所有團隊和團隊成員提供一個單一的信任源。

可配置性、可靈活地自定義的交付品以及工作流

理想的ALM解決方案應當提供不同類型的預配置工作項,同時又允許你對交付品進行自定義。這樣一來,你就能夠對ALM進行調整,以符合自身的需求,在數據源與各種跟蹤功能間進行區別,并將所有相關數據保存在你的工作項中。

同樣的道理也適應于流程:舉例來說,雖然對于需求建立一種預定義的批準流程是一件好事,但你的實際流程與ALM方案中所自帶的模板往往并不匹配。提供一些默認的選項雖然是好事,但重要的是你選擇的方案能夠讓你配置自身的工作流,并允許你強制應用他們(通過條件式邏輯及電子簽名等等防衛性手段實現)。

可追蹤性

可追蹤性是對于ALM軟件最基本的需求之一,無論你身處哪個行業,這一點都是必需的。它允許你創建整個生命周期中對于所有交付品(包括需求、任務、源代碼、測試用例、發布、bug等等)之間的鏈接,并且進行記錄和瀏覽操作,以保證以下幾點:

  • 每個需求都已經進行正確地實現(已開發了相應的特性,并進行了充分的測試)
  • 在已發布的軟件中的每行代碼都可以追溯到一個具體的需求,以解釋代碼的目的。

可追蹤性對于軟件的質量非常關鍵,對于安全至上的產業來說尤其重要,因為其標準和規定需要公司提供完整的、端到端的可追蹤性。高級ALM方案所提供的集成性能夠確保整個生命周期中無間隙的可追蹤性。

需求管理

長話短說吧,充分的需求管理是成功的基本。因此,在你的RFP中最好為與需求相關的功能中專門列出一個重要的部分。

在決定你的選擇之前應多比較幾家不同的軟件商,以了解他們所提供的功能,你可能尚未意識到某個具體的特性(例如對需求進行投票決定)對于你的實用性。如果你的ALM方案還能夠在各種需求與其他交付品之間建立鏈接就更好了。如果能夠與一些廣泛使用的替代方案(例如MS Word與Excel)進行雙向集成,那么這種特性也能夠促進提供者之間的協作。這種例子還包括對來自于某個庫的需求進行保存與重用(例如你正在管理多個相似的產品)。

軟件開發

一般來說,你的ALM方案應當提供源代碼管理功能(通過Git、Subversion、Mercurial或任一種你使用的工具進行版本控制)、對于所有的工作項設立基準線的特性、以及變更及repository管理的特性。對于這一話題很難給出一般性的指南,因為它在很大程度上取決于你的特定內部流程。

QA與測試

質量保證是另一個重要的課題。根據你的測試與QA流程的不同,你可能需要進行自動化測試、可重用的測試用例、參數化的測試、測試覆蓋率分析以及其他一些相關的特性。還是那句話,確保你已經對內部的流程進行分析,并在RFP中對你的需求進行詳細地描述。

協作式的任務、項目以及團隊管理

你的ALM方案應當能夠處理不同的項目,在每個項目中各自設立團隊與成員,并且能夠為每個團隊成員分配任務。每個任務應當能夠和發布進行關聯,這種方式能夠讓你的團隊中的每位成員對于項目的進展有一定程度的(視覺上的)理解。而一個可自定義的看板板對于促進任務管理也能夠起到一定作用。

有些ALM中還可以實現更多的協作特性,例如留言、可觸發的通知(內置的通知系統或email通知)、對某些工作項進行投票與評分、或是ALM中的在線聊天功能等等。有些軟件商還提供了某種形式的服務臺特性,以幫助你管理與客戶之間的交流,并支持問題的管理(例如客戶提交的bug、變更需求等等)。

文檔與報表

在開發過程中所發生的每件事都應當進行日志或文檔記錄,而文檔更容易導出為易用的格式。它在審計階段能夠起到很大的作用,如果你的終端產品(及流程)需要符合業界的規定或標準,那么你就需要證明你的合規性。

自定義的指標與報表應該是可配置的,最好能夠以一種對用戶友好的儀表板的方式加以呈現。儀表板能夠幫助你監督整個開發流程,以及各種指標和可視化的數據,例如預計時間與花費時間、燃盡圖等等。

業務需求

托管選擇

軟件商通常會為他們的方案提供本地或SaaS(云托管)的版本,有時還將同時提供兩種選擇。你需要對基礎設施及環境進行分析,以確定哪種選擇更適合你。此外,你還應考慮是否需要追加對基礎設施的投入(例如一臺全新的服務器),因為必要的硬件升級對于你的ALM平臺的價格將是一次不菲的開銷。公司的安全政策、防火墻、伸縮性需求,以及分散于各地的團隊(影響服務器的響應時間)種種因素都將影響你的決策,你需要在最終采購之前進行認真思考。

支持、培訓與顧問

無論整個流程看上去多么漫長、多么復雜,購買一個ALM方案也只是萬里長征的第一步而已。你首先要將這個方案與你的開發環境進行集成,并在使用之前對所有的流程與工作流等內容進行配置。應確保選擇的軟件商能夠提供部署與顧問服務(最好是上門服務),以簡化整個流程。

你還需要為你的團隊進行培訓,以幫助他們認識ALM的真正價值,因此在你為這個平臺所確定的最終價格中,也應當包括初步的培訓價格。此外,軟件商也應當提供顧問服務的選擇,幫助你充分利用新版本中更多的特性,并解決來自團隊所提交的各種問題。如果軟件商還能夠定期地提供網上教學以幫助你利用ALM的特性,那是再好不過了。

總體擁有成本及可選的許可計劃

最后,你需要記住這一切的目的都是為了增進效率。最起碼,你所使用的ALM工具應當幫助你提高生產力,并改進團隊或組織的整體盈利能力。成本并非最重要的因素,請記住,如果你選擇了一種不理想的方案,那從長遠來看,它的成本將會高得多(降低的效率、浪費的時間與精力)。

此外,在許可價格之外可能還存在顧問、培訓、支持和其他成本,因此計算總體擁有成本(TCO)十分重要。基本上,這一過程將持續2到6年時間,然后總結這段期間內可預見的與ALM相關的開銷。正如某個有經驗的銷售人員所說:“不要關注價格,而是關注成本。”

ALM工具通常會提供多種不同的許可選擇。有些軟件商會提供針對性的許可(僅限幾個特定的用戶)或是不固定的許可,即可以由多個用戶使用,但同一時間只有一個人可以使用。還有一種選擇是“租用”解決方案(對許可、升級、支持等交付年費),而不是購買永久性的許可以及獨立的支持服務(在這種場合下,你永久地買下了這個軟件,但需要為其他服務交付年費)。此外,對于某些模塊、特性或權限來說,可能還存在各種不同的許可類型。在理想的情況下,軟件商將幫助你確定需求,對于你需要的許可類型的最佳組合提供一個具有競爭力的價格。

實現ALM解決方案

總的來說,對于ALM解決方案的評估與采購是向前邁出的一大步,因此不可輕率待之。你需要全面地考慮以上所述的內容,以及你可能會產生的額外需求,然后再開始落實選擇適合的應用程序生命周期管理平臺的過程。

不過,正如ALM實施的快速發展所表現出的趨勢,它的益處將遠遠超過所付出的成本,前提是你選擇了正確的軟件方案。審慎的挑選所付出的時間與精力將得到適當的回報。我們的最后一個建議是:別忘了還價!也許你選擇的方案還有各種折扣,但軟件商顯然不會提醒你注意這些條款。

關于作者

Kristof Horvath是來自于Intland Software的一位應用程序生命周期管理傳教士,他也是codeBeamer的開發者,這是一個綜合的、一體化的、端到端的整體ALM方案。Kristof經常在博客中發表關于生命周期管理、敏捷方法和IoT產品開發的文章。歡迎通過他的電子郵件kristof.horvath@intland.com與他取得聯系。

查看英文原文:An Evaluation Guide to Application Lifecycle Management Software Solutions

相關熱詞搜索:evaluation alm software 文化 & 方法 工件和工具 ALM

上一篇:專訪英特爾(中國)開源技術中心:HTML5要如何達到原生性能
下一篇:四款頂級的開源問題追蹤工具概述

分享到: 收藏