アプリケーション・エンジニア職位ガイドライン(オープン・グレード)
📲

アプリケーション・エンジニア職位ガイドライン(オープン・グレード)

変更履歴
  • 2021/9/23
  • 2021/10/11
    • 職種の人数が多い、アプリケーションエンジニアを対象として、まずは内容を詳細化してアップデート
  • 2021/12/10
    • プロフェッショナルの年収を520~550万を520~570万に変更
    • チーフプロフェッショナルの年収を550~600万を570~620万に変更
    • マルチリードエンジニア、チーフテックリード、リード・アーキテクト、チーフマイスターエンジニアの年収上限を950万から1000万に変更
    • アーキテクト、リードアーキテクトの職位ガイドラインの詳細(暫定)を追加

職位ガイドライン補足情報

🦉

ゆめみは評価制度や上司がいない組織であり、給与自己決定制度により給与決定が運用されていますので、下記ガイドラインに関わらず、人材市場評価も勘案しながら、本人が給与は自己決定をします。給与はえいや!です また、「ガイドライン」とは、その定義から、それを参考にした上で本人が自己決定する手がかりでしかありません。チェックリストを満たしたら単純に給与が上がるというものではないですし、チェックリストを満たしていないから給与が上げられないわけでもありません。 細分化した役割、期待、能力を設定している理由は、本人が自ら能力開発目標を立てるための助けになるとして設定しています。また、新卒やアソシエイトだけでなく、あらゆる職位で育成を行う事を明確にして、日本で最も人材育成に力を入れている企業を目指して育成を進めていく方針です。その上で、本ガイドラインを外部にオープンにする事により、エンジニアがより適正に評価され、能力開発が進む事を期待します。

image

📢

チェックリストとして使う際はコピーをして利用してください

アソシエイト職位

アソシエイト

450-500万

ビジネスコミュニケーション

  • 社内のビジネスコミュニケーションの基礎が身についている
  • 15分ガイドラインを身につけられている
    SlackのOJTガイドラインに沿って、毎日のSlackチャンネルの投稿を習慣化できている
    何かわからないことがあった場合に、誰に相談すればいいか、あるいはどのチームに相談すればいいかを理解している
    必要に応じて、ペアプロ・ペアワークの依頼、相談ができている
    Bad News Fastを理解し、ガイドラインに沿った行動を行うことができる
    ロジカルライティングの基礎を身につけている
    モヤモヤ傾聴の議題において、自身が感じるモヤモヤしている事を話す事が概ねできている(少なくとも過去3ヶ月間全くモヤモヤを話せていないという事はない)
    センシングの重要性について理解している

チームコラボレーション

  • チーム開発に必要な専門基礎と連携性の基礎が身についている
    • 専門基礎
    • Gitを使ったチーム開発の基礎(Git FlowやGitHub Flowなど)を理解して実践している(ミクシィ社のgit研修を理解しているレベル)
      デバッグの基本を理解しツールを利用してデバッグができている(「ログを見ることができている」「printデバッグができる」「標準出力やログに変数の値を出力してデバッグできる」など)
      可読性や保守性を考慮したコードを書くことができている
      指導があった上でテストコードを書くことができる
      適切な粒度のプルリクを出すことができている
      レビュアーが意図を読み取りやすく、依頼観点などが整理されたプルリクを書くことができている(プロジェクトでメッセージフォーマットが規定されていれば、そこに沿うことができる)
      基本情報技術者試験合格レベルの知識理解がある(取得していないといけない訳ではない)
      プラットフォーム、開発言語、フレームワーク、ライブラリに関する基礎知識があって実践で活かせている
    • 連携性
    • 業務知識、開発標準、開発プロセス、ドキュメント作成方針、コーディング規約などプロジェクト毎の知識やガイドラインを理解した上で、方針に沿ってチームでの開発業務を行うことができている
      チームやプロジェクトの方針に沿って、仕様やマニュアルのドキュメント化を行うことができている
      指示を受けた上でインシデント対応を行うことができる
      スクラムの基礎を理解している(一冊本を読んだ程度の理解はある)

