🤖
開発生産性の教科書 読書まとめ その1
1章 開発生産性とは何か
プロダクトのゴールとは?システムを作って完了ではない。システムを作って得られる結果(達成したKPI、得られた売上&利益)がゴール
生産性 = アウトプット(得られた成果物)÷インプット(そこに費やした生産要素)
開発生産性を上げるための3段階のレベルが定義されている
- 仕事量の生産性(難易度:低)
→ エンジニアの開発効率を上げる - 期待付加価値の生産性(難易度:中)
→ 開発組織全体が期待される結果にどれだけアプローチできたか - 実現付加価値の生産性(難易度:高)
→ プロダクトがどれだけ売上やKPIに貢献できたか(ビジネス観点)
まずはレベル1の「仕事量の生産性」を上げるためには・・・
生産性の可視化して観測する
・1日のコミット数orプルリクエストの作成数
・プルリクエストのオープンの時間
・コードレビューに要する時間 など
悪いところを改善していく
1.メンテナンス性の向上
→ コードベースのドキュメントの整備
→ ユニットテストの導入
→ リファクタリングの定期実施
2.タスクスクリプトの自動化
→ システムリリースに伴うビルド&デプロイ作業をjenkinsなどで自動化する
(繰り返し行う作業を見つけてスクリプト化し自動化する)
3.コードレビューの自動化
初回レビューをCodeRabbitなどAIによるレビューで大まかなコードの品質を評価してもらう、その次にチーム内レビューで仕様にそった作りか?詳細にレビューする
4.コミュニケーションとチームワークの効率化
ドキュメントによるノウハウ共有もいいけど、たまにはみんなで集まって、口頭ベースで情報共有する場を設けるのも、コミュニケーションとチームワークの効率化に繋がる
ペアプロなども良い
お互いの認識の齟齬をなくすのが大事
Discussion