Mylyn- 集成的任務管理

雖然軟件系統、框架和工具可以無限制地發展,但開發人員實際處理信息的能力具有一個上限。大多數集成開發環境(IDE)嘗試使用結構化視圖、編輯器和高級搜索功能來解決這個限制。這些機制雖然可以使大型系統的導航變得更容易,但是它們常常不足以幫助您管理完成典型編程任務所必須處理的大量信息。因此,結構化視圖越來越不堪負荷 —— 例如,即使在導航一個小型的企業應用程序時,Eclipse Package Explorer 也常常會顯示數千個源文件 —— 您要浪費大量的時間來滾動、導航和跟蹤這些信息。

有趣的是,在大多數情況下,不需要查看系統的整個層次結構或者某個特定方法的每個引用就可以完成編程任務。例如,對於要修復的任何 bug 或者要添加的任何特性,您只對系統的某一部分感興趣。Mylyn 是一種交互技術,通過將 集成的任務管理和 自動上下文管理這兩個功能添加到 Eclipse 中,可以突出顯示您感興趣的系統內容。任務管理將 task/bug/defect/ticket/story/issue 跟蹤器集成到 Eclipse 中,並提供高級的任務編輯和任務調度功能。上下文管理監視您與 Eclipse 的交互,自動識別與當前任務相關的信息,並聚焦結構化視圖和編輯器,使其只顯示相關信息。這兩個功能一起組成了 Mylyn 的 Task-Focused(以任務爲中心)UI,使多任務處理變得更容易,並且極大減少了信息超載。(至於實際研究結果,請參閱 參考資料小節中研究論文 “Using Task Context to Improve Programmer Productivity” 的鏈接。)

這個由兩部分組成的文章是一份 Mylyn 使用指南。本文的某些內容(尤其指關注編程而不是任務管理的內容)假設您熟悉 Eclipse IDE。第 1 部分是 Mylyn 入門,並介紹了它在任務管理方面的功能。第 2 部分介紹 Mylyn 的上下文管理功能,並討論它的 Task-Focused UI 對編程和開發方法的影響。爲方便起見,將同時發表這兩部分內容。

第 1 部分並不適用於編程活動,它適用於在任何 Eclipse 發行版或者集成 Mylyn 的獨立應用程序中使用 Mylyn。第 2 部分主要討論 Java™編程,但是也討論了適用於所有基於 Eclipse 的工具的一些特性。在本文的例子中,我使用 Bugzilla 作爲任務儲存庫,但是這裏的概念和 UI 同樣適用於 Mylyn 支持的其它任務跟蹤器。即使您打算通過不同的連接器使用 Mylyn,建議您還是看看使用 Bugzilla Connector 的步驟,以便熟悉關鍵特性。

Mylyn 簡介

Mylyn 通過任務跟蹤這樣的複雜機制擴展了 Eclipse SDK(從 參考資料小節查看受支持的版本)。任務(task)是您希望回調或與他人共享的任何工作單元,例如一個用戶報告的 bug,或者關於一個特性改進的說明。Mylyn 使您可以在工作區本地存儲任務,或者處理一個或多個任務儲存庫中的任務。(任務儲存庫指諸如 Bugzilla、Trac 或 JIRA 之類的問題跟蹤器)。要連接到一個特定的任務儲存庫,還必須安裝用於該儲存庫的 Mylyn 連接器

集成任務之後,Mylyn 將監視這些任務上的活動,以識別與當前任務相關的信息。此時,Mylyn 創建一個 任務上下文—— 與任務相關的所有工件的集合。這可以包括瀏覽過的文檔、編輯過的方法和引用過的 API。Mylyn 使用任務上下文使 UI 聚焦感興趣的信息、隱藏不感興趣的信息、自動發現相關的信息。具備了完成任務所需的信息,就可以減少執行搜索、導航和滾動操作的時間,從而提高工作效率。通過突出任務上下文,Mylyn 還有助於多任務處理、計劃、重用過去的工作以及共享專家經驗。

使用 Mylyn 一段時間之後,您的工作方式會發生微妙但是重要的變化。一旦習慣了以任務爲中心的工作方式,您很可能會發現工作效率有了極大的提高。您的工作變得井井有條,可以統籌管理數十個協作任務並跟蹤進程,這些事情都變得非常容易。

圖 1 中的編號區域顯示了 Mylyn 的一些任務管理和上下文管理特性:

  1. 含活動任務的任務列表(Task List)和當天計劃好的 Bugzilla 報告
  2. 由任務上下文管理的更改集
  3. 具有離線支持的富任務編輯器
  4. Eclipse Package Explorer 上以任務爲中心的模式


