2011年7月24日 星期日

對自評表的感想與自省

星期四早上進公司,有一張沒看過的表單,寫著「您有績效評核表待填報」,除了對執行的案件說明自己所做的工作內容外,有一頁工作行為自評,分為五項外,他又對每一項作了一些註解:

1.計畫管理:能明確具體地擬訂工作計畫、行動步驟,以及工作進度等,且能有效地整合與配置各項資源,認真地執行,以達成預定的工作目標。

2.專業學習:求知慾與學習能力強,可塑性高,主動運用各種不同的管道吸收新知,充實自己的專業知識技能及專業倫理,並且樂於將個人的學習心得與經驗和同仁分享。

3.工作執行:工作態度認真,面臨問題會主動思考解決的方法,而非被動消極的因應,並在可能範圍內先行解決,而後再向上司反映。對於預定的工作計畫或上司臨時交辦的事項,能有效地運用資源,在既定的時間內完成工作。

4.團隊合作與溝通:展現高度合群的行為,能與他人相互支援,將團隊利益置於個人利益之上;能夠摒棄本位主義,不搞小圈圈;對於公司政策配合度高。顧及整體組織的利益,進行單位內及跨單位之溝通協調,並有效獲致成果;能夠蒐集並掌握資料,證據能有效說服及影響他人,而不致引發反感。

5.客戶服務:凡事以組織目標為依歸及以外部顧客滿意為導向,做事講求方法與策略,且能不斷運用外部客戶的回饋,追求全面品質與成本效益的提升。能夠長期與外部客戶維持夥伴關係。

-----------------------------------------------------------------

普通人都是以先批評別人才開始自省,我是普通人,所以....
1. 對各個項目要以'寫作文'的方式自評非常不解。
2. 開啟一個可以無形拍馬屁的通道非常不解。
3. 如果這五項真的是公司注重的,對於拿到好考績的人非常不解。
4. 明明為五項評核指標,但是說明文字一直提到相同的事項感到不解。
5. 對於這張表會被'實際'訥入考績評比感到懷疑。

ola針對各項的感想:
1. 計畫管理:這個很重要,沒意見。

2. 專業學習:這也很重要,但是部門並沒有風氣,甚或是說悲觀又低迷。

3. 工作執行:面臨問題除了在解決不了時要正確通報以外,其實有一個更根本的事情要思考,「遭遇的問題是否為部門每個人都應該擁有的基本能力」,這就跟第二個專業學習掛上關係了,我們對於進用人時的要求,並沒有落實在既有的員工之上,而是去期望新進人員有特異功能,說好聽是要即戰力,說難聽就是......。

4. 團隊合作與溝通:團隊合作很重要,但是部門沒有。溝通很重要,但是'而不致引發反感'這句,我認為並不存在於部門,原因為:我所定義的溝通成功,代表你所提出的意見原本不被接收,或是沒有執行,而經過'溝通'後,獲得應該有的改善。但其實在'很多問題'上,有很多人做了很多意見的提出,雖然被允諾,但是並沒有見過相關事物的改變,呼喊口號倒是很多次。

5. 客戶服務:根本上我並沒有在案件執行過程中,感受到任何人有朝著'外部顧客滿意為導向'的原則,甚或很多人說:你不用這麼幫他們想,意思到就好;我們所做的是'努力達成契約要求的最低項目',在這樣的精神下去評比客戶服務豈不一大笑話。

結論:我不認為這張表單是經過'確切擬定工作目標'、'參考其他公司或相關專業'、'認真工作'、'團隊討論'、'為客戶著想'等五項所完成的。但是,執行的人應該是已經很認真了,因為從部門擴大到公司,這個專案應該是很被關注,但是沒人協助。