自律・自学・自責

  • 自ら行動する土台となる会社理解があり、必要な学びを自学した上で、責任を自ら遂行できる
  • Corporate BASICsを理解している
    オンボーディング プログラムで1500点を超えるレベルの習熟がある
    ZAC「研究開発業務2021>プロジェクト学習」の調整係数が必要なくなった段階、ハンズオンでの育成担当も外れて自走できる状態になり、必要に応じて自ら相談しにいくだけで業務が進む段階になっている
    自身の専門的な技術領域について社内外の勉強会に参加して、学びを深める事ができている
    業務時間外も活用して、新しく必要となる技術の基礎は自主的に身につけることができ、日常的にアウトプットする学習習慣が身についている
    必要に応じて、英語の公式ドキュメントや一次情報を読むことができる
    GitHubで定期的にコードをアウトプットして、コードを書く習慣が身についている
    積読の効用をポジティブに捉えた上で、目安として月間の読書量の5倍の積読を行うことができている
    職位ガイドラインに沿った能力開発や専門性を身に付けるために、必要に応じたアドバイスをもらうため、メンターとなる相手に自主的に連絡をとってメンタリングを受けることができている
    グループの方針を理解した上で、委員会活動に貢献できている

500-520万

上記に加えて、特定の技術領域についてのプラットフォーム、開発言語、フレームワーク、ライブラリなどについて全般的な基礎知識があって実践で活かせている(知らない事が毎日のようにあるという状態はなくなっている)
独力でテストコードを普段から書くことができている

アソシエイトエンジニア推奨図書

🔰

なお、新卒は入社後平均6ヶ月(標準偏差3ヶ月)には、アソシエイトのガイドラインを満たす事が期待されます ただし、ゆめみの新卒エンジニアについては、1000時間以上の実践的なプログラミング歴が入社前にあることが標準的な想定となっている前提。

プロフェッショナル職位

プロフェッショナル

520〜570万

ビジネスコミュニケーション

  • 社内のビジネスコミュニケーションとして円滑なやりとりができる
  • 結論から意見を伝えることができる
    事実と意見を切り分けて話すことができる
    特に成果物の完了の定義や最終イメージが関係者間で必ずしも明確でない場合に、例えば2割など途中の完成度や進捗の段階で、レビューやアドバイスをもらう事ができる(ドラフトのプルリクエスト含む)
    イテレーションやWBSでのマイルストーンを理解し、PMやリードエンジニアなどに適切な進捗報告を行うことができる(少なくとも進捗管理を担当する役割の人が困る事が無いようにできている)
    モヤモヤ傾聴の議題があった時に、他人のモヤモヤに対してすぐに解決策を提示せずに、まずは聴くことができる
    センシングを行った上で、会議の参加者に感じたことを伝えることができる

チームコラボレーション

  • チーム開発における専門性と主体性を備えている
    • 専門性
    • 全体システムの設計思想、方針を理解した上で、担当する機能実装についての詳細設計を独力で実施できる
      ログの観察、ブレークポイント設定、クライアントツールやキャプチャツール、テストコード実装など、デバッグに必要なツールや手法の基本を理解し体系的なデバッグを実践できている
      可読性や保守性、トレーサビリティを踏まえたプログラム実装や、エラーハンドリング設計をした実装ができる
      単体(Unit)テスト、機能(Feature)テスト、E2Eテストを意識的に使い分けられる、外部サービスに依存する部分をモック/スタブに置き換えてテストでき
      アドバイスや支援をもらった上でセキュリティを考慮したコードを書くことができている
      実施の必要性の相談をした上で、最適化されたリファクタリングを行うことができている
      実装を担当する開発について工数見積もりを行う事ができる
    • 主体性
    • 開発標準、開発プロセス、開発環境、会議設計、ベロシティ、チームの関係性の質について意見や改善提案を主体的に行う事ができている
      仕様について自ら関係者に働きかけて合意形成する事ができる
      リードエンジニアなどに方針を確認をしながら主体的にインシデント対応を行うことができている