圖 1. Mylyn 的 Task-Focused UI

 

單擊 這裏查看全圖。

接下來的小節講解 Mylyn 的安裝和配置,並介紹它的關鍵特性。對 Mylyn 任務管理功能有了大致瞭解後,您將更深入地瞭解它對日常工作流程的影響。

 

任務儲存庫連接器

在本文中,我使用 Mylyn 的 Bugzilla Connector 來展示使用任務儲存庫集成的關鍵概念。對於其它受支持的任務儲存庫,這些概念是相同的,只是集成級別和連接器的成熟度有所不同。與 Mylyn 捆綁的 Bugzilla 和 Trac 連接器非常成熟,並且被視作參考實現。Mylyn Extensions 頁面(參閱 參考資料小節)列出了用於其它問題跟蹤器和項目管理工具的連接器(例如 CollabNet、Rally、Mantis 和 XPlanner)。

完全集成的連接器提供以下特性:

  • 查詢(Queries):查詢是用於將各組任務取回到 Mylyn 的 Task List 中的一種機制。查詢編輯和檢索功能特定於連接器,它們可以提供一個基於 Eclipse 的查詢設計器,或者從服務器中的一個帳戶檢索查詢,或者同時提供這兩種功能。 

  • 富編輯(Rich editing):可以用一個集成的編輯器編輯任務和查詢。該功能提供任務和其它結構化元素的超鏈接,以及 Eclipse 和桌面集成,例如拖放功能。提供富編輯的連接器仍然可以提供在 Eclipse 的嵌入式瀏覽器中打開任務和查詢的功能。 

  • 附件(Attachments):可以將文件附加到儲存庫中,或者從儲存庫中檢索文件。該特性允許從操作系統或 Eclipse 工作區附加文件,並且支持上下文共享等功能(請參閱 第 2 部分)。

  • 離線(Offline)支持:可以在斷開連接的情況下工作,直接訪問文件和查詢,而不必等到與服務器建立連接。該功能還提供更改通知,可以使用 Task List 作爲任務收件箱,而不用依賴於電子郵件客戶端。

爲了讓您從 Mylyn 獲得完整的集成,並停止對外部或基於 Web 的 UI 的依賴,連接器必須支持這裏列出的所有四個功能。但是,只要 Eclipse 具備 足夠可用於處理任務的功能,則仍然可以從 Mylyn 的 Task-Focused UI 中獲益。如果連接器的任務儲存庫不可用,您仍然可以:

  • 使用 Mylyn 對 本地任務的支持。如果不受支持的儲存庫有一個基於 Web 的 UI,那麼可以從瀏覽器中將 URL 拖放到 Mylyn 中,從而創建任務。

  • 使用 Generic Web Repository Connector,它爲很多基於 Web 的儲存庫提供基本查詢支持:Google Code Hosting (code.google.com)、IssueZilla (java.net、dev2dev、tigris.org)、GForge (objectweb.org)、SourceForge (sf.net)、JIRA、Trac、phpBB 和 vBulletin。請參閱 參考資料小節,瞭解更多信息。

  • 請求任務儲存庫提供商創建一個用於 Mylyn 的連接器。還可以考慮在 Mylyn bug 網頁爲您的連接器投票(參閱 參考資料小節)。

  • 創建自己的連接器(請參閱 參考資料小節,提供了到 Integrator Reference 的鏈接)。
 

安裝和設置

Mylyn 現在被包括在大多數 Eclipse 發行版中,所以獲得它的最簡單方法是從 Eclipse Downloads 頁面下載一個包含 Mylyn 的包(見參考資料小節)。但是,對於更新至新的 Mylyn 版本,或者將 Mylyn 安裝到沒有捆綁 Mylyn 的 Eclipse 版本中,下面的說明仍然會提供幫助。

要安裝適合您使用的 Eclipse 版本的 Mylyn,可以使用 Eclipse Update Manager: Help > Software Updates > Find and install > Search for new features to install。 當對 Eclipse 3.2 更新時,最好使用這種機制,而不是 Search for updates,因爲後者不會執行正確的依賴性檢查。在 Eclipse 3.3 上,這兩種方法都可行。想要了解提供 Update Manager 的最新 Mylyn 更新站點,請參考 Mylyn 的下載頁面(參閱 參考資料小節)。

