開發環境包含團隊構建和部署軟件密集型系統所需的一切(軟件是必不可少且必不可少的元素)。 那麼,爲什麼對開發環境具有一致的定義很重要? 簡而言之,許多組織都希望縮短產品上市時間,降低成本並提高質量,而所有這些業務目標都直接受到用於生產這些系統的環境質量的影響。 擁有一致,全面的開發環境定義可以確保在計劃改善當前環境的計劃,定義環境的需求,定義環境的架構,評估環境,確保適當的計劃時,不會忽略任何事情。更改環境時的投資回報率等。 開發環境定義是所有這些任務的關鍵輸入。
在查看構成開發環境的特定元素之前,先了解該環境在整體方案中的位置確實有幫助。
在圖1中,您看到了一個卓越中心,該中心負責創建和維護開發環境。 此環境用於開發項目,這些開發項目又創建和維護軟件密集型系統(或某些其他與軟件相關的可交付成果,例如組件或服務)。 這種簡單的可視化有助於闡明現有的任何卓越中心的角色(包括其團隊成員的角色,流程和關鍵可交付成果:開發環境)與使用該開發環境的項目( 及其角色,流程)之間的區別以及可交付成果)。
對於IBM Rational軟件專家來說,開發環境包括這六個元素,每個元素如圖2所示,並在以下各節中進行了詳細描述:
您可能對成功開發項目的關鍵要素「人員,過程和技術」很熟悉。 但是,出於本文的目的,此模型過於簡單。 儘管如此,圖2中顯示的元素還是建立在該模型上的:
採用是一個新的(也是非常重要的)元素,其重點是在組織,業務部門或開發項目中引入開發環境。
任何開發環境的關鍵要素都是從業人員正式或非正式地遵循的方法。 這些是與方法相關的關鍵元素:
開發工具可自動執行所遵循方法的各個方面。 例如,您可能使用一種工具來存儲和管理開發項目上的需求,或者使用一種工具來可視化地對體系結構和設計進行建模,或者使用工具來測試您的軟件,等等。
這些是與工具相關的關鍵元素:
使從業人員能夠使用(開發和指導)使用開發環境有助於成功採用。 因此,可以應用的培訓和指導材料的定義和創建是開發環境的方面。 成熟的組織還特別注意其員工的專業化以及與外部專業組織的配合。
這些是與啓用相關的關鍵元素:
開發環境的另一個考慮因素是確保有適當的組織來定義,部署和管理它。 這可能包括開發環境的某些方面的專家(例如方法專家,工具專家,培訓師和指導者),管理和支持環境的人員,在公司服務檯上具有適當技能的人員以及適當的實踐社區。
這些是與組織相關的關鍵要素:
開發環境從硬件和軟件角度考慮基礎結構。 先前在討論方法,工具,實現和組織時已經暗示了這一點。 但是,有以下三個理由將基礎結構獨立地視爲關鍵要素:
這些是與基礎架構相關的關鍵元素:
除了已經列出的要素之外,關注組織,業務部門或開發項目中環境的採用也很重要。
這些是與採用有關的關鍵要素:
解決方案上下文 (開發環境是所考慮的解決方案)也很重要。 上下文代表對開發環境的要求,可以從功能 , 質量和約束方面考慮。
這種想法可以應用於開發環境中的其他功能,例如體系結構或質量管理。 它也可以應用於特定的實踐,例如迭代開發(在軟件開發和交付的敏捷方法的核心),這也需要您考慮所有要素。
當然,當組織考慮對其現有開發環境進行更改時,另一個重要的約束條件就是投資回報率(ROI)。 爲了使這樣的計劃成功,它必須明確地產生與該計劃的業務案例相符的積極成果。 開發環境的每個區域都會在成本和收益方面影響ROI。
儘管未在圖2中顯示,但功能,質量和約束通常與已定義的任何業務環境(例如業務目標)保持一致。 從這個意義上講,解決方案上下文還包含業務考慮因素。 當顯示開發環境如何直接或間接地有助於實現業務目標時,這一點尤其重要。
在定義開發環境的各種元素時,考慮到環境生命週期的以下元素(如圖4所示)非常有用,因爲除了解決方案上下文之外,它們每個都具有影響定義的特定問題:
在研究這些領域之前,有必要解釋一下爲什麼將這些不同的領域以圖4的週期鏈接在一起。該圖承認有效的更改(在這種情況下,是對開發環境的改進)通常是通過一系列漸進式更改而不是而不是大爆炸式的改變(進化,而不是公轉),其中每個增量代表一個循環。 但是,按照定義,增量執行的更改會更改下一個增量的上下文(例如,從業人員現在可能已經提高了技能,可以使用新的硬件,可以使用新的工具等等)–因此顯示出週期性。
在以下各節中,將對開發環境的每個元素以及解決方案定義,解決方案部署和解決方案管理進行綜合考慮。
較早的討論集中在定義開發環境時要考慮的關鍵要素。 雖然爲了完整起見,這裏不重述該討論,但表1中再現了所定義的各個項目。
還應注意,該定義通常在組織級別考慮,並且可能需要本地實例化以解決特定業務單元或項目在部署時的需求。 這在下面的部分中得到反映。
元件 | 描述 |
---|---|
方法 | 角色,工作產品,任務,流程 標準,準則,清單等 方法部署拓撲 |
工具類 | 開發工具和集成 開發工具配置和安裝腳本 開發工具部署拓撲 |
使能 | 培訓課程和課程 指導材料 啓用部署拓撲 |
組織 | 組織角色和單位 組織部署拓撲 |
基礎設施 | 位置,節點和連通性 配套軟件(如操作系統) |
採用 | 收養計劃 推動組織變革的技術 環境指標 |
表2顯示了開發環境的部署針對每個元素引入了特定的關注點。
元件 | 描述 |
---|---|
方法 | 定義本地配置 部署方法 |
工具類 | 執行本地配置 安裝工具 遷移本地數據 |
使能 | 執行本地配置 部署支持材料 培訓從業人員 |
組織 | 定義本地配置 改組 |
基礎設施 | 定義本地基礎架構 供應位置,節點,連接性 提供支持軟件 |
採用 | 定義本地收養計劃 驗證環境 |
與方法有關的關鍵要素:
關鍵工具相關元素:
與關鍵實現相關的元素:
與組織相關的關鍵要素:
與基礎架構相關的關鍵要素:
與採用相關的關鍵要素:
如表3所示,部署後對開發環境的管理還引入了對每個元素的特定關注。
元件 | 描述 |
---|---|
方法 | 收集方法反饋 |
工具類 | 備份,存檔或還原數據 收集工具反饋 |
使能 | 導師 收集有關啓用的反饋 |
組織 | 收集有關組織的反饋 |
基礎設施 | 根據需要配置或淘汰基礎架構 收集有關基礎架構的反饋 |
採用 | 衡量環境效益 收集關於採用的反饋 |
與方法有關的關鍵要素:
關鍵工具相關元素:
與關鍵實現相關的元素:
與組織相關的關鍵要素:
與基礎架構相關的關鍵要素:
與採用相關的關鍵要素:
最後,請記住,開發環境的各個要素並不像本文所暗示的那樣獨立。 圖5顯示了圖2的另一種表示形式,它說明每個元素與所有其他元素都有關係。
以下是一些元素之間依賴關係的示例:
本文是同一作者Peter Eeles的文章, 該文章由The Rational Edge在2008年出版: 開發環境架構師的興起 。 這裏的各節詳細介紹了構成開發環境的關鍵要素,並指出了在定義,部署和管理這種環境時的不同關注點。 這提供了一個簡單的框架,可用於確保在計劃旨在改善當前環境的計劃,定義對環境的要求,定義體系結構,評估環境等等時,考慮所有這些方面。
翻譯自: https://www.ibm.com/developerworks/rational/library/define-scope-development-environment/index.html