Pair Programming

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 的搭檔會定期更換,讓不同的同事熟悉你負責開發的項目。如果有突發狀況,可以彼此接手支援