Mylyn 的一個關鍵設計目標是與 Eclipse 已有的 UI 工具無縫集成。另一個目標是要求用戶只安裝和使用需要的特性。圖 2 顯示了用於選擇要安裝的特性的 UI。例如,如果您的任務是 bug 歸類(triaging)而不是開發,那麼可以安裝 Mylyn 的 Task List,而不必安裝 Task-Focused UI,並且可以獨立地選擇用於問題跟蹤器的連接器。軟件開發人員很可能要同時安裝這兩個特性。


圖 2. 選擇 Mylyn 特性和儲存庫連接器 
 

當從更新站點選擇要安裝的特性時,可以選擇一個或多個要使用的任務儲存庫。注意,正如 Mylyn Downloads 頁面提示的,您可能需要添加額外的更新站點,以獲得所需的連接器。當安裝推薦的 Task-Focused UI 特性時,還應該選擇所有可安裝到當前 Eclipse 版本的橋接器。(關於橋接器的詳細信息,請參閱 第 2 部分)。重新啓動 Eclipse 3.3 或更高版本之後,可以看到圖 3 所示的歡迎屏幕。如果當前使用的是 Eclipse 3.2,那麼可以從 Help 菜單手動打開這個歡迎屏幕。


圖 3. 歡迎屏幕
 

 

任務和查詢

Mylyn 提供了使用兩種類型任務的支持:

  • 本地任務存儲在 Eclipse 工作區,提供基本的任務管理特性,例如調度。本地任務是私有的,並只對您可見。

  • 儲存庫任務存儲在與一個外部應用程序或服務器對應的一個任務儲存庫中。儲存庫任務常常在多人之間共享,但是仍然提供所有的本地任務功能,例如個人調度和註解。

本節展示如何創建和編輯本地任務,並考察用於使用儲存庫任務的可用特性。這裏談到的特性的可用性取決於連接器的 集成級別,所以只需參考那些適用的特性。無論連接器集成級別是多少,都可以使用 任務管理和個人計劃中討論的 Mylyn 的所有任務管理功能。

本地任務初解

安裝 Mylyn 之後,遵循以下步驟:

  1. 在 Task List 視圖上單擊 New Task工具欄按鈕,創建一個新任務。
  2. 選擇 Local Tasks儲存庫。
  3. 輸入一個任務概要。
  4. 單擊 Eclipse 工具欄上的 Save或按 Ctrl+S,保存更新後的描述。

創建本地任務的快捷方式是 Insert 鍵,或者也可以從 Web 瀏覽器中將文本或 URL 拖放到 Task List 中。新任務的描述將由相應 Web 頁面的標題自動填充。(在 Firefox 中,只需常規的拖動動作;而在 Internet Explorer 中,在拖動的同時還需按下 Ctrl 鍵。)在 Task List 中雙擊任務可以打開任務編輯器(如圖 4 所示),在該編輯器中可以創建註解、粘貼相關超鏈接或者調度特定日期的任務。默認情況下,新創建的任務是在創建之日調度的。


圖 4. 編輯本地任務
 

創建了十幾個或者更多的本地任務之後,您可能想通過創建 類別來組織它們。如果創建任務時沒有在 Task List 中選擇類別,那麼該任務被放入到 Uncategorized 容器中。可以使用 Task List 中的 Move to彈出菜單或者任務編輯器或者通過拖放操作將一個創建好的任務轉移到另一個類別中。

要將本地任務標記爲已完成,可以使用任務的彈出菜單或者任務編輯器。 默認情況下,被標記爲已完成的任務會被過濾掉,但是也可以通過 Task List 的視圖菜單(使用 Task List 視圖工具欄右側的倒三角形打開)選擇不過濾它們。爲了避免凌亂,不要顯示那些不顯示任何任務的類別(例如,所包含的任務全部完成的類別)。使用 Task List 頂端的 Find:框訪問被過濾的任務。最後,可以通過任務編輯器爲本地任務設置優先級和計劃信息。任務管理和個人計劃小節將更深入地討論計劃。

爲了熟悉 Mylyn 的圖標模式,可以使用 Task List 視圖菜單中的 Show UI Legend動作(見圖 5)。 我將在整個文章中引用該圖標模式。


圖 5. Mylyn UI 圖例
 

添加任務儲存庫

