2014-03-18

你在做,主管怎麼看


暨寫完軟體主管的喃喃自語:領導原則,這是給自己看的,藉以提醒自己不要走失了方向。領導團隊一陣子了,看到了一些現象,也有些心得與感想。

主管要幫你沒錯,但不是你的管家:
    每間公司都有既定的體制與規則,當然部門與部門之間也享有或是管理不同資源的責任,舉例來說,今天你的團隊明天要出外景,然後你發現自己沒有攝影機,臨時採購當然來不急,這時候就要去跟別的部門商借,這時候可能就要動到主管去跟其他部門交涉攝影機的使用資源(只是舉例)。但接下來的工作,包含借攝影機可能需要填什麼表單、是不是還要借電源線、是不是需要借鏡頭、機器的使用方法等等,就應該你要自己處理了,而不是還要主管幫你換這些工作層級的尿布。
    也許你會問,那到底什麼時候可以請主管來幫我?很簡單,就是這件事情你自己喬不動的時候,需要有權力的人來推一下除此之外,個人建議盡量就別動用到主管,畢竟主管真的很忙。
    怎麼說忙,你又會問,我看主管都沒在做事情阿?有帶過團隊的人應該都能體會,當成員有問題來找你,假設光是一個對話(成員說明、內容對話、情境了解、給定決策)需要10分鐘就好,然後你每次打斷主管思緒後要讓他在回到原有思緒,總共算15分鐘好了,假設你的團隊有10個成員,大家每天都來問一件事情就好,主管就要花兩個半小時跟團隊周旋... ...這樣的算法還沒算到跟主管的主管、還有別的團隊的主管周旋。

工作分配下去,團隊都有定期開會,我還需不需要另外回報進度?

2014-03-12

OSGi簡易實作於Eclipse



某些因緣際會,最近稍微研究一下OSGi Framework,但對於這個技術,網路上較多的都是一些框架概念,實作分享不多,就連Eclipse本身直接拿內建的Plug-in建立專案也沒辦法跑(奇怪...Eclipse不是基於OSGi去開發的嗎?) 以下是個人簡易實作分享。

什麼是OSGi:
網路上很多介紹,這裡僅做簡介:OSGi是一個Framework(框架)、是一個概念,框架往往就是好幾個Design pattern構成,用來幫助開發者統一建構系統的標準架構;面臨一個大型系統建置,絕對不會把所有程式碼都放在同一個Project(專案),因為這樣不好維護、分包撰寫,所以OSGi提供一個切割子Project的方法,每一個子專案在OSGi之上視為一個Bundle,每個Bundle可以擁有自我獨立的生命週期,如果撇開Dependency(相依性)不管,每個Bundle可以自由地透過OSGi統一的Command line進行管理(啟動/關閉/重啟...等等),而不影響其他Bundle的運作。
    換句話說,假設,假設今天你開了一台基於OSGi框架製造出來的車子上路,你開到路上車子還在跑,但是你卻突然發現路旁有家新開的輪胎行,德國H牌輪胎之類的,看起來很厲害,然後你臨時想換個輪胎但又不想停下來,只要今天你的輪子也是基於OSGi製造,轉動輪子的軸承也是,那你就可以在車子還在跑的情況之下把輪胎換成心愛的H牌輪胎(什麼爛比喻?!)

先來提提Eclipse內建的OSGi專案:(這個實作並沒有完全成功,網路上找到的bug shooting也沒什麼用)
  1. 下載並安裝Eclipse,https://www.eclipse.org/downloads/
  2. 建立workspace,點選File -> New -> Other -> Plug-in Project
  3. 進入對話框Plug-in Project,記得把下面的Target Plateform換成an OSGi framework,點選Next
  4. 進入對話框Content,Execution Environment不要動,記得還是選JavaSE即可,不要換成OSGi/Minimum,否則等專案跑起來會沒有osgi.jar檔,然後Next
  5. 進入對話框Templates,點選Hello OSGi Bundle,然後Finish. 專案應該就建立完成了。(Eclipse好棒啊)
  6. 執行專案,沒有問題可以執行,Console很開心的跟你說Hello World! 
  7. 悲劇來了,接著馬上噴出一堆錯誤訊息...一句話,別花時間去解了,聽說是專案自己initial其他沒用的jar,然後那一拖拉庫的jar也不知道要關掉哪些才有用,因為關了一些,又噴出其他的錯誤訊息...
那我們該怎麼辦