又到了一年一次財務年度結束、開始績效考核的季節。以軟體工程師角色,在稍具規模的企業工作是一種練等的職業生涯節奏,但目標不是為了爭取更好聽的頭銜,比較是有計劃的點擊技能樹,進而在組織中獲得信賴,並得以做出更多貢獻。頭銜、職稱與薪資獎勵自然會依據所負責任反應到位。

Job Ladder 或 Career Structure 可以作為客觀的職能參照,用來定位自己的專業能力。但不該是職業生涯的藍圖,因為這些階梯可以透過跳槽避開因為人事、環境的卡關問題而加速升等,更別說在新創公司中毫無意義。

作為一位主管可以每年協助做相應職能的績效考察,提供可以客觀評斷的目標設定,並提供相對的資源來培養技能 (例如: 給予自由時間或補助課程或業務機會)。不過這依然要靠員工的毅力,自我要求來達到年度目標。而晉升到資深等級的專業員工 (Individual Contributor),也可以選擇走 Parallel Track. 例如 engineering management/leadership track 或 product management track,從這之後可以開分支點擊不同的技能樹。

覺的 Chuck Groom 寫的這篇 “The Software Engineering Job Ladder“(簡體中文: 程序员必须要搭建自己的“工作阶梯”) 相當好,除了常見的所需的工作能力要求外,他也點出四個重要的基本特質 編程能力 (Programming ability) 、溝通 (Communication)、批判性思考 (Critical thinking) 與主動性 (Initiative)。這四個特質的確差異化一個員工是否能夠持續成長一個可靠的組織棟樑。

Chuck 也提供各職等的反模式症狀,這些症狀都會造成員工不適任或影響工作效能。處在積極成長的企業會定時汰去未能在時限內晉升資深軟體工程師的員工 (文中所說三級工程師水準)。因為患有這些症狀低於三級以下的工程師,往往會耗費大量的管理精力,但產出低效。像是缺乏基本特質的員工,就容易寫出難以維護的程式碼,無法準確的描述問題場景或理解同事與客戶的要求,無法識讀需求或解決矛盾更別說提供準確的工作時程估算並準時交付委託的工作。

就像 HBC Tech 的 Adrian Trenaman 所說,作為一個組織你希望招募有才能的員工,並創造一個高效且自發的工作環境,鼓勵資深員工成為優秀的領袖,帶領團隊設計與打造好的產品與服務,而不是浪費優秀人才的精力管理庸才。

說到底,頭銜並不那麼重要,更重要的是創造一個工作環境與團隊,可以高效且愉快的每日產出與交付。

有時候會碰到團隊中的一些人總是無法順利交付任務結果,常常以諉過、抱怨與拖延的方式逃避責任,有些經理人可能會用建立問責機制的方式來緊迫釘人。不過我覺的更需要的是建立員工以正確的態度與方式承擔個人責任,這樣才能提高組織運營效率。

但並非只是單純將責任轉嫁到員工身上,而抽離抽離雇主或經理人的責任。「當責」更重要的概念是提高組織成員的自我效能,是避免陷入「受害者循環」[0]心態的員工造成組織低效率運作的困難,同樣的心態也會幫助員工達到更高的專業成就。如同蔡志浩先生為 “The Oz Principle” 中文版《當責,從停止抱怨開始》寫的序[1][2]。

當個體忽略客觀證據,把這種過度簡化的歸因傾向推到極端,就會產生負面影響。心理學家發現,當人們的自我效能感(self-efficacy)較低,也就是說,覺得自己無法掌控情境時,他們會比較不願意主動改變自我與追求成長。到最後,甚至會感到「習得的無助」(learned helplessness)——覺得自己無法改變環境,而將自己封入絕望的憂鬱情緒中。 

而這些已經落入有毒的受害者心態的員工,也很難透過自身的力量脫離負面循環。這時候經理人就必須介入給予一定的培養與訓練,重新建立自信與賦能[2],並逐漸養成重要的核心能力指標。若未能在早期職涯建立這些能力,往往再接下來的十年職業生涯中會反應出巨大的專業成就落差。