自律・自学・自責

  • ビジネスプロフェッショナルとして質の高い仕事を行う事ができる
  • 仕事を行う際には、適切な粒度のチケット、タスクに分解されているか確認した上で作業を行うことができている
    チケットやタスクリストの中から作業を行う場合は優先順位や依存関係を理解、考慮した上で作業を行うことができている
    認定アトミック・スクラム アソシエイト相当レベルの自己管理能力を保有している
    特定の技術領域において専門性を持った上で、アソシエイト職位に対して、仕事の進め方についての指導や成果物レビュー(人格否定は行わず、成果物の品質に対してレビューができる)を行うことができる
    自身のキャリアや成長目標を「キャリアプラン」としてNotionに記載して、チームメンバーに共有できている
    自身の強みだけでなく弱みや苦手なポイントについて、Notionに「トリセツ」としてまとめて、チームメンバーに理解してもらっている(トリセツは自身のSlackのOJTチャンネルからリンクでたどれるようにしている)
    アソシエイトに対して、グループの方針や委員会活動の方針を伝えることができる
    チームのレップとしての役割を果たした上で、グループの方針や委員会活動について意見を出す事ができている
    新人のバディ担当としてオンボーディングを支援する事ができる
    採用に関係する取材やカジュアル面談の機会があれば積極的に協力した上で、会社の基本方針を理解した上で、問題なく説明ができる

プロフェッショナル職位推薦図書

🔰

なお、新卒は入社後平均12ヶ月(標準偏差3ヶ月)には、プロフェッショナルのガイドラインを満たす事が期待されます

チーフ・プロフェッショナル

570〜620万

ビジネスコミュニケーション

  • 幅広い関係者とのコミュニケーションをビジネスインパクトを考慮して行うことができる
  • 社内だけでなく、顧客とのビジネスコミュニケーションも問題なく円滑なやりとりができる
    インシデントについて事後分析に積極的に関わり、再発防止策に対して提案することができる
    プロジェクトにおいて連携する他職種の業務内容や専門用語などを理解しており、連携性において円滑なコミュニケーションができている
    プロジェクトに関係するドメイン知識について、細部まで理解をしていたり、サービスを消費者視点で利用できるプロジェクトであれば、実際に体験した上でのコミュニケーションができている
    実施する作業や業務内容が顧客のビジネスにどのようなインパクトを与えるかを理解していて、不明な点は確認している
    センシングを、社内会議だけでなく、顧客との会議においても実施することができている

チームコラボレーション

  • 特定の技術領域についての高い専門性を保有し、プロフェッショナルの指導をすることができる
    • 高い専門性
    • 可読性や保守性、テスト容易性、変更容易性、耐障害性、追跡可能性を考慮した上で、安定して本番反映可能なコードを書くことができる
      仕様書(顧客と合意した各種ドキュメントの総称)の新規作成及び定期的な更新を行い、特に重要な部分の情報については最新で正しい状態を保ち、履歴を記録管理することができている
      テスト観点を考慮して、テストケースを作成する事ができ、必要に応じて機能テスト仕様書、非機能テスト仕様書を作成することができる
      保守運用においては、自動化・効率化を行うことが普段からできている
      技術的負債の削減のため、計画されたリファクタリングを行うことができる
      システム全体のアーキテクチャの設計思想や方針を理解した上で、サブシステムの設計や実装を行う事ができる
      仕様が複雑な部分であったり、サービスに影響ある部分の開発も担当する事ができる
      セキュリティやパフォーマンスといった非機能要件を考慮したコードを書くことができる
      応用情報技術者試験で出題される範囲の内容について基礎的な理解がある(取得していないといけない訳ではない)
    • 指導力
    • リードエンジニア業務の一部の業務(合意形成、リスク洗い出し、進捗管理など)を補佐することができる
      特定の技術領域についてのプラットフォーム理解、言語仕様、フレームワーク、ライブラリなどについて深い理解があり教えられるレベル
      技術標準の選定ができる
      プロフェッショナル職位へのコードレビューやペアプロ・ペアワークなどを通じて開発についての指導ができる
      1年先には導入が必要となる新しい技術について調査・検証を行っており、勉強会などで啓蒙・事前共有ができている
      テストコードを普段から当たり前に書いており、プロフェッショナルに指導することができる
      工数見積レビューができる
      プリセールスにおいて、営業と共に商談に参加した上で、顧客に直接質問をしたり、前向きに進める意見を出したり、ネガティブリスクについて指摘をする事ができる