-------------------------------------------------------------
星期五跟一個同事說:這張表到底應該要認真填?還是隨便填就好?
同事回說:認真填會影響你的考績嗎?考績的好壞決定於印象分數。
我回:還有你的背景與長官的友好程度;但是我不想這張表變成自己考績不好的原因。
我:我大概可以想像出來,「你連這張自評表都填不出什麼,代表你也不在乎自己的考績」之類的話。

其實,我是不在乎考績,但是我在乎薪水,而考績影響著薪水......

所以理論上我應該會寫著一些「我認真做了、我依照時程、我好努力」的換句話說在單子上,但是我又不想寫一些虛無縹緲的話。

-------------------------------------------------------------

總之,這件事情還沒想好該怎麼寫,但是這兩天我有對這些項目想了一些東西,其實這段時間自己犯了很多錯,才導致現今的局面。

1. 應該要的人力捍衛:最近的案子在兩次不同的革命裡面,我獲得了兩位同仁的幫助,一位來自於自己的部門,一位來自於別的部門;但是在案子約略剩兩個月,也就是最需要人力進行意見修正的時候,他們幾乎同時被指派了根本不可能持續協助這案子的工作量,在會議上多次反應無效後,我選擇矇著眼睛自己走完這艱苦的兩個月,而暫緩實質的系統修改作業。現在回想起來,我似乎應該在反應無效後,以發起第三次革命的強度,捍衛這些既有的人力資源,才不會陷入目前的窘境。

2. 錯誤的無限制支援:這案子沒有特別的事情要做,就是很多很多很多的程式開發,在我獲得包含我自己的三個人力以後,我不應該在完成自己的項目後,立刻將未完成的項目拿回來執行,這導致了系統依照意見修改時,反而讓自己吞了大部分的修改工作,而沒辦法顧及其他項目的修改情形。

3. 放肆客戶的不作為:我一直希望案子的進度可以提前,主要原因是我希望各個功能可以讓客戶實際操作以後,以實際的回饋來修正系統,但從3月中到6月初,兩個多月中我只提出'你們可以測試看哪裡需要修改',而沒有以緊迫釘人的方式來獲得需要的修改資訊。

4. 不和平的溝通方式:前面提到我是以'革命'這個詞來形容取得人力的過程,也不可諱言的每一次溝通,幾乎都是以'你們在搞什麼鬼'的心情來進行對談;總之,對於不作為的人非常的厭惡,但是這些心情並不能幫助自己獲得需要的資源。

5. 虛無的學習分享會:我沒有很喜歡在大家面前說話,去年鼓起勇氣自不量力的說要跟大家說什麼是Flex,結果並沒有獲得什麼成效,想了解的自己就會去了解了,不作為的就浪費三個小時聽我講古,失望之虞也覺得部門也就這樣了。經過時間的沖淡後,今年又覺得有必要做這件事情,但跟幾位同事討論後絕大部分的人對於這件事情興趣缺缺,也又讓我再次產生'部門也就這樣了'的感覺。但這其實這就是事情的根本,批評別人對於風氣的不作為,而得來自己可以不作為的理由,似乎不是一個可以拿來說嘴的事情。

------------------------------------------------------------

總之,罵別人罵完了別人也看不到,但是自省的部分還是需要做適度的改變。文章就跟程式重構一樣,12月份再來檢視吧。

2011年7月16日 星期六

火源_艾里斯拉卓 P2 龍捲風跑位教學

今天跑去拓艾里斯拉卓,一進P2就死一堆,拍了一段沒有跑很好但是意思到的影片。

2011年7月12日 星期二

Android學習_藉由TCP傳送資訊到PC

之前有想過一個田野調查的架構,也照這個架構實做了一個專案,但當時就有一個想法,除了3G的網路傳遞方式以外,應該要搭配一個近端網路的存取方案,所以心中的架構如下圖:

所以依照上圖的架構,我們必須要針對三種不同的情況:
1. 無法接收到網路的地方,採用暫存資料於SQLite的方法。
2. 對於可以接收到3G或Wifi的地方,除了可暫存以外,也可即刻回傳伺服器。
3. 對於近端網路,應該要提供更高速的傳遞方法,以避免大檔案於3G傳送緩慢的問題。