以下是我覺的值得參考的書籍

[0] Victim Cycle Self Assessment – Partners In Leadership
[1] 強化自我效能,脫離被害者循環
[2] 提升自我效能,積極掌握人生:「當責」的三十項核心能力

中國的高達兩千萬的監視器[1][2]除了被應用於實時行人檢測識別系統[3]之外,甚至進步到可以「預測」犯罪[4]。但不只是老大哥政府為了維穩需求而大幅度監控公民,有商業動機的廣告商更是積極的想蒐集客戶資料[5]。

雖然台灣公部門沒有建制「天網監視系統」的野望,民間科技應用也會透過人臉辨識系統蒐集顧客資訊,例如統一超商櫃台後方或是櫥窗的廣告看板都置有攝影機蒐集人臉生物特徵[6]。

而只是帶著口罩是騙不過這些監控系統[7],未來出門可能需要戴上特製反射眼鏡[8][9]或乾脆在臉上刺上干擾辨識的圖騰才能換得隱私保護了。

[1] China’s All-Seeing Surveillance State Is Reading Its Citizens’ Faces – WSJ – https://www.wsj.com/articles/the-all-seeing-surveillance-state-feared-in-the-west-is-a-reality-in-china-1498493020
[2] 人臉辨識技術 成中國強大監視工具 – 新唐人亞太電視台 – http://www.ntdtv.com.tw/b5/20170703/video/200216.html?%E4%BA%BA%E8%87%89%E8%BE%A8%E8%AD%98%E6%8A%80%E8%A1%93%20%E6%88%90%E4%B8%AD%E5%9C%8B%E5%BC%B7%E5%A4%A7%E7%9B%A3%E8%A6%96%E5%B7%A5%E5%85%B7
[2] SenseTime – 智能人脸布控解决方案 – https://www.sensetime.com/isSecurity-FaceDispatch/
[3] 「雲從科技」(Cloud Walk)的廣州科技公司正在為「預防犯罪制度」努力,讓警方在犯罪之前就阻止惡性事件發生。他們準備開發一套智能預測系統,監測人們的行動和行為模式,然後評估出是否有犯罪的可能,並通知警方。 Chinese companies are working with police to develop artificial intelligence they say will help them identify and apprehend suspects before criminal acts are committed. – https://www.facebook.com/financialtimes/videos/10155507438890750/
[4] 纪录片《辉煌中国》第5集《共享小康》中的“中国天网”监控最新实时行人检测识别系统曝光。 – https://v.qq.com/x/cover/6lz219aeyiiieex/i0553xdarb9.html
[5] 广告牌通过顶部的摄像头,搜集食客的面部信息,以判断其性别、年龄层次、观看广告的停留时间。 – http://www.pingwest.com/dianziguanggaopai/
[6] PilotTV – 廣告看板正偷偷盯著你! Intel 與前線科技以人臉辨識打造精準行銷 – http://pilottv.com.tw/event/16
[6] 零售解決方案:Intel® Retail Client Manager – https://www.intel.com.tw/content/www/tw/zh/retail/solutions/rcm.html
[7] Dear rioters: Hiding your face with scarves, hats can’t fool this AI system • The Register – https://www.theregister.co.uk/2017/09/06/ai_to_identify_protesters_in_disguise/
[7] Disguised Face Identification (DFI) with Facial KeyPoints using Spatial Fusion Convolutional Network – https://arxiv.org/abs/1708.09317
[8] 6 Ways To Defeat Facial Recognition Cameras | Survivopedia – http://www.survivopedia.com/6-ways-to-defeat-facial-recognition/
[9] Magic AI: these are the optical illusions that trick, fool, and flummox computers – The Verge – https://www.theverge.com/2017/4/12/15271874/ai-adversarial-images-fooling-attacks-artificial-intelligence
[9] CCS 2016 – Accessorize to a Crime: Real and Stealthy Attacks on State-Of-The-Art Face Recognition – YouTube – https://www.youtube.com/watch?v=6Xh1vuwnVhU
[9] Accessorize to a Crime: Real and Stealthy Attacks on State-of-the-Art Face Recognition https://www.cs.cmu.edu/~sbhagava/papers/face-rec-ccs16.pdf