自律・自学・自責

  • 高い自己管理能力と、連携に必要な周辺技術理解、組織貢献ができている
  • 特定のプロジェクト、プロダクト、チームに関わらずに独力で成果を出すことができている
    認定アトミック・スクラムのプロフェッショナル相当レベルの自己管理能力を保有している
    特定の専門領域だけでなく、関連する周辺の技術領域についても、実際に手を動かしてみて理解している
    推薦図書で書かれている書籍の内容について理解している
    他社のカジュアル面談を定期的に受けるなど、自身の人材市場評価や今後の成長機会点など、キャリアの可能性を考える機会を作る事ができている
    職位に関係なく関わるメンバーに対して良い点(Good)だけでなく、今後の機会点(Next)もフィードバックすることができる
    グループの方針や委員会活動について改善提案やJIKKEN的な取り組みについて提案することができる
🔰

なお、新卒は入社後平均18ヶ月(標準偏差6ヶ月)には、チーフプロフェッショナルのガイドラインを満たす事が期待されます

リーダー職位

大きくは、3つの役割を選び(兼務でも良いですが、自分の資質、志向性にあった主軸は決めておいてください)キャリアプランに記載しておいてください。

なお、ゆめみは管理職がいない組織のため、一般的な会社のようにピープルマネジメントをリーダー職位に求められる訳ではありません。

  1. リードエンジニア
  2. テックリード
  3. マイスターエンジニア

1. リードエンジニア

プロジェクトリードに期待される役割

3つのコアバリュー

リードエンジニアには、技術的な専門性を持った上で、3つのコアバリューを発揮するプロジェクトリードとしての役割が期待されます

  1. 仕事の進め方・情報共有など方針策定
  2. 顧客や関係者との詳細仕様調整や、前工程におけるリスク洗い出し
  3. チームにおける課題解決、タスクマネジメント

サブ・リードエンジニア

600〜650万

チーフ・プロフェッショナル職位の能力を持った上で、標準的な規模(同じ職能のエンジニアが数名程度)、難易度のプロジェクトで、リードエンジニア業務を(リード・エンジニアからの支援をもらった上で)行うことができている

ビジネスコミュニケーション

顧客の事業やビジネス方針、プロダクトの強みや特徴などを理解して顧客とコミュニケーションを行うことができる
プロジェクトに関係するドメイン知識について、担当する領域だけではなく周辺領域含めた広いレベルで理解してコミュニケーションを行うことができる
社内メンバーとのコミュニケーションにおいて、人によって態度や振る舞いを変えないようにできている(基本態度「Integrity」より)

チームコラボレーション

  • 高い専門性
  • 技術的負債の削減・返済についての計画を行い、主導的な役割を担って解決を行う事ができる
    各種設計パターン、設計手法を理解した上で、リードエンジニアのレビュー・支援をもらいながら基本設計を行う事ができる
    チームが担当する機能の実装容易性や実装可能性を損なう事が無いように、前行程での仕様の確認、合意形成、連携する関連システムとの仕様調整などを行う事ができる
  • チームマネジメント
  • チーフ・プロフェッショナルに対してプロジェクトリードの役割の一部を任せた上で育成、指導を行うことができる
    インシデントについて事後分析を行い、再発防止策を立ててチームに定着させることができる
    メンバーに対して中期的なキャリアの観点からフィードバックすることができる
    チームメンバーの強みや弱みを理解している
    チームのタスクの優先順位を理解している
    チームメンバーの負荷状況を把握している
    チームに新しく参画するメンバーのオンボーディングプログラムの改善を行う事ができる
    システムコーチやリードエンジニアの支援をもらった上で、チームの関係性の質を高めるための対話の場を作ることができる
    チームのメンバーが意見を言いやすい場作りができる
    チームメンバー同士での定期的な振り返りの場を作ることができている

🔰

なお、新卒は入社後平均30ヶ月(標準偏差6ヶ月)には、サブ・リードエンジニアのガイドラインを満たす事が期待されます

リード・エンジニア

650〜700万

🏡

エンジニアとしての技術的な専門性に加えて、プロジェクトリードとして成果を出している

  • 標準を超える難易度が高いプロジェクトにおいても、プロジェクトリードとして3つのコアバリューの発揮が十分に認められた段階

ビジネスコミュニケーション