不同任務儲存庫在功能和任務管理的指代方面可能有較大差別。Mylyn 的任務管理功能提供了一種統一的方式使用多種儲存庫,包括:

  • 本地任務:用於使用存儲在 Eclipse 工作區的簡單任務的一種特殊的儲存庫。

  • 共享任務:如果您的團隊使用共享任務儲存庫,例如 Bugzilla 服務器,那麼可以使用這種儲存庫來與其他人協作完成任務。 

  • 項目管理任務:有些連接器,例如 XPlanner,提供用於將任務組織到項目階段和用戶事件中的任務管理功能。

  • bug 和增強報告:這是一種特殊的任務,通常在產品用戶與支持團隊之間共享。Mylyn 提供集成的 bug 報告,以幫助跟蹤與其它任務一起歸檔的 bug 報告。

要創建一個任務儲存庫,可以打開 Task Repositories 視圖(Window > Show View > Mylyn > Task Repositories),或者使用一個包含它的透視圖,例如 Team Synchronizing 透視圖。打開後,使用視圖的工具欄添加一個新的儲存庫。然後,可以輸入儲存庫憑證和任何其它連接細節,或者從可用模板中選擇一個模板。圖 6 中的 bugs.eclipse.org 儲存庫是在安裝 Mylyn 時自動創建的,這是爲了便於報告 Mylyn 和 Eclipse 的 bug 和特性請求。


圖 6. 添加 Eclipse.org Bugzilla 儲存庫
 

查詢儲存庫

成功地添加了任務儲存庫之後,就可以通過 Task List 的彈出菜單中的 New Query動作創建查詢來訪問那個儲存庫上的任務。例如,可以編寫一個查詢來訪問指定到我的電子郵箱地址的所有 Bugzilla 報告,如圖 7 所示:


圖 7. 創建新的 Bugzilla 查詢
 

設置參數並單擊 Finish之後,Task List 中的查詢容器被相應的任務填充。在查詢執行同步時,Mylyn 在後臺檢索任務的信息。下載完任務信息之後,可以立即打開任務,因爲不需要往返服務器來檢索任務的信息。要更改查詢的參數,可以重新打開它(通過在 Task List 中雙擊查詢)並編輯所選擇的值。雖然對於不同的連接器查詢參數的設置不盡相同,但是查詢參數設置都是用於反映連接器的 Web UI 所提供的功能。有關創建查詢的詳細信息,請參閱連接器文檔或服務器 Web UI 文檔。

默認情況下,查詢每隔 20 分鐘自動進行同步,並顯示與查詢參數匹配的新任務。(可以通過 Preferences > Mylyn > Task List更改這個時間。)當與 Web 斷開連接時,不需要使 Mylyn 處於離線模式。但是,如果想關閉同步 —— 例如,假設您要長時間離線工作,或者直接根據所使用的帶寬付費 —— 那麼可以這麼做,方法是在 Task List 視圖菜單中切換 Synchronize Automatically設置。然後,可以通過工具欄上的按鈕手動地同步所有任務和查詢,或者通過彈出菜單或快捷鍵 F5 單獨同步每個任務或查詢。必要時,可以從彈出菜單中將一個任務儲存庫置於離線模式。當儲存庫不可用,需要長時間離線工作時,這樣做很有用。

對於可以通過 Web 瀏覽器訪問的連接器,Mylyn 集成了用戶已熟知的 Web UI,如果 Mylyn 的富編輯功能不支持某些操作,您可能需要依賴於這個 Web UI。可以右鍵單擊任何任務或查詢,以便用 Web 瀏覽器打開它(Eclipse 瀏覽器設置位於 Window > Preferences > General > Web Browser中),具有關聯 URL 的所有儲存庫任務都可以通過 Task Editor 的工具欄或者任務的彈出菜單上的 Open with Browser 動作打開。還可以用瀏覽器打開 Bugzilla 查詢(例如,假設您想將它粘帖到一封電子郵件中,以便使用 Bugzilla Web UI 對它進行改進)。然後,可以按照 New Query 嚮導的提示粘帖它,從而使用更新後的 URL 在 Task List 中創建一個新的查詢。

搜索任務

搜索任務類似於創建查詢,但是它不將結果存儲在 Task List 中。使用 Ctrl+H 或 Search 菜單(Search > Task Search),選擇感興趣的儲存庫,輸入搜索條件,然後單擊 Search。搜索視圖隨之打開,在該視圖中可以打開與搜索匹配的任務,如圖 8 所示。要改進搜索,只需再次打開 Search 對話框,以恢復之前的搜索條件。可以在 Search 視圖中將搜索結果從彈出菜單轉移到一個查詢中。


