.h中宏定義 宏定義的範圍_定義您的開發環境的範圍

爲什麼定義很重要

開發環境包含團隊構建和部署軟件密集型系統所需的一切(軟件是必不可少且必不可少的元素)。 那麼,爲什麼對開發環境具有一致的定義很重要? 簡而言之,許多組織都希望縮短產品上市時間,降低成本並提高質量,而所有這些業務目標都直接受到用於生產這些系統的環境質量的影響。 擁有一致,全面的開發環境定義可以確保在計劃改善當前環境的計劃,定義環境的需求,定義環境的架構,評估環境,確保適當的計劃時,不會忽略任何事情。更改環境時的投資回報率等。 開發環境定義是所有這些任務的關鍵輸入。

將開發環境置於上下文中

在查看構成開發環境的特定元素之前,先了解該環境在整體方案中的位置確實有幫助。

在圖1中,您看到了一個卓越中心,中心負責創建和維護開發環境。 此環境用於開發項目,這些開發項目又創建和維護軟件密集型系統(或某些其他與軟件相關的可交付成果,例如組件或服務)。 這種簡單的可視化有助於闡明現有的任何卓越中心的角色(包括其團隊成員的角色,流程和關鍵可交付成果:開發環境)與使用該開發環境的項目( 及其角色,流程)之間的區別以及可交付成果)。

圖1.從開發項目中區分卓越中心
說明差異的圖表

查看全尺寸圖片

說明差異的圖表

開發環境的要素

對於IBM Rational軟件專家來說,開發環境包括這六個元素,每個元素如圖2所示,並在以下各節中進行了詳細描述:

  • 方法
  • 工具類
  • 使能
  • 組織
  • 基礎設施
  • 採用
圖2.開發環境的元素
開發環境包含6個關鍵要素

查看全尺寸圖片

開發環境包含6個關鍵要素

您可能對成功開發項目的關鍵要素「人員,過程和技術」很熟悉。 但是,出於本文的目的,此模型過於簡單。 儘管如此,圖2中顯示的元素還是建立在該模型上的:

  • 人們以能力和組織爲代表。
  • 過程等於方法
  • 技術工具和基礎架構爲代表。

採用是一個新的(也是非常重要的)元素,其重點是在組織,業務部門或開發項目中引入開發環境。

方法

任何開發環境的關鍵要素都是從業人員正式或非正式地遵循的方法。 這些是與方法相關的關鍵元素:

  • 核心方法元素,例如角色,工作產品,任務和流程
  • 補充方法元素,例如標準,指南,清單,模板和示例
  • 例如在將方法作爲公司Intranet上的網站部署時可能考慮的方法部署拓撲。 在此示例中,需要使用Web服務器來託管內容,並且工作站必須安裝適當的Web瀏覽器並連接到Web服務器。

工具類

開發工具可自動執行所遵循方法的各個方面。 例如,您可能使用一種工具來存儲和管理開發項目上的需求,或者使用一種工具來可視化地對體系結構和設計進行建模,或者使用工具來測試您的軟件,等等。

這些是與工具相關的關鍵元素:

  • 開發工具及其集成
  • 開發工具配置和安裝腳本
  • 開發工具部署拓撲,它考慮了客戶端和服務器端所需的軟件和硬件,以及任何相關的目標平臺和仿真器(例如,當您爲實時或嵌入式設備進行開發時)

使能

使從業人員能夠使用(開發和指導)使用開發環境有助於成功採用。 因此,可以應用的培訓和指導材料的定義和創建是開發環境的方面。 成熟的組織還特別注意其員工的專業化以及與外部專業組織的配合。

這些是與啓用相關的關鍵元素:

  • 培訓課程和課程。 這涵蓋了各種各樣的培訓需求,從培訓有經驗的從業人員到精益求精到開發環境,一直到針對擔任新角色的從業人員的綜合培訓課程。
  • 指導材料。 這些都是在指導經驗不足的同事進行項目時由個人應用的。
  • 啓用部署拓撲。 例如,當通過基於Web的培訓提供啓用時,必須考慮部署拓撲。 同樣,需要Web服務器來託管啓用材料和配備Web瀏覽器的工作站。 部署拓撲還可能指定交付課堂培訓所需的位置和房間。

