用 WakaTime 自我監控

一個菜鳥工程師 (有點難為情) 的反省

kyo
Code and Me
6 min readJan 8, 2020

--

本篇與軟體工程師角色較為相關,不過驅動這些行為的核心則是一種生活態度、哲學,只是作用情境與選用工具的差別而已。

WakaTime

WakaTime是一個plug-in套件兼網站服務,註冊帳號並安裝它的plug-in後,可以記錄你在IDE(程式編輯器)上的活動 — — 主要就是寫程式本身!

接著到它的網站首頁,就能看到你所有活動記錄組成的儀表板,它最根本的價值在於記錄你每天究竟花多少時間在編輯器上面(讀)寫程式,讓你心裡有個底。

優點與缺點

這東西對工作或許稱不上有什麼「直接」的幫助,然而藉由它的協助,你能大致瞭解自己過去一段時間大概花了多少時間在寫程式上,有效地增加對工作中事物分配的掌握程度 — — 而非只憑印象或感覺。

無論如何,對我這樣一個喜歡記錄自身行為的人來說,確實是不可多得的小工具,讓人非常地有安全感。

雖然於我而言是很棒的東西,不過我仍對2個小缺點感到遺憾:

1. 想要看到全部的歷史記錄,必須要付費

「使用者付費」當然是沒什麼話好說,人家畢竟提供了工具還要維護網站與保存資料。不過一個月要價9美元感覺就是衝著那些很geek的高薪工程師來的,個人感覺太貴了,如果是3美元的話我會願意付費。

我所比較的對象是Notion的每月4美元和Evernote的每月5美元。雖然嚴格說來WakaTime和它們並不是同一類的東西,但後者對我的重要性顯然更大,我尚且都因為用量不大而沒有付費,只是看看詳細記錄就要我拿出9美元,有一定的困難。

2. 不完善支援Jupyter Notebook

作為Python的使用者,在試驗一些邏輯或語法時,常習慣先在Jupyter上簡單寫寫,跑的結果OK了才正式移到開發環境。這毫無疑問也是在寫程式,但卻不在記錄的範圍裡。

雖然官方目前有Chrome的外掛讓你把開啟Jupyter的位址設定監控對象,但在判斷精確度上就遠遠不及IDE(比如閒置時間可能也會被計入等等),而且官方也表示此套件屬於開發中( work-in-progress),所以我索性沒裝。

說這個兩個缺點小,主要是因為扣除它們,對服務的整體價值並沒有太大的減損,我還是能得到我想要的大部分。

以 Google Sheets 輔助記錄

對Jupyter的支援不佳,姑且睜一隻眼閉一隻眼,不去管它,畢竟這也不會佔我寫程式中的太多時間。而「付費才能看所有歷史記錄」的痛點,就由Google Sheets來幫你緩解緩解吧!

聽起來好像很有一回事,但實際做法非常簡單、克難。WakaTime官方每週一都會寄weekly report的email到你的註冊信箱,信中會記述你上星期的總時數與大概分佈為何,非常粗略,但已足夠。

weekly report

我們使用這個工具,也不一定要知道得多詳細。通常只需要大概的具體數字,瞭解工作狀況,並作為調整時間分配的參考。總之,以「星期」為單位記錄該週總時數,我認為已經足夠。

而我要做的,就是把這個「上週總時數」,手動輸入到我的Google Sheets裡,就這麼簡單。

裝飾你的sheet資料表

聖誕樹少了點綴難免單調無趣。有了每週時數這個主要元素之後,就能依自己的喜好做一些簡單的加總、平均,讓你看這些數字「更有感」 — — 「有感」就是我們在裝飾上最大的追求。

在過去自學時期,我喜好把4週作為最大範圍的產值統計單位,稱作loop。

這樣的基本用意是,也許某一週你因為心情低落或偶發性的怠惰而表現不佳,沒關係,在別週還可以繼續努力,只要整個loop的表現稱得上OK就好了。

對於在努力中掙紮著的自己,我們大可以寬容一些。

同理,比起以天為單位來計較輸出,以週總合檢視有著更大的容錯性,讓你不會因為荒廢一日就感到挫折。畢竟,在漫長的學習人生裡,持續才是最大的美德。

基於上述,我在資料表中加入了每4週一次的總計,來呈現這一個loop的整體表現水平。而年度的每週平均自然也是不可少的,其餘還有最低要求與達成率等等,都是很簡單、有感的數字。

除此之外,對我而言,視覺化也非常重要。顏色給人的感受比數字更加直觀,所以用一些簡單的顏色漸層來彰顯數值的高低,這個部分請愛用「條件式格式設定」功能。

綜合上述,潤飾完後就變成下面的表格,是不是更一目瞭然呢?

小結

我喜歡記錄,但不喜歡太複雜的記錄,複雜容易讓人想放棄。這樣簡單的方式,我相信不會花太多時間,但對自身狀況的掌握與調整卻很有幫助,非常值得一試。

動機、觀察與感受

這個統計表實際上是我今年初 — — 也就是幾天前 — — 工作時才想到並動手弄的。而最大的動機是覺得就職7個月以來寫code的時間實在有點少,心裡感到相當不安。所以想要有更具體的數據,作為改進的參考。

耐心把半年餘的WakaTime週時數統計資料一一輸入到sheet後,更坐實了我的想法:真的太少啦!

還記得工作剛滿3個月時,9月初在臉書上發表了一篇試用期簡短回顧,那時頗有幾分意氣風發的自信,覺得自己真有點長進。但此後至今還是不安居多,其中的原因若干,而寫程式的時間顯然是關鍵之一。

怎麼說?對照這個統計表,可以發現其中的關聯。該篇文章發表的前五週(7/29–8/26),恰好是coding時數相對穩定在每週10小時以上的時期,心裡感覺踏實,講話也有底氣!

現在想想當時的自信,不禁有點苦笑。不過無妨,攤開這些數字,作為改進的第一步,我想今年還是值得期待的。

總結

計時只是一種手段,我們最終的目標是改善自己的作為,得到更好的結果,並對投入的時間負起責任,而不僅僅是追求時數的多寡。不過,顯然地,時數太少是不行的喔!

--

--