Published on

2023 WebConf 心得

前言

轉行軟體工程師快三年了,進入雖然餓不死但懷疑自己還能做什麼?是個人因素?還是環境問題?職業經驗問題?結合聽到的內容, 究竟我參加這個活動跟其他人參加有什麼差異?共筆跟簡報也大多都有公開,因此嘗試將內容分類,結合自身經驗與講者分享內容, 整理成各個主要段落,希望對讀者來說能夠獲得些許參考價值。(筆者為前端工程師,因此參與的主題多半與前端、UX 相關)

技術與 AI

上半年最火紅的話題莫過於 ChatGPT 及其相關應用,筆者也有在工作中使用,分成以下幾個部分討論:

DX (Developer Experience)

AI 如何增進 DX

越複雜的程式,越需要精準咒語,目前可以做得最好的是翻譯、轉格式,幾乎不會犯錯,或是開發者可以絕對掌控的程式,筆者曾拿來產生計時器, 產生 gitlab-ci.yaml,效果也相當不錯,Github Copilot 相同。

種瓜得瓜、種豆得豆

增進 DX 的一般化方法

1.CI/CD 並且搭配各種 Linter 等自動檢查(法律是道德的底線,CI/CD+Linter 是上版的底線)。

2.完整的 GitHub Flow/Pull Request 等機制。

3.在 Slack 上下指令就可以部署到正式環境。

4.各種監測工具、開發者工具等能買則買 (如 Copilot 等)。

AI 與創新

為什麼需要創新?因為沒有 AI ,知與不知的資訊不對稱就足以創造差異,但在 AI 時代,凡是已存在的知識都可以輕易獲得,需要創新才能夠創造差異化, 而這個創新的過程也就是知識管理如何產生價值的過程。

創新的過程:模仿 => 轉換 => 合併。

利用 DIKW 金字塔整理知識,Rubby 老師認為,怕忘可以用筆記的方式,否則根據艾賓豪斯遺忘曲線,會很快的忘光然後無法促使行為的改變, 透過自我提問的方法內化知識,在這個過程中會產生很多 IP(Intermediate Packets) ,如何利用大量的 IP 內化知識,是創新的關鍵。

以下棋為例:棋手會在腦中整理對當前盤面的子力位置非贏不可/和棋就好待選的棋步...等等,這些就是 IP, 最後選擇一個當下最佳的著法。

AI 與未知

matrix-of-ignorance

如何處理未知的未知:

  1. 運用 AI 技術進行知識檢索學習測試
  2. 回饋。
  3. 組織內的 Mentoring。
  4. 批判性思維

日常可以實行的大概是 4 => 1,透過批判性思維猜測缺少的部分,再利用 AI 增加自己的知識廣度,最後經由社群交流或 Mentoring 進行檢討, 以近期筆者參加的觀音盃比賽為例,高段組 20 餘位台灣頂尖棋手都會經常性的覆盤檢討,並尋求其餘棋手的回饋。

  1. Creativity - 創造力
  2. Expertise - 專業
  3. Critical thinking - 批判性思維

by Kent Beck

Rubby 老師提醒:

批判性思維不僅是評估外在知識,也評估自我的觀點和信念

對 AI 發展有興趣的話可以參考

  • 活用 GitHub Copilot 開發 Web 應用程式 - Will 保哥
  • AI 驅動下的開發者體驗 - Ruddy 老師

技術發展

專案開始首重整體的思考

以下棋如何思考為例:象棋開局首重出動強子,而西洋棋正好相反,圍棋重視邊角,這種全局的觀念比起一個一個棋子走看看不同的開局, 更容易在短時間內學會下出好的開局。

繼續愛用 Can I Use ,為了 IE 繼承人 Safari。

Frontend Infra

Q:資深工程師都在做什麼?A:增加 DX (CICD、Husky...等等的自動化工具),擴大自己團隊影響力。(但不等於升職加薪,如無升職加薪請參照職涯發展段落)

  • Lighthouse CI
  • SonarQube
  • ESLint Config

對 Frontend Infra 有興趣可以參考以下內容我小時候都看下面講者的技術文

  • 成為前端建築師吧!透過 Frontend Infra 為前端應用打造穩健且高效率的開發體驗 - 莫力全(Kyle Mo)
  • 那些理所當然,卻像空氣般重要的小事:談開發流程、程式架構與職涯發展 - PJ (陳柏融)
  • 從零打造前端效能監測系統 - Summer Tang

Form

input 有幾種 type ?

  • text
  • checkbox
  • radio
  • color
  • url
  • email
  • datetime
  • file
  • search
  • text
  • number
  • range

利用原生方法做到:

  • stepUp()/stepDown ()
  • RTL/LTR
  • Validation

對原生 form 應用有興趣可以參考 Paul 老師的鳳·極意相關簡報及共筆。

Passkey

利用非對稱金鑰達成無密碼登入,可以抵抗釣魚網站跟跨裝置驗證。

雖然 Live Demo 翻車了,但筆者在家用 chrome 是可以操作的,詳細的 side project 還沒空做。

套件參考:Simplewebauthn

對實作有興趣可以參考 Mike Huang 老師的無密碼時代降臨!使用 Passkeys 打造無密碼驗證服務相關簡報及共筆。

技術與商業

商業有一些小事情:

matrix-of-ignorancematrix-of-ignorance

技術要被管理才能創造價值,價值 = UX + DX。

筆者以為應該是乘法或指數關係,如果一個極高一個為 0,應該是無法做出產品。

例如:營運 on call 時,無法處理的問題,可以溝通(work around),不要讓值班人員特地叫 RD 起來重啟機器,造成白天工作晚上休息被打擾。