圖 8. 任務搜索和結果
 

創建儲存庫任務

要創建新的儲存庫任務,可以在 Task List 工具欄或 File > New菜單中選擇相應的動作,如果有多個儲存庫,那麼要選擇一個儲存庫。然後,連接器會要求輸入任務的其它屬性,例如它的 Bugzilla 組件。然後會打開一個新的編輯器,在其中可以填入任務的屬性和描述。有些屬性會自動選好,例如,如果使用 Bugzilla 連接器,則會自動選擇操作系統。

您可能要創建的另一種任務是有關 Mylyn 或使用的另一個基於 Eclipse 的工具的 bug 報告。通過自動添加 bugs.eclipse.org 儲存庫,以及添加可以從 Eclipse 的 Error Log 視圖和 Help 菜單中訪問的用於自動報告 bug 的動作,製作 bug 報告很容易。如果要查看想要進行報告的錯誤事件,只需右鍵單擊它,選擇 Report as Bug。然後會打開 New Repository Task 編輯器,其中包括所有相關信息,例如棧跟蹤。

由於這種通過一次單擊生成 bug 報告的方式可能導致大量重複的 bug 歸檔文件,因此 Mylyn 還提供自動的重複檢測。Search for Duplicates按鈕使用報告的 Description 中的自動插入式或手動粘帖式棧跟蹤來查詢相應的儲存庫,以發現潛在的重複內容。重複檢測的結果顯示在 Search 視圖中,如圖 9 所示。如果發現匹配,可以打開它,作出註釋,而不是創建新的 bug 報告。


圖 9. 集成的 bug 報告和重複檢測
 

編輯和同步

在打開一個 Bugzilla 任務時,您將注意到在編輯器上有一個 Bugzilla 和一個 Planning 選項卡。儲存庫連接器提供一個富編輯器,例如這個 Bugzilla 選項卡,用於編輯在儲存庫上共享的任務信息。而且,Planning 選項卡提供使用本地任務創建個人註解的相同功能。

當查看 bug 上的註釋時,可以使用 Outline 視圖在註釋之間導航,但是未讀註釋的自動摺疊意味着可以在 Task Editor 中進行大多數導航操作。對其它任務和其它結構化元素(例如 Java 棧跟蹤元素)的引用被設置爲超鏈接(參見圖 10 和 圖 1)。超鏈接的語法特定於連接器。通常,在任務編輯器左上角出現的引用可用於對 bug 進行超鏈接。連接器的 Web UI 支持的其它語法也受支持。始終支持task <key>語法。


圖 10. 儲存庫任務編輯器和內容輔助
 

如果連接器支持離線編輯,則 Mylyn 維護打開的任何任務的一個緩存副本,並且每當相應的查詢或任務進行同步時,對這個副本進行更新。如果作出任何更改,例如設置一個屬性或者編制部分註釋,那麼可以通過按下 Ctrl+S 在本地保存更改。這將導致任務上出現一個 outgoing指示符。當準備好提交任務時,單擊編輯器底端的 Submit

如果一個任務之前已經被打開,那麼再次打開它時將檢索離線副本,並開始在後臺對任務執行同步。這樣可以確保不需要等待往返服務器就可以開始讀取和處理任務。如果發現新的更改,或者當編輯器打開時他人更改了任務,那麼編輯器的標題欄會顯示出來,並提示刷新編輯器。

如果有其他人更改了儲存庫中的任務,例如添加一條新的註釋,那麼在屏幕的右下角會彈出一個窗口顯示更改,而任務則使用 進入式箭頭標記顯示。如果打開任務,則被更改的部分會高亮顯示,被添加的新的註釋自動展開。如果本地副本和服務器上的副本都被更改,那麼可以看到一個紅色的衝突指示符,並提示解決衝突。如果看到衝突,那麼應該單擊任務編輯器的 Synchronize按鈕,並且提交您的更改,或者通過彈出菜單的 Mark > Clear Outgoing放棄您的更改,以確保任務被同步。

附件

可以用任務編輯器的 Attachments 區的 Add...按鈕將附件添加到儲存庫中。還可以從工作區或窗口管理器將文件或文本直接拖到編輯器的 Attachments 區。添加附件時會出現一個嚮導,通過該向導可以選擇根據剪切板內容、計算機中的一個文件還是從 Eclipse 工作區中創建附件。通過 Attachments 表,可以用 Web 瀏覽器或編輯器打開附件,並通過上下文菜單執行特定的動作,例如保存或複製到剪切板。

 