Android GNSS Measurements API

之前介紹過 Google 在 Android 7 (Nougat) 中推出 GNSS measurements API ,由於這個功能受限於硬體韌體設計,暫時只有某些晶片才能支援,包含了 Exynos、Qualcomm、Broadcom BCM4774、Intel WCS2x00 等。預計今年之後會出現越來越多支持 GNSS Measurements API 的手機。

開發者網站提供一個參考列表,包含市面上幾個旗艦手機的對於 Pseudo-range and pseudo-range rate、Navigation messages、Accumulated delta range or carrier、Hardware (HW) clock 等支援現況,也提供了範例程式給開發者參考。

歐洲的全球衛星定位系統 Galileo ,也辦了兩次黑客松,參與者 Lukasz Kosma Bonenberg 博士分享一些應用發想,像是 Differential GNSS/RTK、窮人的衛星訊號干擾偵測、窮人的地震感應器、或是用 GNSS Shadowing 改善都市叢林的定位。他也將相關的程式碼發布到 github 上。

依照最近的實驗研究,智慧手機的天線與接受器設計明顯比不上專業的量測儀器,即使有良好的衛星訊號,量測結果仍有一個數量級的差距。但是與過往只有五公尺到十公尺的精確度,已經可以作到公尺等級的精確度。如果硬體設計上可以解決 duty cycling 的侷限,便有機會透過手機做出精度到公分級的低成本 RTK 測量儀器,適合一些不介意耗電速度的使用場景。

L5, Safety of Life 訊號

另外一個值得一提的是,由於近幾年 GPS、Galiao、QZSS 等支援 L5/E5 10Mhz 訊號的衛星總數到達了三十顆,相較於 L1 1Mhz 的定位訊號,10Mhz 在都市叢林中造成的多重路徑傳播影響較小。GPS L5 訊號是一個刻意保留的頻道,更不容易受到干擾。結合 L1,L2 雙頻定位可以作到更高的定位精度。

IIlustration: Broadcom

 

L5 從 Block IIF satellites 之後的新型衛星開始送訊號,第一台是 2009 上線的USA-203。之前支援 L5 的衛星數量不夠多,其覆蓋率未到大眾可用的商業規模。早些時候只有一些專業的量測工具提供 L5 訊號支援,但是 Broadcom 率先針對智慧型手機推出支援 L5 訊號 BCM47755 晶片,受惠於足夠的衛星訊號,可以大幅改善智慧手機的定位精度。預期其他的競爭對手的產品應該可以逐步趕上,希望在 2018 年看到更多支援此功能的的手機硬體產品。

有別於過去單一運營商透過 App 方式支援 Rich Communications Services 效果不彰。Google 收購了 Jibe[1] 之後,已經將 RCS[2] 整合入 Google Messenger,並預載在 Pixel 品牌手機上。透過 Android 平台來推展 RCS 支援與標準[4][5],Sprint[2][3] 會是第一家開始搭售 Google RCS 客戶端的電信運營商。不想內建 Google Messenger 的手機公司,像是 Samsung[6] 則是透過收購 NewNet 的方式取得技術。

目前 RCS Universal profile 開放規格[7]只是出第一階段規格書,包含基本的通訊協議規格,2017 年第二季會發出下一階段規格書,將會包含 Messaging as a Platform, APIs, plug-in integration 等規格。

RCS Universal profile 是基於 RCS 5.3 定義,基本上補強了協議擴充功能與互通性。但是 3GPP RCS 規格與 China Mobile 的 NGCC (Next-Generation Converged Communication)[8],現階段有很大的差異性。

Universal Profile 中偏好的協議實踐方法與中國移動不同,但目前全球最大 RCS 網路系統中是由中興通訊為中國移動建制,已開始 App 內部試商用階段,如果未來兩份通訊協議規格無法統一互通,那麼中國市場可能會變成擁有強大影響力的孤立市場。

