Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Engineering in GMO Pepabo, Inc.

Engineering in GMO Pepabo, Inc.

第1回ペパボテックカンファレンス
http://pepabo.connpass.com/event/13208/

Kentaro Kuribayashi

April 19, 2015
Tweet

More Decks by Kentaro Kuribayashi

Other Decks in Technology

Transcript

  1. これまでやってきたこと サービス開発と並行し、 3年かけて技術基盤の改善を行った結果、効率的な開発が可能になった http://engineer.typemag.jp/article/pepabo-dev ▪ 技術基盤の改善 ・最新の開発環境整備 ・プログラミング言語、フレームワーク、ミドルウェア、OS等 のアップデート ・Railsによる開発力の強化

    ▪ 開発プロセスの導入 ・テストやCI環境の導入・普及 ・スクラムの導入・普及 ▪ エンジニア制度 ・エンジニア評価制度の制定 ・新卒研修の制度化 ▪ 組織づくり ・技術部の創設 ・チーフエンジニアの設置 ・執行役員CTOの設置
  2. 技術部のミッション 全社統合的なアプローチで、技術による効率化と事業成果の最大化を図る ・エンジニア職位制度 ・技術的組織能力の拡大 ・エンジニア採用戦略 ・エンジニア評価制度 ・アウトプットの支援 ・技術マーケティング ・技術的負債の返済 ・技術要素の最新化

    ・スクラムの導入 ・Ruby + Rails化の推進 ・移設による DC集約 ・プライベートクラウド化 ・ペパボストレージ ・技術要素最新化全社目標 ・マトリクス組織への移行 ・セキュリティの強化 個別的 統合的 最 大 化 効 率 化 これから 経営戦略部 技術基盤T 経営企画G 経理財務T 人材開発G 経営戦略部 経営企画G 経理財務T 人材開発G 技術部 技術基盤T インフラG 技術部長 マネージャー 2014年まで 2015年1月1日以降 移管 ・2014年8月1日: チーフエンジニアを設置 ・2015年3月21日: 執行役員CTOを設置 東京本社勤務のインフラエンジニアを、インフラグループへ異動
  3. CTOとは何か? 経営目標を達成するために、技術戦略を策定し実行する役割 経営目標 現状 時間 戦略1 戦略3 ▪ 経営戦略とは何か? ・経営戦略とは、目標達成を可能にするために、経営資源を最

    適化・最大化する(=マネジメント)すること ・CTOはその内の「技術」戦略に携わる ・経営資源とは、ヒト・モノ・カネ・情報の4つ ▪ CTOがマネジメントするのは? ・ヒト: 人事・組織づくり ・モノ: 技術基盤整備・イノベーション ・カネ: 技術による新事業創出 ・情報: 組織能力の向上 ▪ 技術戦略の策定・実行とは? ・技術的経営資源への操作パターンを立案・選択・実行するこ と。右図でいえば: 1. 戦略1, 戦略2, …, 戦略nを立案 2. その内、最も目標達成への確度の高いものを選択 3. 目標達成への道筋を実際に進む 戦略2 ・ヒト ・モノ ・カネ ・情報
  4. 今後の技術的展望 全社業績向上に大きく寄与するための技術的基盤を構築していく 様々な言語による microservices化 インフラの クラウド化 次世代ホスティング サービスの提供 モバイルサービス へのシフト

    ・10年級サービスを、様々な言語による APIベースのmicroservicesとして作り直していく ・技術能力を多方向に向け成長させることで、将来のリスク軽減と多様なエンジニアの採用につなげる ・オンプレミスから脱却し、全サービスのクラウドへの移行 ・素早く事業展開し、安定したパフォーマンスでもってサービスを提供する ・業界No.1のパフォーマンスを目指す ・すべてのお客様に最大限価値提供しつつ、セキュリティ的に安全で、安定したサーバーを提供する ・モバイルアプリの力で、 minneを圧倒的No.1サービスに ・Webに加えてモバイルもできるエンジニアを育成し、モバイルネイティブな No.1サービスを
  5. または 様々な言語によるmicroservices化 サービス開発における機動性を保ちつつ、技術的なリスクに強い組織能力を構築する 一枚岩のサービス medium-scale services ・単一言語によって構築されたサービス ・一枚岩のアーキテクチャ ・機動的な展開が難しい規模 ・単一の言語で構築されたサービス

    ・中規模なサービスの集合としてのアーキテ クチャ ・個々のサービスは、機動的な展開という意 味ではまだまだ大きい 様々な言語によるmicroservices ・様々な言語で構築されたサービス ・小規模なサービスの集合としてのアーキテ クチャ ・個々のサービス単体で展開が可能 イマココ
  6. モバイルサービスへのシフト minneアプリを起爆剤に、モバイルネイティブなサービスでも No.1に これまで これから サービス 組織能力 ・ホスティング、EC、コミュニティ事業という、多様な事業領 域における、個人・中小規模事業者向けサービス ・PCやWeb中心

    ・多種多様のサービスを開発・運用してきた技術力・ノウハ ウ ・サーバサイドの技術に特化した技術力 ・オンプレミスなインフラを大規模に構築・運用してきた技術 力 ・多様な事業領域でサービスを展開するところは同じ ・既存のWebサービスを、モバイルアプリによってより使い やすくし、伸ばしていく ・モバイルネイティブなサービスに、今後も継続的にチャレ ンジしていく(例: kiteco) ・サーバサイドにおける高い技術力を持つエンジニアが、モ バイル開発もできるように ・大規模なインフラを運用できる能力により、前述のクラウ ド基盤を用いて、モバイルサービスのための盤石なインフ ラを提供 ユーザ体験を軸に、モバイル・フロントエンドからインフラまで一本通った技術
  7. エンジニアの類型 ペパボのエンジニアは、主に 4つの類型に分けられる Webエンジニア モバイルエンジニア インフラエンジニア 情シスエンジニア ・RubyやPHPなどによるサーバーサイドプログラミング ・JavaScriptによるフロントエンドプログラミング ・iOSやAndroidアプリの開発

    ・インフラ・アーキテクチャの設計・構築 ・サーバーやミドルウェアの構築・設定・運用 ・社内情報システムの導入・運用 ・社内SNSの開発 ※ 上記は類型であり、各エンジニアが類型を超えた仕事をしないということではない。むしろ、それを超える動きが推奨されている。
  8. 組織図の中のエンジニア Web・アプリエンジニアは各サービスで、インフラ・基盤・情シスは横串で動く体制をとっている 技術基盤チーム 技術部 インフラグループ ・マネージャー ・デザイナー ・サポート ・ディレクター ・エンジニア

    EC事業部 ・マネージャー ・デザイナー ・サポート ・ディレクター ・エンジニア ・マネージャー ・デザイナー ・サポート ・ディレクター ・エンジニア 本社事業部 minne事業部 東京本社 インフラチーム ・マネージャー ・デザイナー ・サポート ・ディレクター ・エンジニア ・マネージャー ・デザイナー ・サポート ・ディレクター ・エンジニア ホスティング事業部 minne事業部 福岡支社 情報システムグループ 経営管理部
  9. エンジニア職位制度 全職種共通の等級の上は、専門職・管理職別等級に別れる 8 執行役員 7 部長・室長 技術責任者 技術面における中長期的な計画の策定・執行を行い、経営と技術専門職との橋渡し役となる。 6 マネージャー

    チーフエンジニア No.1技術者として技術責任者を補佐し、中長期目標達成のために技術的施策を遂行することができる。 5 アドバンスドシニア 部門での担当業務を完遂できており、中長期的な全社の問題や課題に取り組み、解決する。 4 シニアエンジニア 部門での担当業務を独力で完遂できており、部門内の技術問題を対応し、解決する。 管理職 エンジニア専門職 3 アドバイザー 部下を持たず、専門分野での十分な成果を導き出すことに努める。 2 パートナー 定型的な業務を正確かつ責任をもって対処し、担当業務の拡大とレベルの向上をはかる。 1 ルーキー 企業人としての意識・姿勢を確立するとともに、業務を遂行する上での基礎を身につける。
  10. エンジニア評価制度 エンジニア 同僚 技術基盤チーム CTO マネージャー 半期初 半期中 半期末 ・目標設定

    ・評価資料への記入 ・実績の記入 ・目標の更新 ・評価資料へコメント ・半期末面談 ・評価資料の仕上げ ・1次評価 ・2次評価 目標設定面談 目標設定支援 定期面談 情報提供 情報提供 次半期初 ・目標設定 ・評価資料への記入 半期ごとに、全てが公開されたオープンなプロセスの下で、目標 →実績→評価のサイクルを回す
  11. 評価資料の実例 半期ごとの評価および昇格への立候補を、 GitHub Enterpriseのpull requestで行っている ・半期初に目標を設定 ・上長などと相談の上、目標 決定 ・半期中の実績を、随時記入 していく

    ・チームメンバー、他チームの エンジニアたち、上長がコメン ト ・WIPなpull requestとして資 料を作成・提出 ・半年かけて作り上げていく
  12. 多種多様の自社開発サービス いろいろな領域にまたがる Webサービスを、自分たちで考え、自分たちで作る 自社開発サービス ▪ ホスティング事業 ・サーバーやストレージ (データの保管場所)を 提供 ・レンタルサーバーやドメイン等

    ▪ EC支援事業 ・インターネットでものを売りたいひとを支援 ・SUZURIのように、作れるサービスも ▪ コミュニティ事業 ・インターネットで自分の思いを表現したいひ とを支援
  13. そこにいるだけで成長できる環境 優秀なエンジニアに囲まれて、積極的にアウトプットする人はさらに成長する 優秀な エンジニアの存在 コードレビュー on/off両面で活発な コミュニケーション 新しい技術が 好きな人々 新人研修の充実

    エンジニア に関する制度 社内勉強会 社外イベントの奨励 多種多様の 自社開発サービス ひと 組織 キャリア ス キ ル 新卒 第二新卒 期待水準 一人前 シニア アドバンスド 新卒研修 中途入社 メンタリング 継続的な学習支援
  14. Web業界は変化が激しい 「いま何を知っているか・できるか」も大事だが、変化に柔軟に対応できることがより重要 理論 行動 行動 行動 行動 1 2 3

    4 ▪ 市場環境 ・20年続いたデフレからの脱却へ (?) ・東京オリンピックが 2020年に控える 具体例: ・スタートアップに関する市況の活性化、調達金額の大 規模化 ・エンジニアの不足、売り手市場へ ▪ 技術環境 ・パラダイムの変化 ・領域の高度化・複雑化 具体例: ・PC中心のWeb → アプリ中心のモバイル ・インフラが、オンプレミス → クラウド ・モバイル、フロントエンド開発の高度化 ▪ 業界環境 ・既存の業界地図の再編 ・プラットフォーム企業の台頭 具体例: ・ソシャゲ業界の転変、 C2Cの勃興 ・Amazon, Google, Facebookなどがより強く ・何事も変化していくことが前提 ・知識を学習するだけでは対応できない ・「知識の学び方」自体を学習することが必要 ・そのためには、大学で(もちろん就職してからも ) しっかり勉強すること、そして、就職後も継続的に成 長していくことが重要
  15. 新卒エンジニア研修スケジュール(仮) ペパボのエンジニアとして必須の知識スキルを、多様なコンテンツにより身につけよう Web開発 インフラ モバイル サービス開発 先輩たちの講義 前半(7月〜9月) 後半(10月〜12月) 部署でのOJT

    ・開発環境 ・Git ・Ruby ・Rails ・MySQL ・テスト ・PaaS ・Linux ・構成管理 ・インフラ ・アーキテク チャ ・iOS開発 ・Web API Railsチュートリアル + 自社 作成教材 デザイナと組んでの共同開発 ・エンジニアを中心とする先輩たちの、実際の仕事 から得た知見や心構えなどを、 1日1時間程度講義 してもらう ・技術的なことから趣味の話まで、あれこれ ・様々なサービスを定期的に巡回しながら実際の業 務を行う ・配属前に、開発の現場を感じてもらう 1週間
  16. まとめ • これからのペパボの技術の方向性は: ◦ 様々な言語によるmicroservices化 ◦ インフラのクラウド化 ◦ 次世代ホスティングサービスの提供 ◦

    モバイルサービスへのシフト • そのために、(1)エンジニアに関する組織づくり(技術部・CTO)をしたり、 (2)職位制度・評価制度を整えたりしている • 環境の変化に対応し、多種多様の自社サービスを開発していくために、 継続的に成長していける機会を用意している • 楽しいよ!!1