任務管理和個人計劃

現在,我將討論如何使 Mylyn 成爲您的一個單獨的任務列表和收件箱,以管理工作周內所有相關的任務。對於很多開發人員,要在一個給定的工作周內跟蹤和調度的任務的範圍包括:

  • 爲您正在開發的產品解決產品缺陷並分析特性
  • 由您的同事完成的任務,這些同事包括您的搭檔、上司或屬下
  • 針對您所使用的框架、API 和軟件的 bug 報告
  • 個人待辦事項和提醒

將所有任務集成到一個視圖中,可以使它們更易於管理,因爲只需查看一個位置就知道接下來該做什麼。爲了進一步簡化任務管理,Mylyn 隱式包含了一些公認的任務管理最佳實踐,例如調度和延遲任務,並且還包括了 XP 式開發的即時性和適應性。Mylyn 的任務管理工具使您可以輕鬆地適應一週內的任務變化需求,而不會丟失對長期優先級的跟蹤。除了將工作周的控制權交到您手上之外,Mylyn 通過簡化使用共享的儲存庫屬性(例如里程碑和優先級),在 Eclipse 中執行所有操作,從而幫助您更好地集成團隊實踐。

預定日期與到期日期

Mylyn 提供兩種用於調度的日期:預定日期(scheduled date)和 到期日期(due date)。(您可能已經注意到,任務編輯器中顯示了這兩種日期)。預定日期可以幫助管理和優先排列自己的工作周,而到期日期則對應於最後期限之類的固定事件。

任務的預定日期是根據個人日程安排的可變日期,可以根據優先級的變化而推遲。它定義您計劃開始處理任務的時間。當任務到達預定日期時,任務變成紅色,以指示您應該開始處理它或者考慮推遲它的起始日期。定在今天執行的任務會變成藍色而不是紅色,並且在工作日的最後進行安排,避免重新安排整個工作日的任務。

相反,任務的到期日期是固定的日期:任務必須完成的日期。這個日期常常與外部的約束(例如最後期限)相關。如果使用共享的任務儲存庫或者日曆工具,到期日期會進行同步,以便使團隊的其它成員可見。例如,如果 Bugzilla 的時間跟蹤功能被啓用,那麼可以通過任務編輯器的 Attributes 區中的 Time Tracking 區設置 Bugzilla 任務的到期日期,團隊中的其他成員可以看到這個日期,還可以編輯它。到期日期的臨近是通過任務圖標上的一個小鐘指示的,這個小鐘在到期日期之前爲藍色,在到期日期之後爲紅色。

聚焦工作周任務

由於 Mylyn 使得創建和共享任務變得如此容易,似乎您一旦開始使用它,Task List 中很快就會裝滿數十個甚至數千個任務。對於 Mylyn 的早期用戶,包括我在內,確實會發生這樣的事情。也許是因爲我是第一批用戶,目前我的 Task List 包含超過 5,000 個任務,其中有超過 1,000 個任務尚未完成。乍一看來,這似乎與 Mylyn 減少而不是增加信息超載的目標有衝突。爲了解決這個問題,Mylyn 提供了改進的功能來調度和推遲任務,使用這些信息讓 Task List 只顯示與您的工作周有關的任務。新創建的任務定在創建日調度,並且可以通過任務編輯器的 Planning 區或上下文菜單快速地將任務推遲到靠後的一個時間或日期。

當任務到達預定日期之後,任務和它的容器(例如一個查詢)變成紅色,桌面上顯示一個彈出窗口作爲提醒。(和其它 Mylyn 顏色和字體設置一樣,可以用 Window > Preferences > General > Appearance > Colors and Fonts將任務設置爲高亮顯示)。當任務被推遲到將來的日期執行時,Window > Mylyn > Tasks > Scheduling中設置的工作日起始時間決定任務被調度的時間。通過更改工作日的結束時間,可以確定被定爲那天調度的任務在什麼時間到期。

Mylyn 任務管理模型的關鍵是基於興趣的分類和過濾,您可以通過 Task List 工具欄上的 Focus on Workweek 動作啓用該功能。聚焦模式導致只有與工作周相關的任務纔可以顯示。這包括以下任務:

  • 預定在本週執行或者超過預定日期的任務
  • 有新的更改和註釋的儲存庫任務