特定のプロジェクトマネージャーだけでなく、様々なタイプのプロジェクトマネージャーと円滑に連携ができる
顧客に対して、チームの活動状況を可視化、共有することができる
チーム外とのコミュニケーションのハブになることができる
外部システムとの連携において、他社と調整、連携する必要がある場合も、先手先手で確認やすり合わせを行い、事前のリスクを洗い出し、責務の切り分けをした上で、他社に対しても然るべき要求も出した上で、協力的な姿勢をとるなどリスク・協力バランスをとったコミュニケーションを取る事ができる
顧客や社内メンバーとのコミュニケーションにおいて、人によって態度や振る舞いを変えないようにできている(基本態度「Integrity」より)

チームコラボレーション

  • 高い専門性
  • 技術的な高い専門性を持っていて、特定のチームやプロジェクトに依存せず、リードエンジニア業務を独力で行うことができている
    実際に複数のプロジェクトや異なるチームメンバーとの組み合わせでリードエンジニアとして業務を独力で行った実績がある
    顧客企業のエンジニアチームと共同開発を行う内製化支援業務においても、顧客からリードエンジニアとして技術的に評価されるレベル
    技術的負債の返済についての方針策定を主導して行い、自ら複雑な部分の解決も行う事ができる
  • チームマネジメント
  • 設計方針、実装方針、ドキュメント方針、会議設計、役割分担などプロダクト開発に必要な内容を明確に文書で定める事ができている
    チームメンバーの強みや弱みを理解し、チームの成果を最大限発揮するような役割分担を行うことができる
    例えば、ドラッカー風エクササイズなど、チームビルディングや関係性の質を高めるために必要な施策を選択し、実行することができる
    タスクの優先順位を理解した上で、チームメンバーの負荷状況を考慮しながら、適切な粒度のチケット、タスクでメンバーに分担することができる
    タスクの進捗状況を積極的に把握した上で、遅れているタスクに対して適切な解決を行うためのアクションを行うことができる
    チーム全体に関係する工数見積もりを取りまとめることができる
    必要に応じて、スクラムマスターの役割を担う事ができる
    サブ・リードエンジニアに対してプロジェクトリードとしての支援、育成を行うことができる
    チームのメンバーが新しい挑戦やJIKKENを行うことを推奨し、挑戦行動に対してポジティブなフィードバックを返すことができている
    意見をあまり言わないチームのメンバーがいた場合に、配慮して意見を聞き、居場所をつくってあげることができる
    チームの関係性の質を高めるための対話の場を設計、用意することができる
    メンバー同士のピア・フィードバックを行う場づくりを定期的に行うことができた上で、自分自身への今後の機会点(Next)も含めたフィードバックを積極的に受けるようにできている

チーフ・リードエンジニア

700〜800万

🏡

難易度が高いプロジェクトにおけるプロジェクトリードとしての成果や、複数チームを横断したチームマネジメント、リードエンジニアの育成実績が求められる

  • 社内でも手本となるリードエンジニアである
幅広いドメイン知識がある
規模が標準的なプロジェクトよりも大きかったり、顧客との調整の難易度が高いプロジェクトリードも安定して成功させることができる
プロジェクトにおいて、複数チームを横断したチームマネジメントを行う事ができる(例えば、iOSとAndroid、サーバーサイドとフロントエンド、複数のマイクロサービスなど)
リードエンジニアに対してプロジェクトリードとしての育成を行うことができる
メンバーに対して、健全な無茶振りとして、背中を押すようなアドバイスやアサインを促すことができる
エラスティックリーダーシップの書籍にあるように、プロジェクトの状況に応じたリーダーシップの発揮のさせ方を使い分ける事ができる

マルチ・リードエンジニア

800万〜1000万

🏡

チーフ・リードエンジニアが、マルチハット、マルチスタックなど幅広く役割範囲を広げていく場合にマルチ・リードエンジニアと位置付ける

チーフ・リードエンジニアに対してプロジェクトリードとしての育成を行うことができる
LCP(リーダーシップ・サークル・プロファイル)の研修を受講し自身のリーダーシップのあり方の機会点に向き合って、トレーニングを3ヶ月以上行った
  • マルチスタックの例
    • iOS、Androidの両方の技術の専門性を持った上で、iOS、 Android両方のプロダクトの設計理解、コード理解があるため、モバイルアプリに関する仕様調整を手戻りなく、実装容易性も考慮した上で、統合的にリードできる場合となります
  • マルチハットの例
    • アーキテクトあるいはプロジェクトマネージャーの役割も兼務して担うことで、プロジェクトの高い品質や生産性に貢献できる
    • 社内のグループ全体の委員会活動、あるいはグループを横断した委員会活動をリードできるレベルでのプロセスマネジメントを兼務して担い、組織に貢献できる

