勉強日記

チラ裏

The Clean Coder ch12 Collaboration

www.oreilly.com


Collaboration

  • チームはプロらしく協力してこそ最高の効果を発揮する
    • 一匹狼や隠遁者はアンプロフェッショナル
  • 同僚と協力してパフォチューした話
    • アセンブリ言語で書かれたプログラムのクロスリファレンスを調べるやつ
    • アルゴリズムとデータ構造に明るくない中、試行錯誤
    • 1時間以上かかっていたのが、15分で済むように
      • ソースコードのテーブを物理的に読み込むのにそれくらいかかる
      • 【補】要するに、処理時間はほぼかからなくなった

Programmers versus People

  • プログラマ、人との付き合いを面倒がりがち
    • プログラミングやデバイスの挙動と比較して、めちゃくちゃで予想不可能だから

Programmers versus Employers

  • 著者はデバッグ大好きだった
  • 興味深いバグを嬉々として上司に報告したら怒られた話
    • 「バグは興味深くなんかない、直すものだ」
  • プロのプログラマとして最初の責任は、雇い主の意に添うこと
    • ビジネスを理解する
      • なんのためにコードを書いているか
      • 雇い主はそのコードからどんな利益を被るか
    • ビジネスが炎上しているのにお構いなしで技術にのめり込むのはプロとしてあるまじき姿
      • ビジネスを立ち行かせるのが仕事
  • 素行が悪くてクビになった話

Programmers versus Programmers

Owned Code

  • 壁を作り、他の人に自分のコードを触らせないやつ
  • 社内政治的な原因があることも

Collective Ownership

  • コードは個人ではなくチームの所有物であるという認識
    • 全員が任意のコードをチェックアウトして改善できるほうがいいでしょう
  • プロたるもの、システムのなるべく多くの部分を触れるように努めよ

Pairing

  • 多くのプログラマはペアを組むのを嫌がる
    • 緊急時はペアを組むのに、おかしいね
  • プロたるものペアを組め
  • 主要な理由: 知識の共有
    • 知識の垣根を作らない
  • コードレビューの方法として、ペアプロは最も効率がよく効果的
    • いかなシステムも、他の人のレビューを通過していないコードを含むべきではない
    • レビューの方法は様々あるが、ペアプロ以外はひどく非効率

Cerebellums

  • キュービクルでヘッドホンをして孤立して働くのではなく、チームとして働こう
    • 他の人の不安ごとや、いらだったブツブツなどに気づきたい
  • 「一人だと捗る」
    • それはあるかもしれない
    • が、「チームで働くよりも捗る」ことは少ない
  • 例外的に一人作業が正しいこともある
    • 問題について長考・熟考しなければならないとき
    • 問題があまりにも些細なもので、他人を巻き込むのが無駄なとき

英語

  • loner
    • 一匹狼
  • recluse
    • 世捨て人、隠遁者
  • hindrance
    • 障害、さまだげ
  • like fiends
    • 取り憑かれたように?
  • sensory deprivation
    • 感覚遮断
  • vigor
    • 活力
  • business wonk
    • 仕事の虫
  • in charge
    • 担当の
  • twerp
    • くだらないやつ、馬鹿者
  • political clout
    • 政治的影響力
  • unassailable
    • 難攻不落の、論破できない
      • 政治的な力を持つ、くらいの意味か
  • anecdotes
    • 逸話
  • silo
    • サイロ
      • 窓のない部屋
    • 転じて、各部署が連携を取らないさま
  • cerebellum
    • 小脳
      • 筋肉の繊細な制御を司る
  • mutterings
    • つぶやき、ブツブツ
  • serendipitous
    • 偶然運良く見つけた