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

talentio.comの裏側の改善と今後の展望〜エンジニアリングとプロダクトと〜

 talentio.comの裏側の改善と今後の展望〜エンジニアリングとプロダクトと〜

HRTech SaaS Engineer MeetUp Vol.1

Shinichiro OGAWA

May 08, 2018
Tweet

More Decks by Shinichiro OGAWA

Other Decks in Technology

Transcript

  1. talentio.comの裏側の改善と今後の展望
    〜エンジニアリングとプロダクトと〜
    HRTech SaaS Engineer MeetUp Vol.1
    2018/05/08

    View Slide

  2. アジェンダ
    Copyright © Talentio 2
    ● 自己紹介
    ● talentio.comのこれまで
    ● 現状と未来
    ● プロダクト開発
    ● まとめ

    View Slide

  3. Copyright © Talentio 3
    自己紹介
    株式会社タレンティオ
    取締役 CTO 小川 伸一郎
    • 理学(博士)
    • 理論物理専攻(超低温物理)
    • 2003年 Web制作会社
    • 2008年 株式会社イオレ
    • 2013年 クックパッド株式会社
    • 2016年 レジャリーワークス合同会社 起業
    • 2017年 株式会社タレンティオ CTO
    GitHub: rust
    Twitter: conceal_rs

    View Slide

  4. Copyright © Talentio 4
    自己紹介
    • Perl/PHP歴8年ぐらい
    • jcode.plとかの時代
    • PHP 3.x とかの時代から2007年ぐらいまで
    • Flash歴5年くらい
    • Macromediaの時代
    • Ruby歴10年ぐらい
    • Ruby on Rails 1.2.3からの世代
    • Emacs歴26年ぐらい
    • μEmacs(x68k)→xyzzy(Win)→Emacs(Linux/macOS)

    View Slide

  5. Copyright © Talentio 5
    自己紹介
    • jpmobile developer
    • Rails 2.3.x 対応から開発を担当
    • Tokyu.rb Co-Founder
    • 東急沿線(乗入含)に住まう Rubyist のためのコミュニティ
    • 日本全域をほぼ制覇
    • 概要:懇親会しかしない勉強会
    • TokyuRuby会議スタッフ(主に司会)
    • 飲み会+LT大会
    • 次回 2018/07/29 に開催予定
    • https://tokyurubykaigi.github.io/tokyu12/

    View Slide

  6. talentio.comのこれまで
    Copyright © Talentio 6
    ● タレンティオについて

    View Slide

  7. Copyright © Talentio 7
    やりたいこと
    これまでの
    人事の文化・慣習を変える
    圧倒的なサービスを
    テクノロジーを駆使してつくりたい!

    View Slide

  8. どこでも人手不足
    Copyright © Talentio 8
    ● 人手不足による倒産が増えている
    ○ 働き方改革が求められている

    View Slide

  9. なぜ働き方改革が必要?
    Copyright © Talentio 9
    ● 労働人口の減少
    ○ 少子高齢化
    ■ 2040年には40%が高齢者
    ● 労働生産性の低さ
    ○ 長時間労働
    ■ 先進国で最下位
    ● そこでHR Tech?

    View Slide

  10. HR Techの概況
    Copyright © Talentio 10
    https://hrtechnavi.jp/lab/hrtech-chaosmap/

    View Slide

  11. HR Techでなにが変わる?
    Copyright © Talentio 11
    ● テクノロジーの力で業務を改善・効率化できる
    ○ 採用管理
    ■ talentio.com
    ○ 労務管理
    ○ 評価、勤怠、etc…
    ● 効率化によって生まれた時間を戦略に活かせる
    ○ 戦略と戦術
    ● 新しい手法、価値を試せる
    ○ リファラル採用
    ○ SNS情報をもとにしたスカウト
    ○ etc…
    ● タレンティオでも新しいものを提供し続けていきたい

    View Slide

  12. 現状と未来
    Copyright © Talentio 12
    ● talentio.comの現状とこれから
    ○ これまでどうだったか
    ○ 現状とこれから
    ● 未来の展望
    ○ これから進むべき道

    View Slide

  13. talentio.comのこれまで
    Copyright © Talentio 13

    View Slide

  14. talentio.comのこれまで
    Copyright © Talentio 14
    ● インフラはAWS上に構築
    ○ オンプレからAWSへ移行
    ○ Ansibleによるプロビジョニング
    ○ CloudWatchによる監視
    ● アプリケーションはPHP/Laravel + React/Redux
    ○ SPA(Single-Page-Application)
    ● ソースコードは GitHub で管理
    ○ frontend / backend でリポジトリ分割
    ● JIRA/Confluenceによる情報共有
    ● チャットツールは Slack を採用

    View Slide

  15. talentio.comの現状とこれから
    Copyright © Talentio 15

    View Slide

  16. インフラの現状とこれから
    Copyright © Talentio 16
    ● AWSの構成管理に Terraform 導入
    ○ 一部 roadworker / miam など入っているが、
    Terraform に吸収予定
    ● 全面的にitamaeに移行
    ○ 構造化YAMLがきつかった....
    ● Docker化を進行中
    ○ ECS + hako で構築
    ○ 将来的には Fargate か EKS にしたい
    ■ k8sにしたいので EKS が有力?
    ● ログの集約には fluentd を採用
    ○ Dockerでログ取得するにはほぼ必須

    View Slide

  17. アプリケーションの現状とこれから
    Copyright © Talentio 17
    ● backendとfrontendのリポジトリを統一
    ○ Docker buildするのに楽なように
    ○ 結局両方変更するので...
    ● 開発環境をDocker化
    ○ Vagrand+Ansible を docker-compose 化

    View Slide

  18. アプリケーションの現状
    Copyright © Talentio 18
    ● Railsへの移行を決定
    ○ 生産性向上の為
    ○ とは言えPHPでの開発は続ける
    ○ まずは社内ツールから
    ■ 一人で作ってます。仲魔が欲しい...
    ○ 現在10%ぐらい、まだまだ
    ● migrationを廃止
    ○ 差分が欲しい状況がほぼない
    ○ ridgepoleを採用

    View Slide

  19. DevOpsの現状とこれから
    Copyright © Talentio 19
    ● Prometheus/Grafanaの導入
    ○ 監視がCloudWatchだったのでもうちょっとかっこいい
    やつが欲しかった
    ○ Grafanaはこうイケてる監視感がある
    ○ Prometheusと言う名前もいいよね!
    ● Prometheusの監視目的でMackerelを導入

    View Slide

  20. DevOpsの現状とこれから
    Copyright © Talentio 20
    ● CircleCIの導入
    ○ Dockerのbuildから
    ● バッチサーバの導入
    ○ kuroko2を導入
    ● ChatOpsを段階的に導入中
    ○ Slack → ruboty → kuroko2 → hako deploy
    ○ いまはECSへのdeployぐらい
    ■ もっと拡大したい

    View Slide

  21. 社内ツールの現状とこれから
    Copyright © Talentio 21
    ● ZendeskからIntercomへ移行
    ● JIRAを廃止してGitHub issuesへ移行
    ○ 情報の集約化
    ● Confluenceからkibelaへ移行
    ○ ストック情報とフロー情報を扱いたかった
    ■ 自己紹介はブログ
    ■ 議事録はWiki

    View Slide

  22. 未来への展望
    Copyright © Talentio 22
    ● どういう技術選択をしていくのか

    View Slide

  23. インフラでの未来
    Copyright © Talentio 23
    ● インフラを隠蔽したい
    ○ コマンド一発で再構築できる
    ○ 全てコードで表現されている
    ○ 知らなくてもなんとかなる
    ● 効率よく監視したい
    ○ mizzyさんにお手伝いいただいています!
    ● Docker化を推し進める
    ○ すべてコンテナで動くようにしたい
    ■ そのうち k8s に移行

    View Slide

  24. アプリケーションの未来
    Copyright © Talentio 24
    ● Rails化
    ○ 生産性の高さとレールの心地よさ
    ■ 個人的嗜好もある
    ○ Laravelは初期設計が重要
    ■ 自由度が高いので、初期設計に失敗し
    ているとかなりつらい
    ○ 初期段階でコード書いていたエンジニアが
    残っていない
    ○ これから設計し直すのであれば、言語変え
    てもいいのでは感
    ○ オブジェクト指向ではないつらみ

    View Slide

  25. アプリケーションの未来
    Copyright © Talentio 25
    ● SPAをやめたい
    ○ 個人的にはあまり好きではない
    ■ フロントエンド側にロジックをもたせる必要がある
    ● 二重管理のつらみ
    ■ 特定部分の大きめの変更が難しい
    ● 全体を見直す必要がある
    ○ いろいろできなくはないが、あえて踏み込む重要性を
    見いだせない
    ○ サーバサイドエンジニアとフロントエンドエンジニアに
    分かれてしまう
    ■ 個人的には「サービス開発エンジニア」でありたい
    し、そうなって欲しい
    ● 必要に応じてReactなりを使う方向に進みたい

    View Slide

  26. エンジニア組織の未来
    Copyright © Talentio 26
    ● ◯◯エンジニアと言う分け方はあまりしたくない
    ○ 必要なことはユーザさんにサービスを提供すること
    ● 全てサービス開発エンジニアになる
    ○ != フルスタックエンジニア
    ■ 必要があればインフラからフロントまでやる
    ○ よくあるパターンに陥らないようにしたい
    ■ C言語ぐらい→アセンブラぐらい→マシン語ぐらい
    →論理回路ぐらい→半導体ぐらい→量子力学ぐら
    い→ゲージ場ぐらい→標準模型ぐらい→???
    ● そのうえでどこをやるのかは人それぞれ
    ○ 得意不得意というより好き嫌い

    View Slide

  27. プロダクト開発方針
    Copyright © Talentio 27
    ● プロダクト開発方針

    View Slide

  28. プロダクト開発方針
    Copyright © Talentio 28
    ● ひたすら考える
    ○ 以上

    View Slide

  29. 何を考えるべきか
    Copyright © Talentio 29
    ● 例)機能追加
    ○ ユーザさんからの要望
    ○ 自分たちが必要と思う機能
    ● 「どのような機能を追加すべきか」ではなく
    ○ →「なぜその機能が必要なのか」を考える
    ● 例)運用の手間を削減するのが理由?
    ○ その運用は必要なことなのか?
    ○ 本質的な問題は他にはないのか?
    ○ みんなそれを問題だと思っているのか?

    View Slide

  30. どうやるのか
    Copyright © Talentio 30
    ● どうやるのか
    ○ 抽象度を極限まで上げる
    ■ 概念化
    ■ 抽象クラスを考えることに近い
    ○ 極端な取捨選択を迫る
    ■ 例)Aを実装するとBを捨てることになるが、その場
    合でも運用は本質的には破綻しないかどうか
    ○ 「あったら便利な機能」だけでは危険
    ■ 誰にとって便利なのか
    ■ どれぐらい便利になるのか
    ● 逆にいまどれぐらい不便なのか

    View Slide

  31. 考えること
    Copyright © Talentio 31
    ● 考え続けると問題が洗練されていく
    ○ 本質的に解決すべき問題にフォーカスできる
    ● プロダクトについて考えることは詰将棋に似ている
    ○ 全てのパターンを考える
    ■ ユーザさんがどうしたいのか
    ● いつ(When)
    ● どこで(Where)
    ● どのように(How)
    ● なにを(What)
    ● どのような状況で(Status)
    ○ このStatusが最も重要
    ○ 多くのパターンを考えることは疲れる
    ■ それでも考え続ける
    ○ 安易に決めない

    View Slide

  32. どのようなチームでやるか
    Copyright © Talentio 32
    ● ディレクターとエンジニアのペア
    ○ 職種ではなく、役割
    ■ ディレクターの役割
    ● プロダクトのことを考える人
    ■ エンジニアの役割
    ● どのようにプロダクトに実装するかを
    考える人
    ○ エンジニアがディレクターの役割でも良い
    ○ 多様な価値観、考え方が重要

    View Slide

  33. どのようなチームでやっているか
    Copyright © Talentio 33
    ● プロダクトマネージャーがどうやるか考えて決めている
    ○ CTOはそのサポート兼アドバイザー
    プロダクトマネージャー
    エンジニア
    エンジニア エンジニア
    CTO

    View Slide

  34. 将来的にどうしたいのか
    Copyright © Talentio 34
    ● プロジェクトによって様々なチームが編成され
    ている
    ● プロダクトマネージャーは全体の指揮振り
    ○ CTOはサポート兼アドバイザー
    プロダクトマネージャー
    エンジニア
    CTO
    ディレク
    ター
    ディレク
    ター
    エンジニア エンジニア ディレク
    ター
    ディレク
    ター
    エンジニア

    View Slide

  35. まとめ
    Copyright © Talentio 35
    ● 今日お話したこと
    ○ これまでの talentio.com について
    ○ 技術的な観点でこれまでとこれから、未来
    像について
    ○ プロダクト開発の方針について
    ● 今日お話できなかったこと
    ○ 具体的なこと、詳細について
    ○ どんなプロダクトにしたいのか
    ● 懇親会でぜひお話しましょう!
    ○ 戦略と戦術についてとか
    ○ 仲魔のなり方とか

    View Slide

  36. まとめ
    Copyright © Talentio 36
    Ruby/Rails/PHP
    DevOps
    エンジニア絶賛募集中
    です!!

    View Slide