Context Switch與Mylyn
作業系統有Context Switch, Programmer也會有Context Switch問題(可以參考蔡學鏞的無所不在的Context Switch一文), 作業系統的Context Switch可以達到多工的效果, 但是Programmer的Context Switch確會讓工作失焦, 並且降低生產力. 我自從開始當Programmer就有這樣的困擾,PM跑來問工作進度, 同事寫程式遇到問題求助, Release的軟體在客戶端發生了問題, Sales接到新的客戶Request ...... 不知您是否跟我一樣, 當這些外部的Interrupt產生後, 要再回到原本進行的工作, 原本快寫好的程式, 確要再review一次重新整理思緒再繼續未完成的工作, 這個重新整理思緒的時間會隨著所處理的code size增加而增加, 所以Programmer的Context Switch對於專案的進行實在不是什麼好事.
不過自從接觸過了Mylyn (原本專案名稱為Mylar), 這個工具簡單說來就是在解決Programmer Context Switch的問題, 我用現在正在進行的CBGanttProject專案為例, 如下圖示
當Task 1047為Active時,Mylyn以這個Task為Active Session, 在開發階段,Mylyn就在背景開始紀錄你所做的每件事, 包括你點過的Class, member function, 修改過的function,檔案等等, 所以當Programmer突然工作被中斷, 要去處理其它事務時, Mylyn等於像是OS的Context switch一樣,已經幫Programmer的Task Session紀錄起來, 當Programmer再度回到這個工作時並將這個工作設為Active, Mylyn就會很快喚醒Programmer的記憶,開啟之前為這個工作所修改的function or files. 聽起來很神奇, 不過Mylyn真的做到了.
Mylyn目前只能support Eclipse IDE這是比較可惜的一件事,不過Eclipse在目前軟體開發也算是有一席之地,Google的Android開放手機平台,Eclipse就是Google官方指定開發工具,還有未來低價電腦當道,目前兩大低價電腦EeePC與OLPC都是用Linux為內建OS,Eclipse搭配GNU C/C++開發Linux application好比是Windows平台的Visual Studio,所以Eclipse的未來潛力不容忽視.
Mylyn 除了使用local task,也可以與各種不同的Issue tracking 軟體做聯結, 例如CodeBeamer可透過CBMylynConnector 與Mylyn整合在一起. Mylyn與Issue Tracking整合讓PM或是QA report的issues與Programmer的開發環境整合, 可以省去不少Programmer自己建立task session的時間.
附註:Mylyn與CodeBeamer的整合可參考這份文件.
不過自從接觸過了Mylyn (原本專案名稱為Mylar), 這個工具簡單說來就是在解決Programmer Context Switch的問題, 我用現在正在進行的CBGanttProject專案為例, 如下圖示
當Task 1047為Active時,Mylyn以這個Task為Active Session, 在開發階段,Mylyn就在背景開始紀錄你所做的每件事, 包括你點過的Class, member function, 修改過的function,檔案等等, 所以當Programmer突然工作被中斷, 要去處理其它事務時, Mylyn等於像是OS的Context switch一樣,已經幫Programmer的Task Session紀錄起來, 當Programmer再度回到這個工作時並將這個工作設為Active, Mylyn就會很快喚醒Programmer的記憶,開啟之前為這個工作所修改的function or files. 聽起來很神奇, 不過Mylyn真的做到了.
Mylyn目前只能support Eclipse IDE這是比較可惜的一件事,不過Eclipse在目前軟體開發也算是有一席之地,Google的Android開放手機平台,Eclipse就是Google官方指定開發工具,還有未來低價電腦當道,目前兩大低價電腦EeePC與OLPC都是用Linux為內建OS,Eclipse搭配GNU C/C++開發Linux application好比是Windows平台的Visual Studio,所以Eclipse的未來潛力不容忽視.
Mylyn 除了使用local task,也可以與各種不同的Issue tracking 軟體做聯結, 例如CodeBeamer可透過CBMylynConnector 與Mylyn整合在一起. Mylyn與Issue Tracking整合讓PM或是QA report的issues與Programmer的開發環境整合, 可以省去不少Programmer自己建立task session的時間.
附註:Mylyn與CodeBeamer的整合可參考這份文件.
留言