如圖 11 所示,任務被着色和分類,以幫助您快速確定下一步任務:

  • 逾期任務爲紅色,總是顯示在列表的頂部。
  • 調度爲在今天執行的任務以藍色突出顯示。
  • 調度爲在本週靠後時間執行的任務爲黑色。
  • 今天完成的任務爲綠色。
  • 之前完成的任務爲灰色。


圖 11. 調度任務
 

每天執行預定的任務

通過輕鬆地調度和推遲任務,並將視圖限制爲顯示給定工作周內預定的任務,Mylyn 幫助您全盤考慮優先級。爲了突出工作日,Mylyn 用藍色高亮顯示所有在當天調度的任務。由於在聚焦模式下工作時不大可能看到滾動條,因而 Task List 保持展開,所以您總是知道應該考慮對什麼作出響應或者下一步執行什麼。

考慮使用 Mylyn 的聚焦功能管理工作周的示例流程:

  1. 在工作周的開始,任務列表包含很多紅色的任務,這些任務是之前定在本週執行或者推遲到本週執行的。

  2. 紅色不是令人愉快的顏色,所以您使用上下文菜單將每個任務安排在今天或本週靠後某一天執行。當所有紅色都消失之後(定在今天執行的任務變成了藍色,定在本週靠後時間執行的任務變成黑色),您可以查看這周的日程安排,確認它符合實際,必要時推遲或委託他人執行任務。

  3. 當 Task List 被激活時,可以將鼠標懸停在 Task List 頂端附近的綠色進度條上(如圖 11 所示),以檢查是否爲工作周安排了太多的任務。如果有些任務要比其它任務花費更長的時間,那麼可以打開任務的 Planning 區,調整預計時間,這樣可以相應地調整工作周進度條。

  4. 在工作日的最後,所有已經完成的任務變成了令人愉快的綠色。然後,您可以檢查剩下的藍色或紅色的任務,將它們推遲到明天或更靠後的日期。

  5. 在第二天的開始,安排在這一天的所有任務都爲藍色,而所有逾期的任務爲紅色。在安排工作日時,您會將某些任務推遲到本週靠後的日期,因此可見的藍色任務表示您可以當天完成的所有任務。任務完成後變爲綠色。

  6. 在工作周結束時,滾動條應該會消失,列表上的大多數任務應該都變成綠色。

由於任務調度是任務管理最重要的部分,Mylyn 在 Task List 中提供了 Scheduled表示,它根據到期日期而不是類別和查詢來組織任務。在聚焦模式下,這種表示會顯示這一週每天必須完成的所有任務。這對於平衡整週的工作負載很有用。它的另一個優點是當您使用共享任務時可以避免分心,因爲不會顯示有新註釋但是未調度的任務。要檢查新到來的任務,需要切換回 Categorized表示,重新確定優先次序,然後再重新審視時間表。當不在聚焦模式下,可以使用 scheduled 表示來平衡未來工作周的任務負載 —— 例如,通過將鼠標懸停在 Next Week 容器上檢查有多少任務被推遲。

創建工作集

到目前爲止,本文描述的所有功能都是將 Task List 當作一個統一的相關任務的集合,您可以靈活地調度這些任務。此外,可以用查詢來組織任務,還可以進一步嵌套子任務,前提是儲存庫連接器提供這種支持(例如 Bugzilla 連接器就提供這種支持;可以從 Task List 的視圖菜單中啓用該選項)。但是,由於 Mylyn 2.0 對 工作集(working sets)的支持,還可以對由完全不相關的任務組成的集合進行處理。假設您在開發一個產品和兩個不同的開源項目。您可能想把工作日的大多數時間花在最重要的產品上,但是還想跟進其它項目。Mylyn 的工作集使您可以組織與一個特定產品或項目相關的查詢和類別,並提供限定在 Eclipse 工作區中顯示的文件和其它資源的數量的功能。

使用 Task List 頂端的切換條,創建包括相關查詢、類別和工作區資源的工作集(參見圖 12)。只要 Eclipse 視圖被設置爲顯示Window Working Set(默認設置),切換 Mylyn 工作集可導致 Task List 和 Eclipse 都只顯示屬於工作集的任務和項目。例如,如果爲一個開源項目設置了一個工作集,並用下拉列表啓用該功能,那麼 Eclipse Task List、Package Explorer 和 Problems 視圖都只顯示與那個項目相關的內容。Task List Find 只顯示工作集中的匹配項。甚至可以通過 Search (Ctrl+H) 只查找工作集中的內容,如果工作區較大的話,這樣做很有用。換句話說,整個 Eclipse 只顯示與您創建的工作集相關的東西。工作集可以減少工作區的凌亂,並且可以避免使用多個工作區。在 第 2 部分中,您將看到 Mylyn 如何進一步利用這種聚焦思想,將 Eclipse 中的可見內容縮小到單個任務。


