プログラマの生産性は10^n (n>=2) オーダーで違います。
生産性を上げるためのには以下の4つの原則を意識するのが重要です。
- 加速
- 集中
- 自動化
- 正準化
目次
プログラマの生産性を上げる4つの原則①「加速」
まず最初は「加速」。
「コンピュータを使う時に必要な段取りを減らす」ことが重要です。
例えば、こんな感じのツール入れていますか?
- ランチャーでアプリケーションを効率的に起動する ※Claunchおすすめ
- クリップボード拡張機能を使う ※Cliborおすすめ
あと、「マウスよりもキーボードの方が早い」のは知っていても、ショートカットを徹底的に覚えていない人も多いはず。
プログラミングする際に、劇的に生産性が上がるIDEのショートカットは以下の通り
- クラスへジャンプ
- シンボルリスト
- インクリメンタルサーチ
- 直近に編集していたファイルのリスト
- ローカル変数の抽出
- 選択範囲を1段階広げる
プログラマの生産性を上げる4つの原則②「集中」
プログラミングをする時に大事なのは集中力です。
しかしこれは簡単に消えてしまうもの。儚い資源なのです。
以下のような行動を取るのがオススメです。
- 気を散らす要因を排除する(ヘッドフォン、メールクライアントの通知を切る)
- 沈黙の時間を作る(他の人に声をかけるのを禁止する)
- ファイルを探す時にナビゲーション(探索)をしないで、検索をする
- モニターを複数にする
- 仮想デスクトップで作業スペースを独立させる
集中力に関しては、DaiGo本が名著です。
あと私は、ノイズキャンセリングヘッドホンを使っています(職場にもよるでしょうが、生産性が1.5倍くらいになります)。
Sonyのノイズキャンセリングが一番性能良いので、生産性にお金を払える人はコレが良いですよ。
【追記】
Airpods proも性能がほぼ同じでしたので、今ならこっちのほうが良いかも。
プログラマの生産性を上げる4つの原則③「自動化」
ちょっとした道具を作れるようになると自動化ははかどります。
「手作業では一見大した手間はなさそうだが、実は自動化する価値が高い」
というのがポイントです。
例えば、以下のような方法。
- ローカルへキャッシュする
- Webサイトとのやりとりを自動化する(curlコマンドなど)
- RSSフィードを活用する
- ビルド以外の作業の自動化にAnt / Groovy
- 日常的な作業の自動化にRake(Ruby向けビルドツール)を使う
- Webアプリの操作記録にSeleniumを使う
- 例外情報抽出の自動化にBashを使う
- バッチファイルではなくWindowsPowerShellを使う
- Automatorを使い古いダウンロードファイルを削除する(Mac限定)
- Subversionをコマンドライン上で使う(今はGitの方がいい)
- SQLファイルの分割ツールをRubyで作る
自動化するか、手動でやるかは見極めが難しいです。
以下のような観点で考えるといいです(というか、毎回迷わないようにしておくのが一番大事)
- 自動化したほうが長い目で見て時間の節約になるか
- 集中力が途切れるか
- ミスをするリスクがあるか
プログラマの生産性を上げる4つの原則④「正準化」
「正準化」は聞き慣れない言葉だと思います。
重複した余分なものを省いて単純にすることを言います。
「Don’t Repeat Yourself(DRY原則)=同じことを繰り返すな」
と通じるものがあります。
ビルドマシンを正準化して、ローカルビルドをしないようにしましょう。
プログラマの生産性を上げる4つの原則 まとめ
そんな感じで、
- 加速
- 集中
- 自動化
- 正準化
という観点で自分の作業を見直すと効率が上がると思います。
ちょっと古いけど、この本で学べますのでどうぞ。
プログラマに限らず、全てにおいて重要なのが集中力なので、この本は必読です。