組織

開發環境的另一個考慮因素是確保有適當的組織來定義,部署和管理它。 這可能包括開發環境的某些方面的專家(例如方法專家,工具專家,培訓師和指導者),管理和支持環境的人員,在公司服務檯上具有適當技能的人員以及適當的實踐社區。

這些是與組織相關的關鍵要素:

  • 定義開發環境中的組織角色和單位
  • 指示這些組織單位位置的組織部署拓撲

基礎設施

開發環境從硬件和軟件角度考慮基礎結構。 先前在討論方法,工具,實現和組織時已經暗示了這一點。 但是,有以下三個理由將基礎結構獨立地視爲關鍵要素:

  1. 首先是合併。 例如,通過查看整個開發環境的基礎結構需求,您可能會發現只需要一個Web服務器即可支持基於Web的方法內容和基於Web的培訓。
  2. 第二是確保適當考慮支持開發環境的任何其他硬件和軟件,例如操作系統軟件,數據庫管理系統或板級控件以及測試工具(如果要進行實時或實時開發)。嵌入式設備。
  3. 第三是卓越中心可能需要基礎結構來支持開發環境的測試和開發,然後才能在任何生產基礎結構上使用它來支持業務項目。

這些是與基礎架構相關的關鍵元素:

  • 位置,節點和連接性
  • 軟件(例如操作系統,數據庫管理系統,板級控件和測試工具)。

採用

除了已經列出的要素之外,關注組織,業務部門或開發項目中環境的採用也很重要。

這些是與採用有關的關鍵要素:

  • 收養計劃。 該計劃定義了採用環境時通常執行的任務,例如購買任何硬件和軟件。
  • 推動組織變革的技術。 將需要這些來將開發環境引入並嵌入到受影響組織區域的日常工作中。
  • 環境指標的定義。 這些度量標準用於評估環境的有效性。

解決方案上下文

解決方案上下文 (開發環境是所考慮的解決方案)也很重要。 上下文代表對開發環境的要求,可以從功能質量約束方面考慮。

  • 功能代表開發環境要提供的軟件工程實踐或學科。 實現這些要求會使您考慮前面提到的所有元素。 例如,如圖3所示,需求管理學科將受到以下支持:
    • 需求管理方法
    • 需求管理工具
    • 需求管理方面的培訓和指導
    • 知道需求管理解決方案的服務檯人員
    • 支持需求管理相關元素的硬件和軟件
    • 在項目上適當採用需求管理準則
圖3.所需的功能涉及開發環境的所有元素
需求管理元素列表

這種想法可以應用於開發環境中的其他功能,例如體系結構或質量管理。 它也可以應用於特定的實踐,例如迭代開發(在軟件開發和交付的敏捷方法的核心),這也需要您考慮所有要素。

  • 質量代表開發環境應展現的屬性。 這也需要考慮開發環境的所有要素。 例如,可以通過以下方式適應可伸縮性質量(例如,支持不同數量的併發用戶的能力):
    • 可以定製以適合項目規模的方法
    • 可以配置爲支持可配置方法的工具
    • 針對不同規模項目的適當機制和培訓水平
    • 提供團隊成員適當技能水平以支持預期數量的開發項目的組織
    • 可以擴展以支持預期的併發用戶數量的基礎架構
    • 採用適當的環境機制。
  • 開發環境應適應的約束還需要考慮開發環境的所有要素。 例如,需要從現有環境進行遷移可能導致這些操作
    • 從現有方法中獲取實踐並將其合併到新方法中
    • 將工作產品從不推薦使用的工具集中遷移到另一個(或需要與將保留的現有工具集成)
    • 提供承認當前理解並適當定製的支持
    • 提供了人員保證平穩過渡從原樣狀態到待狀態。
    • 指定最大程度地重用現有基礎結構的基礎結構(例如,儘可能重用現有的硬件和軟件許可證)
    • 適當的採用機制確認要執行的遷移

