🤖

開発生産性の教科書 読書まとめ その1

2025/01/28に公開

https://gihyo.jp/book/2024/978-4-297-14249-0#toc

1章 開発生産性とは何か

プロダクトのゴールとは?システムを作って完了ではない。システムを作って得られる結果(達成したKPI、得られた売上&利益)がゴール

生産性 = アウトプット(得られた成果物)÷インプット(そこに費やした生産要素)

開発生産性を上げるための3段階のレベルが定義されている

  1. 仕事量の生産性(難易度:低)
    → エンジニアの開発効率を上げる
  2. 期待付加価値の生産性(難易度:中)
    → 開発組織全体が期待される結果にどれだけアプローチできたか
  3. 実現付加価値の生産性(難易度:高)
      → プロダクトがどれだけ売上やKPIに貢献できたか(ビジネス観点)

まずはレベル1の「仕事量の生産性」を上げるためには・・・

生産性の可視化して観測する

・1日のコミット数orプルリクエストの作成数
・プルリクエストのオープンの時間
・コードレビューに要する時間 など

悪いところを改善していく

1.メンテナンス性の向上

→ コードベースのドキュメントの整備
→ ユニットテストの導入
→ リファクタリングの定期実施

2.タスクスクリプトの自動化

→ システムリリースに伴うビルド&デプロイ作業をjenkinsなどで自動化する
(繰り返し行う作業を見つけてスクリプト化し自動化する)

3.コードレビューの自動化

初回レビューをCodeRabbitなどAIによるレビューで大まかなコードの品質を評価してもらう、その次にチーム内レビューで仕様にそった作りか?詳細にレビューする

4.コミュニケーションとチームワークの効率化

ドキュメントによるノウハウ共有もいいけど、たまにはみんなで集まって、口頭ベースで情報共有する場を設けるのも、コミュニケーションとチームワークの効率化に繋がる
ペアプロなども良い
お互いの認識の齟齬をなくすのが大事

Discussion