某社内イベントにて、開発組織の開発生産性・開発体験改善、特にアプリケーション開発の文脈でできる改善について発表しました. このスライドは、その登壇資料のうち、社内の事情を含まない一般的部分を抽出したものです.
以下はその概要です.
開発生産性・開発体験改善の Rules of Thumb 👍
目標
- **リリースの効率化**: サイクルの短縮とエラー修正の迅速化。
- **人材管理**: 新規人材の獲得と既存メンバーのリテンションを図る。
- **オンボーディングの軽減**: メンバーの出入りをスムーズにし、組織の安定性を保つ。
ルール・ポイント
1 **ボトルネックの改善**:
- リリース頻度やエラー修正時間に直接影響する部分から取り組む。
- 計測の習慣を持つ。
2 **コードの最適化**:
- コード量を減らし、読む負担を減少させる。
- コードの理解に多くの時間がかかるため、理解しやすいコードを書くことが重要。
3 **上流での問題解決**:
- 問題を早期に解決し、下流に影響を及ぼさないようにする。
- 上流の都合を下流に漏らさないことで、ユーザーに不要な調査や変更を強いない。
方法論と実践
- **コード生成**: 冗長なコードの削減、仕様に基づく自動生成の推進(例: protobuf, GraphQL)。
- **モジュール分割**: アーキテクチャを分離し、変更の伝播を防ぐ。アプリケーションとライブラリの分割を行うことで、効率的なバージョン管理や変更管理を実現する。