雖然筆者認為只要 on call 一次發 2000,隔天 on call 管理辦法就出來了,但是這個情境還真的在每間筆者任職過的公司發生過。

管理層的經濟學都應該死當,webConf 講者風

經常妥協就永遠無法進步

by Gipi

技術架構的管理服從康威定律

對商業有興趣可以參考下列講者的分享內容

  • 跳脫技術職與管理職的二分選擇,技術管理職讓職涯無限寬廣 - 游舒帆 Gipi
  • 從專業到商業:十年軟體架構變遷 - Ant
  • 10 年回顧:打造愛料理開發及營運團隊 - Richard Lee

溝通

不成熟的溝通:

我心理會想說,這個懶鬼

by 不詳

成熟的溝通:

好的,OK

by Paul

量化一個人可以接受的意見範圍為 0~10 ,0 是完全不同意,10 是完全同意,如果我的 range 在 2-4 之間,接受到 9 的意見其實只會產生抗拒情緒。

信仰:對某些人、事、物、概念等堅信不移的心理狀態

自我反省:因為我可以接受的意見範圍通常是 0~10,即使不同意那就依據其他條件做決定就好,所以通常會假設對方接受的範圍也跟我一樣, 因為下棋比賽通常會把對手想得跟自己一樣,想太強會害怕,想太弱會驕傲,所以往往在溝通上不順利。

知識的溝通:

  • 見 Discover 具體現況

    搜集資訊、「發現問題」。

  • 識 Define 抽象原因

    是「為問題下定義」,核心是要發掘出問題背後的「事中之理」,確保決策在做對的事情。

  • 謀 Design 具體產出

    創造或擴大選擇空間,「設計決策」。

  • 斷 Deliver 抽象價值

    就是最單純的決策,「抉擇對策」。

有點像下棋的方法:觀察計算判斷

不可能的三角形

matrix-of-ignorance

操作流程:

擁有共同的價值觀,從上到下或從下到上都可以。

  1. 實現[願景]
  2. 我們的策略是[XYZ]
  3. 我們將重點專注於[結果]
  4. 通過解決[機會 Y]
  5. 藉由建立[功能 X]

定義成功指標就是決定共同的價值觀

EX:

  • 公司每個人都能講出公司的價值主張
  • CVP(customer value propositions) 顧客價值主張

對 UX 溝通有興趣可以參考下列講者的分享內容

  • 從共憤走向共創:如何拉齊工程師與設計師心中的「品質標準」 - Kat
  • 建立你的 UXUI 知識地圖 - 卓致遠
  • 講事實沒用,顧客才不聽這個! - Akane Lee
  • From 0 to 1: Navigating the Product Innovation Process 從 0 到 1:產品創新之路 - Rice Tseng
  • 為何技術老人這樣想那樣做?從技術前輩的視角理解技術決策 - Caesar Chi

敏捷開發

很多公司會 run 不成功是因為公司會壓抑你,讓你不敢講真話

職涯發展

因為不錄影所以大部分講者都暢所欲言,請衡量自身情況從下面語錄中選用。

如果你可以影響公司的決策,你才是棋手,而非棋子

by Ant

  1. 把自己放到離價值近的地方
  2. 帶人一定要趁早
  3. 精進自己的管理能力

by Gipi

  1. 不要被角色侷限
  2. 選擇比努力重要

by PJ

試著轉換到有健康文化的工作環境
「要得到你想要的東西,最可靠的方法。就是讓自己配得上擁有它。」
–《窮查理的普通常識》

by Kat

  1. 向內看:以自己為目標,不要把贏過所有人當作目標或壓力
  2. 向外看:對企業(行業)的熟悉度/適應力是重點
  3. 不只人為中心,更要以人類福祉為中心
  4. 不定著於科技,學習看得更廣
  5. 不慌不忙,細細品嚐勝過囫圇吞棗
  6. 面對問題,解決問題,不要等待他人
  7. 不要死守你的角色與職稱

過去感恩、現在安頓、未來設定目標,有目標才不會茫然。

by Richard Tsai

結語

畢竟兩天的活動,筆者自覺難以避免知識的詛咒(Curse of knowledge),已知大概會缺乏記憶方法詳細的內容,有冒牌者症候群的話, 可以參考Beyond Technology 技術之外 - 從個人身心安頓到人類福祉追求 蔡明哲老師的內容,下面附上講者推薦書單、文章,共筆連結, 有興趣的朋友可以自行參閱,祝各位讀者都可以找到人生的意義,如有任何意見歡迎透過下方評論或其他方法給我回饋。

matrix-of-ignorance

講者推薦書單

特別開一個位置放講者曾推薦過的書或文章,前為書名及博客來(沒有分紅)/文章連結,後為推薦講者:

打造第二大腦:多一個數位大腦,資訊超載時代的高效能知識管理術 Rubby Lee

Yes, the 10x (or even 100x!) developers DO exist. But they are not what you think. PJ

產品策略怎麼做 Kat

人生四千個禮拜 Kat

如何改變一個人 Kat Soking

你可以改變別人 Kat Soking

象與騎象人 Kat Soking

南瓜計畫 Richard Lee

如何讓人改變想法 林裕丞(Yves) x 柯仁傑(敏捷三叔公)

團隊活化結構驚奇力量:簡單引導方法激活創新文化 林裕丞(Yves) x 柯仁傑(敏捷三叔公)

SCRUM BOOT CAMP | 23 場工作現場的敏捷實戰演練 林裕丞(Yves) x 柯仁傑(敏捷三叔公)

全球最強團隊都在用的「心理安全感」溝通用語 55 林裕丞(Yves) x 柯仁傑(敏捷三叔公)

參考資源

共筆連結