概要
Developer Productivity について、 RPG のメタファを用いながらまとめてみます
Developer Productivity とは?
Developer Productivity とは、 開発者・開発組織の生産性を向上させることです。
メタファ
「システム開発に出会いを求めるのは間違っているだろうか?」(以降、略して シスまち )
という架空の RPG の世界のメタファで話をすすめます。
職種
職種を 攻撃系職種 と 支援系職種 に分けます。
この両方をまとめて 冒険者 と呼びます。
攻撃系職種
- Web サービスのプログラムを実装すること
- 受託開発のシステムを設計・実装すること
- アプリを開発すること
など、直接価値を生み出す職種は
「物理で殴る」
「魔法で攻撃する」
ような 攻撃系職種 と考えることとします。
レベル軸で分類
ビギナーは 攻撃系下級職 。
シニアは 攻撃系上級職 。
単著(隠語)を出版したり、代表的プロダクトを生み出すような「唯一」な存在なら
その人そのものが職種名 だったりするイメージです。
種類軸で分類
フロントエンジニアは 戦士。
サーバーエンジニアは アーチャー。
コピペエンジニアは ものまねし。
そんな見方もできますね。
支援系職種
- 保守性を高める
- ツールで開発効率を上げる
- 自動化を行う
- ナレッジ管理の仕組みを作り、情報を共有できるようにする
など、直接の価値は生み出さないがコストを削減したり、
開発のスピードを上げる職種は、
「攻撃力を上げる」
「守備力を上げる」
「素早さを上げる」
ような 支援系職種 と考えることができます。
支援系職種は、 攻撃系職種 の 攻撃力・守備力・素早さを高めることで
パーティーの戦闘を優位にすすめることができます。
全体系支援魔法なら効果は絶大 です。
効果が絶大な支援系職種、是非パーティに加えたいところですが、
転職難度が高い ため絶対数が少なく、 パーティに加入されるために必要な 金額が高い です。
ゲーム序盤では金銭面の余裕がないことや、難易度の低さにより支援系職種がいなくても何とか乗り切れます。
しかし、ゲームを進めるにつれて 支援系職種 を加えないと攻略が困難な クエスト が待ち構えており、
資金調達とパーティーへの勧誘に失敗すると ツンダコレ という状況がまっています。
もちろん、序盤から彼らを味方に付けることができれば 攻略難度は大きく下がる でしょう。
レベル軸で分類
ビギナーは 支援系下級職 。
シニアは 支援系上級職 。
支援系のケースでも単著(隠語)を出版したり、代表的プロダクトを生み出すような「唯一」な存在なら
その人そのものが職種名 だったりするイメージです。
種類軸で分類
CTO など、全体に関わる Developer Productivity の戦略を練る人は、 軍師、
開発基盤チームなど、支援を行う人は エンチャンター と考えることとします。
"エンチャンター"
開発基盤チームがこの役割を持つことがあったり、
アーキテクトチーム+品質保証チームでこの役割を持つことがあったり、
Kaizen Platform, Inc. のように、 Developer Productivity という職種 自体を用意しているケースもあるようです。
「シスまち」では、 軍師やエンチャンターが定期的に支援を行わないと
パーティー全体にじわじわペナルティが加わり、その パフォーマンスが低下してくる システムがあります。
それは 技術的負債システム であったり、 部分最適化システム であったり、 社内政治システム であったりします。
そして パーティーの活動範囲が広がってくる につれ ペナルティの度合いを強め ます。
"軍師", "エンチャンター" の職務
- 攻撃支援魔法(開発者の生産性の向上)
- 防御支援魔法(サービスの品質向上)
- 時魔法(各種自動化)
- 永続支援呪歌(継続的インテグレーション、継続的デプロイ)
- ステータス表示魔法(ナレッジの可視化)
- 錬金魔法(組織全体で利用するツールの作成)
- 蘇生魔法(Immutable Infrastructure)
などなど。
(結構無理がある・・ onz 。ブクマコメントで良いメタファに期待)
"軍師", "エンチャンター" に必要な能力
- 戦闘に勝つための戦略、戦術
- 視野の広さ
- 長期的な思考
- 攻撃職と良好な関係を築くコミュニケーション能力
- 最新の技・魔法を研究する好奇心・探究心・モチベーション
- 魅力
- 冒険者の三大美徳 をパーティ全体で意識できる
まとめ
「 シスまち 」 のメタファはいかがだったでしょうか?
無理があるよ!という方、よりよいメタファでのカウンターエントリをお待ちしてます!