當然,當組織考慮對其現有開發環境進行更改時,另一個重要的約束條件就是投資回報率(ROI)。 爲了使這樣的計劃成功,它必須明確地產生與該計劃的業務案例相符的積極成果。 開發環境的每個區域都會在成本和收益方面影響ROI。

儘管未在圖2中顯示,但功能,質量和約束通常與已定義的任何業務環境(例如業務目標)保持一致。 從這個意義上講,解決方案上下文還包含業務考慮因素。 當顯示開發環境如何直接或間接地有助於實現業務目標時,這一點尤其重要。

定義,部署,管理

在定義開發環境的各種元素時,考慮到環境生命週期的以下元素(如圖4所示)非常有用,因爲除了解決方案上下文之外,它們每個都具有影響定義的特定問題:

  • 環境的定義
  • 部署環境
  • 環境管理
圖4.開發環境的生命週期
顯示增量變化的流程

在研究這些領域之前,有必要解釋一下爲什麼將這些不同的領域以圖4的週期鏈接在一起。該圖承認有效的更改(在這種情況下,是對開發環境的改進)通常是通過一系列漸進式更改而不是而不是大爆炸式的改變(進化,而不是公轉),其中每個增量代表一個循環。 但是,按照定義,增量執行的更改會更改下一個增量的上下文(例如,從業人員現在可能已經提高了技能,可以使用新的硬件,可以使用新的工具等等)–因此顯示出週期性。

在以下各節中,將對開發環境的每個元素以及解決方案定義,解決方案部署和解決方案管理進行綜合考慮。

定義

較早的討論集中在定義開發環境時要考慮的關鍵要素。 雖然爲了完整起見,這裏不重述該討論,但表1中再現了所定義的各個項目。

還應注意,該定義通常在組織級別考慮,並且可能需要本地實例化以解決特定業務單元或項目在部署時的需求。 這在下面的部分中得到反映。

表1.定義注意事項
元件 描述
方法 角色,工作產品,任務,流程
標準,準則,清單等
方法部署拓撲
工具類 開發工具和集成
開發工具配置和安裝腳本
開發工具部署拓撲
使能 培訓課程和課程
指導材料
啓用部署拓撲
組織 組織角色和單位
組織部署拓撲
基礎設施 位置,節點和連通性
配套軟件(如操作系統)
採用 收養計劃
推動組織變革的技術
環境指標

部署

表2顯示了開發環境的部署針對每個元素引入了特定的關注點。

表2.部署注意事項
元件 描述
方法 定義本地配置
部署方法
工具類 執行本地配置
安裝工具
遷移本地數據
使能 執行本地配置
部署支持材料
培訓從業人員
組織 定義本地配置
改組
基礎設施 定義本地基礎架構
供應位置,節點,連接性
提供支持軟件
採用 定義本地收養計劃
驗證環境

與方法有關的關鍵要素:

  • 定義本地配置。 將方法部署到業務部門或開發項目時,可能需要一些本地配置以反映業務部門,開發項目或系統的特定特徵(例如,通過提供適當級別的儀式 )。
  • 部署方法。 這確保該方法可供從業人員使用。

關鍵工具相關元素:

  • 執行本地配置。 應用任何本地工具配置來自動執行本地方法配置。
  • 安裝工具。 使安裝的工具(及其集成)可供從業人員使用。
  • 遷移本地數據。 例如,可能有必要將數據從現有工具集遷移到更新的工具集。

與關鍵實現相關的元素:

  • 執行本地配置。 根據需要調整,完善或更新培訓材料。 例如,您可以修改啓用材料以適應爲該業務部門或開發項目定義的過程。
  • 部署使能材料。 確保從業人員可以使用啓用材料,包括訪問任何基於Web的培訓。
  • 培訓從業人員。 對從業人員進行培訓,並收集有關培訓的反饋。