所以,針對近端網路的第一個測試,就是本篇:

目標:利用手機(Android)傳送字串給電腦(PC)。

必須要兩隻程式:
1. Windows forms程式:用來接收手機傳來的資料。
2. Android程式:用來發送資料。

先看目前成果:


睡覺~~~~

2011年7月10日 星期日

Android小品_Ola Query

繼足球保衛足球場後,我們必須為了羊肉爐而戰。



相關資訊:

手機:Sensation

相機:S95

前端技術:Android + ArcGIS Server API

後台技術:ASP.NET + SQL Server + jQuery + Google Map

電玩畫面:魔獸世界(Ola、++),星海爭霸二(Ola)

遊戲擷取:Bandicam

影片剪輯:威力導演

畫面擷取:Snagit

2011年7月4日 星期一

Android學習_足球"場"保衛戰

一顆足球保衛家園的故事?

2011年7月3日 星期日

Android學習_將底圖(Bitmap)延伸至佈滿整個Canvas

如果想要在Canvas底下先墊一層設計好的底圖,不太可能針對每一種螢幕解析度都準備一張專屬的圖,所以可能會採用準備一張合適大小的圖片,再以程式的方式進行縮放。

方法(因要取得SurfaceView的寬高,故下面程式碼以this取得)

int W = this.getWidth(); //縮放後的寬
int H = this.getHeight(); //縮放後的高
Bitmap resizeBmp = Bitmap.createScaledBitmap(bmpBackField, W, H, true);
canvas.drawBitmap(resizeBmp, 0, 0, null);


官方Bitmap的相關說明
**************************
public static Bitmap createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter)

Creates a new bitmap, scaled from an existing bitmap.
Parameters

src The source bitmap.
dstWidth The new bitmap's desired width.
dstHeight The new bitmap's desired height.
filter true if the source should be filtered.
Returns

the new scaled bitmap.
**************************

Android學習_高速繪圖SurfaceView基本架構Part2(Button+SurfaceView)

上個星期天嘗試用SurfaceView作了一個簡單的測試,但是"想像中"不太可能整個畫面都只有一個SurfaceView,應該是會配合一些其他的物件搭配來與使用者互動,比如說按鈕等等。

目標:修改前篇的專案,以按鈕來操作足球的左右。

首先回顧前篇:
1. 在Activity利用setContentView(olaview)的方式將SurfaceView呈現於畫面上。
2. 因為利用上述方法,並不需要在main.xml做任何設定。
3. SurfaceView建構式傳入Context,以識別在何Activity繪圖。
4. 執行setContentView(olaview)就會觸發surfaceCreated事件,直接以此事件觸發繪圖函式。

此篇更改:
1. 改為setContentView(R.layout.main)將SurfaceView呈現於畫面上,並且一併呈現需要的Button。
2. 因為改為設定main.xml為顯示畫面,必須在xml中設定引用的SurfaceView。

<ola.OlaTeach_game1.OlaView
android:id="@+id/olaview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>

3. SurfaceView建構式除需傳入Context外,還需傳入AttributeSet,用以傳接該SurfaceView於main.xml的設定內容。
4. 執行setContentView(R.layout.main)後,一樣會觸發surfaceCreated事件。

總結,如果希望SurfaceView像是圖片一樣放在Activity上面,並且可以利用例如Button等元件來控制繪圖結果,必須:
**製作一個含有接收Context與AttributeSet建構式的SurfaceView。

public class OlaView extends SurfaceView implements SurfaceHolder.Callback {
public OlaView(Context context, AttributeSet attrs)
{
super(context,attrs);
//建立相關需要的物件
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
}

@Override
public void surfaceCreated(SurfaceHolder arg0) {
}

@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
}
}

附上一個小成果圖(左右鍵可以控制足球的左右)