TL;DR
他說:「你敢搭只有一個機師的長途飛機嗎?如果不敢,你為什麼會放心一個項目只有一個工程師負責,就交付給客戶呢?」
挑選人才看重的三項核心能力,蠻出乎意料是偏軟實力而非硬實力(程式能力)
1. 溝通
2. 產品思維
3. 團隊協作
新創公司特別的點
1. 開發流程
2. 團隊文化
現場實際直播示範10分鐘的Pair Programming
---
今天聽了Alpha Camp邀請Silicon Jungles 的CTO(技術長)Sam Hon的直播,直接線上直播Pair Programming的實際過程、以及分享新創公司的一切架構概念
工程師應具備的專業素質,很多人是從硬體工程師轉軟體工程師,對於硬體而言,規格定好後大都不會再變更,就是按照規格下去製造,但是軟體的思維比較變動性,要想著如何去solve user problem,要幫客戶多想一點,因為軟體客戶通常不知道自己要的是什麼
- 什麼是Pair Programming
- 為何要Pair Programming
- Co-pilot analogy => 他說:「你敢搭只有一個機師的長途飛機嗎?如果不敢,你為什麼會放心一個項目只有一個工程師負責,就交付給客戶呢?」
- 關於Code Review
- Pair Programming可以搭配 Code Review同時用,但是Reviewer要對事不對人
- Pair Programming搭配方式
- 都行,可以junior配junior、senor配junior
- 分工方式有兩種:
- 1.Code & Test, story by story,每個story完成後git push後交換
- 2.Driver(code) & Navigator (design)
- 關於mindset
- 遇到問題需求要想測試要怎麼寫,測試比較接近使用者需求
- 你想程式怎麼寫,程式有上千種寫法,但測試往往只有那四到七種測試方式
- 關於面試
- 直接拿imac開始pair programming
- 會給一個環境、資料庫、幾個User Story
- 從這過程中可以看出面試者是否可以和他人協作
- 關於溝通
- Think out load 在 Pair Progrmming中,要大聲講出要做什麼、要怎麼做
- 寫扣者主動、另一個被動,除非有重大錯誤才要提出意見
- Pair Programming更耗費人力
- 初期投資多,但後期可以省工
- 後期可以預估遇到bug的修復時間(TDD+Pair Programming開發方式下)
- Pair Programming 可以remote(遠端)或是face to face(推薦共用27吋大螢幕)
- 很多人認為 Pair Programming 很浪費時間,寫程式一個人就好為什麼要兩個人一起?
- Pair Programming 有以下優點:
- 1. 一人寫功能、同時另一人寫測試,兩人一起進行測試驅動開發(TDD),避免球員兼裁判
- 2. 兩人一起協作開發、測試,可以避免一人獨立作業時產生盲點。進而縮短產品上線前的 code review、測試的時間
- 3. Pair Programming 的搭檔會定期更換,讓不同的同事熟悉你負責開發的項目。如果有突發狀況,可以彼此接手支援
- Pair Programming 有以下優點: