YOUTRUSTのエンジニア組織体制&展望

こんにちは。CTOのzoo(YOUTRUST/Twitter)です。

このブログの公開前後で3人のエンジニアがジョインしてくれました。嬉しい限りです。 今後もエンジニアを積極的に採用していきたいわけですが、採用した先の組織体制について、現在の考えを共有させてください。

CTO室とプロダクト開発部

現在、エンジニアはプロダクト開発本部もしくはCTO室に所属しています。 それぞれのチームのエンジニアの役割は、表のようになります。

プロダクト開発本部とCTO室のエンジニアの役割の差異
各チームのエンジニアの役割

CTO室が事業成長のための開発を主にするのに対して、プロダクト開発部は事業目標達成のための開発を主に行います。 CTO室が1~3年先を見るのに対して、プロダクト開発部は3~6ヶ月先を見るようなイメージです。

語弊がないように付け加えると、プロダクトのビジョンやミッションは数年先を見据えるわけですが、開発という観点では目の前の目標を追っていこう、ということです。

上記の表を少し補足しておきます。

CTO室

  • 事業成長のための開発
    • 事業が拡大し、競争力を維持・向上させるために、技術面での戦略的な取り組みやイノベーションを推進する
  • 技術投資
    • 未知の技術の検証を行い、事業成長につながる技術を蓄積する
  • 開発効率最大化
    • 開発プロセスやツールの最適化を通じて、開発チームの生産性を向上させ、開発コストや時間を削減する
  • 非機能要件
    • 事業成長に対して、システムの性能、安全性、信頼性、拡張性など、機能面ではないシステムの品質面を維持・向上させる
  • アーキテクチャ・技術的負債
    • システムの構造や設計に関する問題や、将来的にリスクやコストが発生する可能性のある技術的な課題を扱う

プロダクト開発本部エンジニアグループ

  • 事業目標達成のための開発
    • 会社の事業目標やKPIを達成するための新規プロダクト開発や既存プロダクトの改善を行う
  • 技術活用
    • 既存の技術を利用して、事業目標達成のための開発を行う
  • 顧客価値最大化
    • ユーザー体験の改善や機能追加などを行い顧客に提供する価値を最大化する
  • 機能要件
    • システムが実現すべき機能やタスクの要件を最適な手段で開発する
  • 新機能・不具合
    • ユーザーに価値を提供するための新機能開発やユーザー体験を損ねる不具合の改善を扱う

具体的な取り組みのイメージは以下のようになります。

CTO室

プロダクト開発部

  • カジュアル面談機能の開発
  • カンパニーページのリニューアル
  • チャット機能の改善

かっちり分かれているように書いてしまいましたが、まだまだ人数は少ないので密にコミュニケーションを取りながら開発をしています。

プロダクト開発部の各職種の役割

プロダクト開発部には、エンジニアの他にプロダクトマネージャー、デザイナーが所属しています。 職種関係なく、ユーザーに価値を提供するために必要なことを実施する、というのがプロダクト開発部に所属するメンバーに共通の役割になります。 その上で、専門性に応じて、もう少し具体的な役割を定めます。

プロダクトマネージャー

事業戦略を達成する上での課題を特定し、解決すべき課題に優先順位をつける

  1. プロダクトのビジョンや戦略の策定
  2. マーケットリサーチや競合分析の実施
  3. ユーザーインタビューやフィードバックの収集と分析
  4. 要件定義やユーザーストーリーの作成
  5. プロダクトの優先順位付けとロードマップ作成
  6. KPI設定と達成目標の管理
  7. クロスファンクショナルチームとのコミュニケーションと調整
  8. プロダクトのリリース計画と実施
  9. 品質管理(外部品質)
  10. プロダクトのパフォーマンス分析と改善提案
エンジニア(プロダクト開発)

課題解決のために、技術に関する専門知識を基に開発および運用を行う

  1. 要件定義の技術面でのサポート
  2. システム設計
  3. コーディングとコードレビュー
  4. 内部品質の担保
  5. テスト(単体テスト、結合テスト)の実施
  6. バージョン管理とデプロイメント
  7. 運用・メンテナンス
  8. タスク管理と進捗報告
  9. 技術文書の作成とメンテナンス
デザイナー

課題解決のために、ユーザー体験を考慮したUIデザインを行う

  1. ユーザー体験(UX)設計
  2. ユーザーインターフェイス(UI)設計
  3. プロトタイプ作成
  4. デザインの実装サポート
  5. デザインの品質管理
  6. デザインシステムの構築と管理
  7. デザインの改善提案
  8. デザインレビュー

エンジニアに関するロール

エンジニアの人数も増えてくるといろいろなロールが必要になってきます。 どれも一般的なロールではありますが、改めて定義しておくことが重要だと捉えています。 ということで、以下のように定義しました。

テクニカルリード

技術的な課題の解決とエンジニアの技術力向上

1. 技術的な意思決定: 技術スタックの選定、開発プロセスの改善、コーディング規約の策定など。
2. アーキテクチャ設計: システム全体の設計や、各コンポーネントの相互作用を計画・評価する。
3. コードレビュー: チームメンバーのコードを評価し、品質を保証する。
4. プロジェクトの技術的リスク管理: パフォーマンスやセキュリティの問題を予測・対処する。
5. 技術的な問題解決: 複雑な技術的課題に対処し、適切な解決策を提案する。
6. ナレッジシェアリング: チーム内の技術的な知識の共有とスキルアップを促進する。

チームリード

チームのパフォーマンス向上とメンバーの成長支援

1. 問題解決: チーム内の対人関係や業務上の課題を解決する。
2. タスク分配: プロジェクトのタスクをチームメンバーに適切に割り振る。PdMにとってチームリードがエンジニアの窓口。
3. プロジェクト管理: スケジュールやリソースの管理、進捗のモニタリング。遅延や問題があれば適切な対策を講じる。
4. コミュニケーションの促進: チーム内外のコミュニケーションを円滑に進める。
5. 人材管理: チームメンバーの育成
6. 採用活動: スカウト送信、カジュアル面談、面接

エンジニアリングマネージャー

チーム全体の人事管理や育成、チームのパフォーマンス向上

1. 問題解決: チーム内で発生する問題や対立を解決し、チームの協力関係を維持する。
2. チーム編成: プロジェクトごとに適切なチーム編成を行い、チーム内の役割分担やリソースのバランスを考慮する。
3. リソース管理: チームのリソースや予算を適切に管理し、効率的なプロジェクト運営をサポートする。
4. プロジェクト管理: プロジェクトの進行状況を監視し、遅延や問題があれば適切な対策を講じる。
5. コミュニケーション: チーム内外で円滑なコミュニケーションを促し、課題解決や意思決定に貢献する。
6. パフォーマンス評価: チームメンバーの業績や成果を評価し、フィードバックを提供し、向上をサポートする。
7. メンタリング・コーチング: エンジニアのスキルやキャリアの成長をサポートし、個々の目標と組織の目標が一致するように誘導する。
8. 採用活動: エンジニアの採用ニーズを把握し、求人広告の作成や面接の実施、採用プロセスの最適化を行う。
9. 知識の共有: チーム内外での技術情報の共有を促し、イノベーションやベストプラクティスの普及を支援する。
10. 組織文化の構築: チームの組織文化を築き、コラボレーションやオープンなコミュニケーションを促進する。
11. チームのモチベーション向上: チームの士気を高め、エンジニアが高いパフォーマンスを発揮できる環境を整える。

CTO

1. 技術戦略・技術ロードマップの策定
2. 技術的な問題や課題の解決策の提案
3. 技術革新や最新技術の調査・評価
4. 技術チームの育成・人材の採用・評価
5. 組織内の技術知識の共有・普及
6. コンプライアンスやセキュリティに関する責任の担保

コミュニケーションパス

体制を考える上ではコミュニケーションパスも考えておいた方が混乱が発生しないでしょう。 ということで、想定しているコミュニケーションです。

PdMマネージャー ↔ エンジニアリングマネージャー

リソースの調整がメイン

1. プロダクト戦略の共有: 今後のプロダクトの進む先の認識を揃える
2. プロジェクトの全体的な進捗の共有: 状況の認識を揃え、次の動きを検討する
3. 人員配置: 四半期単位の採用計画や人員配置などを検討する

PdM ↔ チームリード

プロダクト開発を前に進めるためのプロジェクトの調整がメイン。全員で行うことが多いと想定されるがチームリードが主体となる。

1. 要件定義の確認: 実現可能性、工数感などの擦り合わせおよび仕様の十分性の確認
2. 進捗状況の確認: プロジェクトの進捗状況の共有および必要に応じてスケジュール変更

エンジニアリングマネージャー ↔ チームリード

エンジニアリングマネージャーは各チームのパフォーマンスが向上するようにチームリードをサポートする。そのためのコミュニケーションがメイン。

1. プロジェクトにおける課題の抽出および解決策の検討: プロジェクトの進捗状況や各メンバーの状況を共有し、課題があれば解決する
2. メンバーの目標および評価の擦り合わせ: 評価はエンジニアリングマネージャーの業務。チームリードはリファレンスとしての1次評価

チームリード ↔ メンバー

メンバーを育成するという観点でのコミュニケーションがメイン

1. メンバーの開発状況の確認: パフォーマンス向上に対する課題を特定し解決するための状況の共有
2. 個人の課題解決や目標達成のサポート: 課題解決や目標達成のためのアクションの促進

CTO ↔ エンジニアリングマネージャー

技術的側面から事業を前に進めるために必要なコミュニケーションを取る

1. プロジェクトの技術的な課題や問題の報告
2. 人材の採用・評価・育成に関する話題の共有
3. 最新技術の取り組みや適用範囲の議論

CTO ↔ テクニカルリード

技術的な課題解決のための意志決定に必要なことをコミュニケーション

1. 技術的な問題解決策の提案
2. 技術戦略の進捗状況の報告
3. 最新技術の取り組みや適用範囲の議論

テクニカルリード ↔ エンジニアリングマネージャー/チームリード

技術的な課題抽出および解決策適用に必要なことをコミュニケーション

1. 技術的な問題点および解決策の議論
2. 技術戦略達成のための取り組みや適用範囲の議論

来年に向けて

ここまで、現在の体制について書いてきましたが、最後に来年のスタート時点、つまり2024年のスタート時点での理想とする体制です。

2024年スタート時点の理想の体制
2024年スタート時点の理想の体制

見ていただいてわかる通り、『WANTED』が多く、これからさらにプロダクトを伸ばしていきたい!!という思いが伝わると思います。

少しでも気になることがありましたら、ぜひカジュアルにお話しましょう!お待ちしております!!

herp.careers

herp.careers

herp.careers

herp.careers

herp.careers

herp.careers

herp.careers

herp.careers

herp.careers