アーキテクト(暫定)

700〜800万

🏡

リードエンジニアの職位ガイドラインを満たした上でシステム全体の設計やコアな部分の実装も行うことができる

複数の言語、技術標準選定、アプリケーション開発の経験がある
インフラ含めたシステム全体の設計を行う事ができる
対象システムのビジネス要件を理解した上で設計ができる
サービス要求に対して、システム化要件として再構成、定義する事ができている
サービス要求を理解した上で、性能・負荷試験の計画を策定する事ができる
セキュリティ要件、監視・運用要件を考慮した設計ができる
インフラコスト計算し最小・最適なアーキテクチャを設計ができる
属人性を排除した上で、運用コストを減らす設計ができる
各種クラウドサービスの特性を理解し、要件に応じたアーキテクチャ設計ができる
要件に応じて単一障害点を作らないアーキテクチャ設計ができる
アーキテクト志望のリードエンジニアに対して育成を行う事ができる

技術理解

以下の技術の利用経験があった上で

  • コンピューティング(EC2)
  • ネットワーク(VPC)
  • ロードバランシング(ALB/NLB)
  • データベース(RDS/Aurora)
  • ストレージ(S3)
  • メトリクス(ClodWatch Metrics)とログ(CloudWatch Logs)
  • コンテナ(ECS)
  • サーバレス(Lambda)
  • CDN(CloudFront)
  • キュー(SQS)
下記技術から3つ以上利用経験があるなどAWSの専門的なサービス理解がある
  • データ分析( Firehose、Athena)
  • OLTP(Redshift)
  • CI/CD( CodePipeline, CodeBuild. CodeDeploy)
  • アプリモニタリング( AWS X-Ray)
  • セキュリティモニタリング(Amazon GuardDuty)
  • アイデンティティ( Cognito )
  • コンテナのロギング(Firelens)

リード・アーキテクト(暫定)

800〜1000万

🏡

規模が大きかったり、複雑性が高いサービスにおいてシステム全体の設計だけでなく、クリティカルな部分の実装も行うことができる

複雑な仕様であったり、サービスに重大影響ある領域(決済や会員基盤、金銭や個人情報に関わるなど)の開発を品質高く開発する事ができる
技術的負債が大きく、まとめて影響範囲大きいリプレースやリファクタリングが必要なコードベースについても、推進力持って負債の返済を行う事ができる
(ゆめみの中でも)規模が大きかったり、複雑性が高いサービスにおいて、インフラ含めたシステム全体の設計を行う事ができる
アーキテクチャの拡張性やライフサイクル、監査基準を考慮した設計を行う事ができる
システム開発全体の標準(プロセス、ドキュメント体系、採用技術)について、最適な選択を行う事ができる
仕様調整段階から関与して、システムの課題、要求に対して、会議体の場でディスションを行いながら、顧客に対して様々なアイデアや、技術的解決方法、実現方法、設計上のリスク評価や対策について提案する事ができる
幅広いドメイン知識がある
アーキテクトに対して育成を行うことができる

技術理解

以下技術から2〜3つ利用経験があるなど専門性が高い領域の経験がある
  • ビックデータ(EMR)
  • ETL (Glue)
  • サービスメッシュ(AWS App Mesh)
  • Machine Learning系
  • シングル・サイン・オン(AWS SSO)

2. テックリード

テックリード

700万〜

🏡

サブ・リードエンジニアとしての職位ガイドラインを満たした上で、高い専門性と設計・実装力があり、複数のプロジェクト・プロダクトに対して技術的な課題解決を行うことができる