[1] Jibe – https://jibe.google.com/
[2] Google brings RCS, the next-gen upgrade to SMS, to Android phones on Sprint – https://techcrunch.com/2016/11/04/google-brings-rcs-the-next-gen-upgrade-to-sms-to-android-phones-on-sprint/
[3] Sprint is the First Carrier to Launch RCS Messaging with Google | Sprint Newsroom – http://newsroom.sprint.com/blogs/devices-apps-and-services/sprint-is-the-first-carrier-to-launch-rcs-messaging-with-google.htm
[4] Global Operators, Google and the GSMA Align Behind Adoption of Rich Communications Services – NewsroomNewsroom – http://www.gsma.com/newsroom/press-release/global-operators-google-and-the-gsma-align-behind-adoption-of-rcs/
[5] GSMA Initiative to Drive Global Adoption of Universal Profile for Rich Communications Services Gains Momentum – NewsroomNewsroom – http://www.gsma.com/newsroom/press-release/gsma-initiative-drive-global-adoption-universal-profile/
[6] Samsung Acquires Rich Communications Services Business from Skyview Capital’s NewNet Communication Technologies https://news.samsung.com/global/samsung-acquires-rich-communications-services-business-from-skyview-capitals-newnet-communication-technologies
[7] Universal profile – Network 2020 – http://www.gsma.com/network2020/universal-profile/
[8] China Mobile – Next-Generation Converged Communication – http://www.gsma.com/network2020/rcs/china-mobile-next-generation-converged-communication/
[9] http://www.gsma.com/network2020/wp-content/uploads/2016/11/RCC.71_v1.0.pdf
[10] Documents – Network 2020Network 2020 – http://www.gsma.com/network2020/specs-and-product-docs/

Google’s I/O 2016 宣佈將支援 Raw GNSS measurements APIs[1],Java API[2] 在 android-7.0.0_r1 中已發布。其實 HAL[3] 很早就實踐了相關功能,只是一直沒有回傳到上層應用程式。目前這些 API 已經可以在運行 Android 7 的 Nexus 手機[4]上使用。

透過 GnssMeasurement[2] 可以得到相當多原始資料,包含 multipath indicating、RF carrier phase、carrier-to-noise density、pseudorange、pseudorange rate、accumulated delta range 等等資料。也因此有機會利用外部資料配合 RTK 工具[6][7],以智慧手機來做高精確度定位 (Precise Point Positioning, PPP) [5]。

不過根據 Simon Banville 在 Samsung Galaxy S7 的測試,目前的問題是手機必須在大約 12.5 分的 Cold Start 期間,才能收集 continuous carrier-phase tracking。經過冷啟動後,就會進入 duty cycling 模式,也就是 200ms 收集資料、800ms 省電休眠,如此就會錯過相關原始資料。目前還沒有 API 可以關閉 duty cycling 模式。

[1] Raw GNSS measurements in Android | Rex’s blah blah blah – http://blog.nutsfactory.net/2016/06/09/raw-gnss-measurements-in-android/
[2] GnssMeasurement | Android Developers – https://developer.android.com/reference/android/location/GnssMeasurement.html
[3] Implementation of GNSS Measurements support. – https://android.googlesource.com/platform/hardware/qcom/gps/+/af0c0cc82699ddd8d50bf8a2fa60c4bc923a4ebe
[4] Miquel Garcia – First look at Android N GNSS raw measurements – ROKUBUN – http://rokubun.cat/2016/06/30/android-n-preview-gnss-measurements/
[5] Simon Banville – PPP with Smartphones: Are We There Yet? – BlackDot GNSS – http://www.blackdotgnss.com/2016/09/20/ppp-with-smartphones-are-we-there-yet/
[6] GNSS-Lab Tool (gLAB) | gAGE : Research Group of Astronomy and Geomatics – http://gage.upc.es/gLAB
[7] RTKLIB: An Open Source Program Package for GNSS Positioning – http://www.rtklib.com/