與組織相關的關鍵要素:

  • 定義本地配置。 可能需要提供專家來支持特定業務部門或開發項目的特定需求。
  • 改組。 組織人員和資源以支持開發環境。

與基礎架構相關的關鍵要素:

  • 定義本地基礎結構。 定義特定業務部門或開發項目所需的基礎結構。
  • 供應位置,節點和連接性。 使所需的任何硬件可用(包括爲實時或嵌入式設備開發的任何目標平臺和仿真器)。
  • 提供支持軟件。 安裝任何支持開發環境的軟件(例如數據庫管理系統或測試工具)。

與採用相關的關鍵要素:

  • 定義本地採用計劃。 完善採用計劃,以反映業務部門或開發項目的特定需求。
  • 驗證環境。 測試已部署的環境,以確保其在提供所需功能,滿足規定的質量以及在定義的限制內運行方面滿足定義的要求。

管理

如表3所示,部署後對開發環境的管理還引入了對每個元素的特定關注。

表3.管理注意事項
元件 描述
方法 收集方法反饋
工具類 備份,存檔或還原數據
收集工具反饋
使能 導師
收集有關啓用的反饋
組織 收集有關組織的反饋
基礎設施 根據需要配置或淘汰基礎架構
收集有關基礎架構的反饋
採用 衡量環境效益
收集關於採用的反饋

與方法有關的關鍵要素:

  • 收集有關方法的反饋。 管理開發環境的一個關鍵方面是不斷改進。 因此,收集有關每個元素的反饋是遍及所有元素的主題。 通常通過使用例如問卷調查來主觀地收集反饋。

關鍵工具相關元素:

  • 備份,存檔或還原數據。 確保適當地管理從業者創建的工作產品,並應用「良好內務管理」做法。
  • 收集有關工具的反饋。 收集有關工具功能和性能的反饋(正面和負面)。

與關鍵實現相關的元素:

  • 導師從業者。 爲項目分配導師,以確保從業人員知道如何使用環境。
  • 收集關於支持的反饋,從而收集有關任何培訓或指導的反饋。

與組織相關的關鍵要素:

  • 收集有關組織的反饋。 從業人員會就使用開發環境所提供的支持(例如幫助臺支持的質量)提供反饋。

與基礎架構相關的關鍵要素:

  • 根據需要配置或淘汰基礎結構。 隨着項目的開始和結束,開發環境需要相應地調整大小,以最佳地支持在任何給定時間使用該環境的從業人員數量。
  • 收集有關基礎架構的反饋,包括硬件和支持軟件。

與採用相關的關鍵要素:

  • 衡量環境有效性。 這是成功採用的關鍵方面。 例如,您可以向從業人員提供一份調查表,並請他們評估他們在採用新做法方面的有效性。
  • 收集關於採用的反饋。 收集了有關採用方法的反饋。

相互依存

最後,請記住,開發環境的各個要素並不像本文所暗示的那樣獨立。 圖5顯示了圖2的另一種表示形式,它說明每個元素與所有其他元素都有關係。

圖5.元素之間的相互依賴性
相互依賴的元素圖

查看全尺寸圖片

相互依賴的元素圖

以下是一些元素之間依賴關係的示例:

  • 該方法(方法)參考了可用的培訓課程(啓用)。
  • 工具(工具)使任務(方法)自動化。
  • 定義管理角色(組織)以支持工具(工具)。
  • 供應服務器(基礎結構)以承載工具集(工具)。
  • 採用定義的方法(方法)對實踐的採用(採用)進行評估。

Summary

本文是同一作者Peter Eeles的文章, 文章由The Rational Edge在2008年出版: 開發環境架構師的興起 這裏的各節詳細介紹了構成開發環境的關鍵要素,並指出了在定義,部署和管理這種環境時的不同關注點。 這提供了一個簡單的框架,可用於確保在計劃旨在改善當前環境的計劃,定義對環境的要求,定義體系結構,評估環境等等時,考慮所有這些方面。


翻譯自: https://www.ibm.com/developerworks/rational/library/define-scope-development-environment/index.html