HRTech SaaS Engineer MeetUp Vol.1
talentio.comの裏側の改善と今後の展望〜エンジニアリングとプロダクトと〜HRTech SaaS Engineer MeetUp Vol.12018/05/08
View Slide
アジェンダCopyright © Talentio 2● 自己紹介● talentio.comのこれまで● 現状と未来● プロダクト開発● まとめ
Copyright © Talentio 3自己紹介株式会社タレンティオ取締役 CTO 小川 伸一郎• 理学(博士)• 理論物理専攻(超低温物理)• 2003年 Web制作会社• 2008年 株式会社イオレ• 2013年 クックパッド株式会社• 2016年 レジャリーワークス合同会社 起業• 2017年 株式会社タレンティオ CTOGitHub: rustTwitter: conceal_rs
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)
Copyright © Talentio 5自己紹介• jpmobile developer• Rails 2.3.x 対応から開発を担当• Tokyu.rb Co-Founder• 東急沿線(乗入含)に住まう Rubyist のためのコミュニティ• 日本全域をほぼ制覇• 概要:懇親会しかしない勉強会• TokyuRuby会議スタッフ(主に司会)• 飲み会+LT大会• 次回 2018/07/29 に開催予定• https://tokyurubykaigi.github.io/tokyu12/
talentio.comのこれまでCopyright © Talentio 6● タレンティオについて
Copyright © Talentio 7やりたいことこれまでの人事の文化・慣習を変える圧倒的なサービスをテクノロジーを駆使してつくりたい!
どこでも人手不足Copyright © Talentio 8● 人手不足による倒産が増えている○ 働き方改革が求められている
なぜ働き方改革が必要?Copyright © Talentio 9● 労働人口の減少○ 少子高齢化■ 2040年には40%が高齢者● 労働生産性の低さ○ 長時間労働■ 先進国で最下位● そこでHR Tech?
HR Techの概況Copyright © Talentio 10https://hrtechnavi.jp/lab/hrtech-chaosmap/
HR Techでなにが変わる?Copyright © Talentio 11● テクノロジーの力で業務を改善・効率化できる○ 採用管理■ talentio.com○ 労務管理○ 評価、勤怠、etc…● 効率化によって生まれた時間を戦略に活かせる○ 戦略と戦術● 新しい手法、価値を試せる○ リファラル採用○ SNS情報をもとにしたスカウト○ etc…● タレンティオでも新しいものを提供し続けていきたい
現状と未来Copyright © Talentio 12● talentio.comの現状とこれから○ これまでどうだったか○ 現状とこれから● 未来の展望○ これから進むべき道
talentio.comのこれまでCopyright © Talentio 13
talentio.comのこれまでCopyright © Talentio 14● インフラはAWS上に構築○ オンプレからAWSへ移行○ Ansibleによるプロビジョニング○ CloudWatchによる監視● アプリケーションはPHP/Laravel + React/Redux○ SPA(Single-Page-Application)● ソースコードは GitHub で管理○ frontend / backend でリポジトリ分割● JIRA/Confluenceによる情報共有● チャットツールは Slack を採用
talentio.comの現状とこれからCopyright © Talentio 15
インフラの現状とこれからCopyright © Talentio 16● AWSの構成管理に Terraform 導入○ 一部 roadworker / miam など入っているが、Terraform に吸収予定● 全面的にitamaeに移行○ 構造化YAMLがきつかった....● Docker化を進行中○ ECS + hako で構築○ 将来的には Fargate か EKS にしたい■ k8sにしたいので EKS が有力?● ログの集約には fluentd を採用○ Dockerでログ取得するにはほぼ必須
アプリケーションの現状とこれからCopyright © Talentio 17● backendとfrontendのリポジトリを統一○ Docker buildするのに楽なように○ 結局両方変更するので...● 開発環境をDocker化○ Vagrand+Ansible を docker-compose 化
アプリケーションの現状Copyright © Talentio 18● Railsへの移行を決定○ 生産性向上の為○ とは言えPHPでの開発は続ける○ まずは社内ツールから■ 一人で作ってます。仲魔が欲しい...○ 現在10%ぐらい、まだまだ● migrationを廃止○ 差分が欲しい状況がほぼない○ ridgepoleを採用
DevOpsの現状とこれからCopyright © Talentio 19● Prometheus/Grafanaの導入○ 監視がCloudWatchだったのでもうちょっとかっこいいやつが欲しかった○ Grafanaはこうイケてる監視感がある○ Prometheusと言う名前もいいよね!● Prometheusの監視目的でMackerelを導入
DevOpsの現状とこれからCopyright © Talentio 20● CircleCIの導入○ Dockerのbuildから● バッチサーバの導入○ kuroko2を導入● ChatOpsを段階的に導入中○ Slack → ruboty → kuroko2 → hako deploy○ いまはECSへのdeployぐらい■ もっと拡大したい
社内ツールの現状とこれからCopyright © Talentio 21● ZendeskからIntercomへ移行● JIRAを廃止してGitHub issuesへ移行○ 情報の集約化● Confluenceからkibelaへ移行○ ストック情報とフロー情報を扱いたかった■ 自己紹介はブログ■ 議事録はWiki
未来への展望Copyright © Talentio 22● どういう技術選択をしていくのか
インフラでの未来Copyright © Talentio 23● インフラを隠蔽したい○ コマンド一発で再構築できる○ 全てコードで表現されている○ 知らなくてもなんとかなる● 効率よく監視したい○ mizzyさんにお手伝いいただいています!● Docker化を推し進める○ すべてコンテナで動くようにしたい■ そのうち k8s に移行
アプリケーションの未来Copyright © Talentio 24● Rails化○ 生産性の高さとレールの心地よさ■ 個人的嗜好もある○ Laravelは初期設計が重要■ 自由度が高いので、初期設計に失敗しているとかなりつらい○ 初期段階でコード書いていたエンジニアが残っていない○ これから設計し直すのであれば、言語変えてもいいのでは感○ オブジェクト指向ではないつらみ
アプリケーションの未来Copyright © Talentio 25● SPAをやめたい○ 個人的にはあまり好きではない■ フロントエンド側にロジックをもたせる必要がある● 二重管理のつらみ■ 特定部分の大きめの変更が難しい● 全体を見直す必要がある○ いろいろできなくはないが、あえて踏み込む重要性を見いだせない○ サーバサイドエンジニアとフロントエンドエンジニアに分かれてしまう■ 個人的には「サービス開発エンジニア」でありたいし、そうなって欲しい● 必要に応じてReactなりを使う方向に進みたい
エンジニア組織の未来Copyright © Talentio 26● ◯◯エンジニアと言う分け方はあまりしたくない○ 必要なことはユーザさんにサービスを提供すること● 全てサービス開発エンジニアになる○ != フルスタックエンジニア■ 必要があればインフラからフロントまでやる○ よくあるパターンに陥らないようにしたい■ C言語ぐらい→アセンブラぐらい→マシン語ぐらい→論理回路ぐらい→半導体ぐらい→量子力学ぐらい→ゲージ場ぐらい→標準模型ぐらい→???● そのうえでどこをやるのかは人それぞれ○ 得意不得意というより好き嫌い
プロダクト開発方針Copyright © Talentio 27● プロダクト開発方針
プロダクト開発方針Copyright © Talentio 28● ひたすら考える○ 以上
何を考えるべきかCopyright © Talentio 29● 例)機能追加○ ユーザさんからの要望○ 自分たちが必要と思う機能● 「どのような機能を追加すべきか」ではなく○ →「なぜその機能が必要なのか」を考える● 例)運用の手間を削減するのが理由?○ その運用は必要なことなのか?○ 本質的な問題は他にはないのか?○ みんなそれを問題だと思っているのか?
どうやるのかCopyright © Talentio 30● どうやるのか○ 抽象度を極限まで上げる■ 概念化■ 抽象クラスを考えることに近い○ 極端な取捨選択を迫る■ 例)Aを実装するとBを捨てることになるが、その場合でも運用は本質的には破綻しないかどうか○ 「あったら便利な機能」だけでは危険■ 誰にとって便利なのか■ どれぐらい便利になるのか● 逆にいまどれぐらい不便なのか
考えることCopyright © Talentio 31● 考え続けると問題が洗練されていく○ 本質的に解決すべき問題にフォーカスできる● プロダクトについて考えることは詰将棋に似ている○ 全てのパターンを考える■ ユーザさんがどうしたいのか● いつ(When)● どこで(Where)● どのように(How)● なにを(What)● どのような状況で(Status)○ このStatusが最も重要○ 多くのパターンを考えることは疲れる■ それでも考え続ける○ 安易に決めない
どのようなチームでやるかCopyright © Talentio 32● ディレクターとエンジニアのペア○ 職種ではなく、役割■ ディレクターの役割● プロダクトのことを考える人■ エンジニアの役割● どのようにプロダクトに実装するかを考える人○ エンジニアがディレクターの役割でも良い○ 多様な価値観、考え方が重要
どのようなチームでやっているかCopyright © Talentio 33● プロダクトマネージャーがどうやるか考えて決めている○ CTOはそのサポート兼アドバイザープロダクトマネージャーエンジニアエンジニア エンジニアCTO
将来的にどうしたいのかCopyright © Talentio 34● プロジェクトによって様々なチームが編成されている● プロダクトマネージャーは全体の指揮振り○ CTOはサポート兼アドバイザープロダクトマネージャーエンジニアCTOディレクターディレクターエンジニア エンジニア ディレクターディレクターエンジニア
まとめCopyright © Talentio 35● 今日お話したこと○ これまでの talentio.com について○ 技術的な観点でこれまでとこれから、未来像について○ プロダクト開発の方針について● 今日お話できなかったこと○ 具体的なこと、詳細について○ どんなプロダクトにしたいのか● 懇親会でぜひお話しましょう!○ 戦略と戦術についてとか○ 仲魔のなり方とか
まとめCopyright © Talentio 36Ruby/Rails/PHPDevOpsエンジニア絶賛募集中です!!