圖 12. 編輯和切換工作集
 

過濾、分類和搜索

除了一些自動化功能外,Mylyn 還提供手動分類和過濾功能:

  • 通過視圖菜單中的 Sort by項,根據 Priority 之類的屬性分類。
  • 使用視圖菜單中的 Filter Priority Lower Than項,根據優先級進行過濾。
  • 通過視圖菜單過濾所有 Archive 類別和完成的任務(建議啓用該功能,在聚焦模式下會自動啓用)。
  • 通過單擊 Go Into過濾特定類別或查詢中的任務(在聚焦模式下同樣適用)。
  • 通過拖放操作手動分類;將儲存庫任務分類到各類別中。

圖 13 顯示了可用的手動 Task List 過濾器:


圖 13. 手動 Task List 過濾器
 

手動搜索和過濾會增加重複切換不同過濾器和分類器的負擔。對於默認模式下的操作不建議使用,但是它們對於計劃和組織任務的確有用。注意,當 Focus on Workweek 活動時,手動過濾和分類設置被禁用;可以通過關閉聚焦模式來恢復它們。

當組織 Task List 時,可以通過 Move to Category上下文菜單或者選擇上下文菜單中的 Remove from Category移動任何任務。除非通過上下文菜單顯式地刪除任務,否則即使任務已經從查詢中消失或者從類別中刪除,仍然會顯示在 Task List 中。被刪除的任務可以在 Archive 容器中找到。可以通過 Task List 頂端的 Find 框方便地搜索 Archive 或其它地方的舊任務。單擊它右邊的 Clear按鈕或按下 Esc 鍵可以恢復之前可見的任務。Archive 容器對於查看之前已解決且被註釋的任務也很有用,因爲創建查詢的一種通用方法是排除已解決任務(但是請參閱 查詢設置建議,瞭解有關這一做法的注意事項)。

備份和導出

聚焦模式使用得越頻繁,您的 Task List 就變得越有價值。默認情況下,Task List 的自動備份已被啓用,可以通過 Window > Preferences > Mylyn > Tasks設置備份目錄。 要從備份恢復 Task List,可以選擇相應的單選按鈕,並選擇一個備份快照。默認情況下,Mylyn 每天爲所有任務數據製作快照,並保留 30 天的備份(通過 Preferences > Tasks配置)。可以通過單擊 File > Export導出任務。

 

第 1 部分結束語

在這個 Mylyn 使用指南的前半部分中,我介紹了 Mylyn 的任務管理功能。我向您展示了這些功能如何支持個性化的任務管理,以及它們如何將 Bugzilla 之類的基於 Web 的問題跟蹤器完全集成到 Eclipse 中。我還對 Mylyn 管理的典型的工作周或工作日作了概述,並展示如何管理 Task List。

無論您感興趣的任務儲存庫有多少,Task List 視圖只提供一個單獨的位置來從中管理所有工作。這使您可以將工作日中的更多時間花在高效的 Eclipse 中,而不必頻繁切換到外部的瀏覽器窗口。這還意味着您可以獲得基於 Web 的問題跟蹤器的富客戶機體驗,例如拖放附件和離線支持。

使用 Mylyn 的最精彩部分即將出現。一旦任務顯式呈現爲工作的組成部分,Mylyn 就開始自動管理它們的上下文。本文的第 2 部分介紹 Mylyn 的上下文管理功能,並展示這些功能如何減少信息超載,以及如何使多任務處理簡單到只需一次單擊即可完成。現在就請閱讀 第 2 部分

 

參考資料

學習

獲得產品和技術

討論

關於作者

Mik Kersten 是 Tasktop Technologies 公司的總裁和 CTO,Eclipse Mylyn 項目主管,AspectJ 項目的提交者,並且是 Eclipse Architecture 委員會的成員。在 Xerox PARC 擔任研究科學家期間,Mik 創建了第一個面向方面的編程工具支持,並實現了面向 JBuilder、JBuilder、NetBeans、Visual Studio 和 Emacs 的 AspectJ 插件。在 British Columbia 大學攻讀計算機科學博士學位期間,他創建了 Mylyn 和 Task-Focused UI 技術。Mik 的興趣是構建一些工具,使在大型系統上的工作變得更加簡單輕鬆。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章