特定のプロジェクトだけでなく、複数のプロジェクトに能動的に関与して技術的な課題解決を行うことができている(目安として、自身が特定のプロジェクトのコアな設計、実装に関わらない場合は、5〜10 のプロジェクト、自身がコアな設計、実装に関わる場合も、3〜4の他プロジェクトに関与する)
実装に関わる稼働を年間平均して50%以上一定確保をして、最新の技術にキャッチアップできている
設計レビュー、コードレビューを実施し、必要に応じて、コアな部分の詳細設計、実装も担当することでプロジェクトの品質責任を負う 事ができる
開発標準、ライブラリの選定、開発プロセス(KPT、Daily Meeting、ブランチ戦略、issue/Pull Requestの運用)の改善を通じて、生産性の最大化に貢献している
自分が関与していない他プロジェクトの工数見積に対しても能動的にレビューを行うことができている
チームやプロダクトに必要なSLO/SLAやメトリクスを定義する事ができる
特定の技術について、グループの中でも技術的に先端をリードしている領域を持っている
必要に応じて、再利用可能なライブラリの開発を行う事ができる

800〜900万

社内でテックリードとして十分な実績が認められた段階
専門分野での主要なカンファレンスにおいて専門性が高い登壇ができる
特定のチームや特定プロダクトの技術標準に依存せず技術的にリードできる
♟️
リードロールの戦術的プレイガイドライン
に沿った動き方を行うことができてる
チームやプロダクトに必要なSLO/SLAやメトリクスを定義した上で、チームの成熟化を支援する事ができる
要望を受けたときだけ支援するのではなく、自らチームに働きかけて必要に応じた介入も行うことができる

行動指針の参考

チーフ・テックリード

900〜1000万

社内のテックリードでも見本となる存在となっている
社外から見ても技術的に評価される特定の知見を持っている
テックリードに対して育成を行うことができる

3. マイスターエンジニア

プロジェクトリードやテックリードというチームにおける役割を担わなくても、標準的なエンジニアの2倍以上の生産性が高いエンジニアはマイスター認定され、生産性にあわせて年収想定も高く設定され得る

マイスターエンジニア

650〜700万

  • 社内でマイスターエンジニアと認められた段階
  • グループにおいて上位15%以内の生産性を誇っている(例えば、Findy Teamsなどで測定される項目において)
    プルリクの修正理由が詳しく書かれていてレビューしやすい
    レビューで実際に動作確認をきちんとして、責務の切り出しや具体的な改善案を丁寧に出すことができている
    繰り返し作業を自動化、短縮化している
    周りがなかなかやらないが、やらないといけない作業を率先してやっている
    将来の懸念点やリスクを事前に的確に予見し、意見することができている
    複雑な仕様であったり、サービスに重大影響ある領域(決済や会員基盤、金銭や個人情報に関わるなど)の開発を品質高く開発する事ができる
    技術的負債が大きく、まとめて影響範囲大きいリプレースやリファクタリングが必要なコードベースについても、推進力持って負債の返済を行う事ができる
    ユーザー体験を考慮した上で、提案、意見を出すことができている
    疑問点を調べるだけでなく、一段深いレベルで物事を理解する事を行なっている
    ドキュメントにおいては無駄な情報を整理した上で、定期的に最新化し、初めて見る人にもわかりやすく構造化、言語化するなど考慮できている
    一つの観点や自分なりの流儀に拘らずに他者視点、多角的な視点を持った上で議論をすることができている
    指示を鵜呑みにせずに、前提や目的を確認したうえで、目的に沿っているかを理解している

チーフ・マイスターエンジニア

700万〜1000万

  • 社内で実績あり手本となるマイスターエンジニア。
    • グループにおいて上位1〜5%の生産性を誇っている(例えば、Findy Teamsなどで測定される項目において)
    • 大規模なサービスにおける重大な影響ある領域(決済や会員基盤、金銭や個人情報に関わるなど)の開発を品質の高さに加えて、生産性高く開発する事ができる

リーダー職位の年収加算要素

マイスターエンジニア兼リードエンジニア

  • マイスターエンジニアがリードエンジニアの役割も担う場合

テックリード兼リードエンジニア

  • 緊急的な状況ではリードエンジニアを自身で行いながらも、リードエンジニアの育成対象がいる場合は、リードエンジニアの支援的、教育的な役割にシフトして、技術的な支援に専念するなど、柔軟にリードエンジニアからテックリードの役割を変化させることができる

マルチスタックエンジニア

🏡

ただし、マルチスタックが成果に貢献しており、役割を継続的に実施している、将来も実施される想定が必要。昇給した後、役割がなくなった場合には一定猶予期間経過後、減給する可能性もある

  • サーバーサイド、フロントエンドなど連携性が高い2つ以上の技術領域において専門的な知識、経験を保有するチーフ・プロフェッショナル以上のエンジニアを指す
  • 特に技術領域として連携性が高く、例え疎結合に設計されていたとしても、責務範囲を切り分ける際には、実装容易性などを考慮した詳細設計が必要であるため、複数分野について精通している事が将来的な保守性やコードの複雑化の回避に影響する
  • リードエンジニアのようにチームをリードする役割でなくても、詳細設計、高い品質をリードしていくという役割としてフルスタックエンジニアの役割が期待される場合がある
  • サーバーサイド、フロントエンド、インフラの3領域に渡って、チーフ・プロフェッショナルであるマルチスタック・エンジニアをフルスタック・エンジニアと呼ぶ。Netflixのような大規模なマイクロサービスアーキテクチャを採用する中で、フィーチャーチームが確立されていれば有用な役割ではあるが、ゆめみではフルスタックが求められる場面は多くはなく、アーキテクトとしての役割として複数技術理解が必要となる場面の方が多い。一方で、アーキテクトであっても全ての技術領域を教えられるレベルになるには難易度が高く、サーバーサイド寄り、フロントエンド寄り、モバイルアプリ寄りに分かれる。但し、モバイルアプリアーキテクトの場合は、iOS、Android理解が必要。
  • フロントエンドとUIデザインを2つの領域での専門性がある場合は、UXエンジニアと呼ぶ
  • コーポレートエンジニアリングにおいては高いレベルになると、フルスタックかつフルサイクルが求められる

マルチハット・エンジニア

🏡

ただし、マルチハットが成果に貢献しており、役割を継続的に実施している、将来も実施される想定が必要。昇給した後、役割がなくなった場合には一定猶予期間経過後、減給する可能性もある

  • プロダクトオーナーあるいはスクラムマスターというスクラム における役割を兼務(帽子の被りわけ)ができるエンジニア
  • チームビルディング初期ではなく、スクラムチームが安定してきた段階では、エンジニアがスクラムマスターを兼務したりすることも実施できるようになる
  • あるいは、プロダクトに一定期間関わることによって業務知識を深く理解することになり、プロダクトオーナーの役割の一部を担うこともできる(例:エピックプロダクトオーナー など)
  • 兼務することによってチームとして、スクラムマスターが一人に依存してしまう問題を回避したり、プロダクトオーナー の負担を軽減することにつながる

フルサイクル・エンジニア

🏡

ただし、フルサイクルが成果に結びついており、役割を継続的に実施している、将来も実施される想定が必要。昇給した後、役割がなくなった場合には一定猶予期間経過後、減給する可能性もある

  • 継続的なディリバリーフェーズのプロジェクトを担当する
  • リード・エンジニアとしての能力に加えて、ヒアリング、要件定義、DevOps、窓口対応も行う事ができ、プロジェクトの要件定義フェーズからリリースまでの全ての工程において、複数の役割を一連して行うことができ、通常では発揮できないプロジェクトのクオリティ、アジリティの両立と、一人何役もの高い生産性の発揮をすることができている
  • グロースハック、コーポレートエンジニアリング、プロトタイピングなどで活躍が期待される

シニア職位

シニアリードエンジニア・シニアテックリード・シニアマイスターエンジニア・シニアアーキテクト

900〜1300万

特定のプロジェクト、グループだけでなく、会社全体に関与して、組織に貢献することができている
登壇、書籍出版、雑誌寄稿など情報発信を行い会社の技術広報の貢献も期待される
外部コミュニティとのネットワーキングを定期的に行い、最新の技術情報を獲得できている
組織全体に関わる設計、技術方針を示すことができる
組織全体の強みにつながるような、開発標準、開発プロセスの改善による、生産性の最大化のノウハウを保有している
社内標準な技術を持つエンジニアと比較した場合に、一つの目安として2.5倍以上の生産性を発揮している

マルチスタック機械学習エンジニア

  • 機械学習エンジニアとアプリケーションエンジニアを兼務するマルチスタックの場合は、機会学習の専門性によって、目安として50万〜80万円以上は年収を上方修正すること

参考

CircleCIのコンピテンシーマトリックス

Engineering Ladders