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

VPoEの視点から見た、ヘンリーがサーバーサイドKotlinを使う理由 / Why Se...

Cyan
July 18, 2024

VPoEの視点から見た、ヘンリーがサーバーサイドKotlinを使う理由 / Why Server-side Kotlin 2024

Server-side Kotlin Night 2024/07の発表資料

Cyan

July 18, 2024
Tweet

More Decks by Cyan

Other Decks in Technology

Transcript

  1. Copyright © Henry, Inc. All rights reserved. About Me 張

    沈宇 (ニックネーム: Cyan) X:@shenyu_cyan 株式会社ヘンリー VP of Engineering 音声認識の会社にて自然言語処理関係のR&Dエンジニ アとして務めた後、株式会社ビズリーチへ転職し、複 数のサービス開発のリードやプロジェクト管理、エン ジニア採用などを経験。2021年からヘンリーに入社し VP of Engineeringとして組織作りに従事。
  2. Copyright © Henry, Inc. All rights reserved. アーキテクチャ概要 Frontend BFF

    General API External System Integra- tion API Receipt API Document API Backgrou- nd Job
  3. Copyright © Henry, Inc. All rights reserved. ヘンリーのVPoEとして 製品部門の 価値デリバリー

    と 人的資本 を最も関心しています。 ダブル VPoE ご参考:ヘンリーの組織図におけるVPoEの職能担当範囲(2024年7月現在)
  4. Copyright © Henry, Inc. All rights reserved. • 我々のようなB2B Vertical

    SaaSビジネスは、持続的に顧客へ課題解決の価値 を提供し、価値の対価として利用費をいただく仕組みになっています。 • そのため、ヘンリーのビジネスは、価値をより多く、より素早く提供するこ とで発展します。 価値デリバリー 利用費 理想 現状 課題解決の価値
  5. Copyright © Henry, Inc. All rights reserved. 適切かつ素早い価値デリバリーを実現するためにヘンリーでプログラミング言語 に求めること •

    要求仕様を円滑にプログラムロジックへ落とし込めること • 複数人での開発でも効率が落ちにくいこと • マルチテナント型B2B Vertical SaaSのシステム特性に適合すること 価値デリバリー
  6. Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み • kotlin.collectionsやスコープ関数のよ

    うなシンタックスシュガーが充実して いる標準ライブラリ • Java資産のお陰もあり、データ処理な どの汎用的なユースケースに対応でき るエコシステム 価値デリバリー
  7. Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み • JavaとScalaの使用感と設計の反省を活かし

    た言語特性 ◦ Composition over Inheritanceによっ て誕生した移譲機能は一例 • ノウハウの共有しやすさ ◦ 成功例であるJavaDocとの親和性 価値デリバリー
  8. Copyright © Henry, Inc. All rights reserved. マルチテナント型B2B Vertical SaaSのシステム特性に適合

    すること 背景:ビデオストリームサービスのような高い同時接続数や低遅延を実現する必 要性はあまりなく、代わりにコスト計算やレセプト処理など、一つ一つの処理が 重く、かつ計算ミスは許容しにくいです。 トレードオフ:Heavy load, high precision > High concurrency, low latency 価値デリバリー
  9. Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み • ランタイムになる前にシステム不具合に

    気づきやすいこと ◦ 強い静的型付け ◦ Nullセーフを目指す型システム ◦ 豊富なLinter 価値デリバリー
  10. Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み • VMの利用

    ◦ メモリ管理のシンプル化 ◦ 各種チューニングノウハウの 存在 価値デリバリー
  11. Copyright © Henry, Inc. All rights reserved. 適切かつ素早い価値デリバリーを実現するためにヘンリーでプログラミング言語 に求めること •

    要求仕様を円滑にプログラムロジックへ落とし込めること • 複数人での開発でも効率が落ちにくいこと • マルチテナント型B2B Vertical SaaSのシステム特性に適合すること 価値デリバリー
  12. Copyright © Henry, Inc. All rights reserved. • 人的資本こそがヘンリーの最大の競争優位性であり、今後のビジネス成長を 支える決定的な要素です

    • 人的資本に関して、ISO30414が指標としている11の領域の中で、私が普段 最も重要視しているのは以下の項目です ◦ 採用のメトリックス(採用数・離職率・コスト・チャンネル) ◦ 生産性と従業員スキル向上の取り組み ◦ 組織文化に関する考え方 人的資本
  13. Copyright © Henry, Inc. All rights reserved. • 『The War

    for Talent』に述べられているように、IT業界ではまさに人材争 奪戦が繰り広げられていますので、採用への影響は特に注視しています ◦ 売り手市場という環境 ▪ IT通信分野の求人倍率が6を超えています • エンジニアの求人倍率は10以上になっている模様 • シニアレベルになるほどバランスが崩壊しています ▪ DXの意識改革により、内製思考が広がり、売り手市場がさらに拡大しています ◦ ヘンリーは難易度の高いチャレンジに直面しています ▪ スタートアップのため、知名度で勝つことは難しい ▪ B2B Vertical SaaSへ興味を持ってくれる方がそもそも少ない • 日常で遭遇するユースケースではないため、イメージしにくい 人的資本
  14. Copyright © Henry, Inc. All rights reserved. ヘンリーが人的資本を増やすためにプログラミング言語に求めること • タレントプールの広さ

    ◦ 医療分野をはじめとする、ドメインの深い SaaSやエンタープライズサービスの開発者が慣れている 言語 ◦ 他の言語を使っているエンジニアでもキャッチアップしやすい言語 • ターゲット人材に魅力的 ◦ 言語自体の魅力 ◦ 職場の魅力付け 人的資本
  15. Copyright © Henry, Inc. All rights reserved. タレントプールの広さ • エンプラ分野においてはJavaが非常に強

    く、ドメインの深いSaaS企業における Kotlinの利用事例もそこそこあります • オブジェクト指向プログラミングと関数型 プログラミングの両方に対応しているた め、どのパラダイムから来たエンジニアで も習得しやすいです 人的資本 ご参考:KotlinFest2022とKotlinFest2024ホームページのスクーリンショット
  16. Copyright © Henry, Inc. All rights reserved. ターゲット人材に魅力的 • 学術用途よりも産業界向けのプログラミング言

    語であるため、組織文化に根付いている「ユー ザー課題解決」にフォーカスしやすいです • KotlinユーザーはKotlinへの満足度が高く、 Javaユーザーの中にはKotlinを使ってみたいと 思っている方が多いです • ヘンリーは切磋琢磨の環境を用意しています 人的資本 Stack Overflow 2023 Developer Survey より抜粋
  17. Copyright © Henry, Inc. All rights reserved. ヘンリーが人的資本を増やすためにプログラミング言語に求めること • タレントプールの広さ

    ◦ 医療分野をはじめとする、ドメインの深い SaaSやエンタープライズサービスの開発者が慣れている 言語 ◦ 他の言語を使っているエンジニアでもキャッチアップしやすい言語 • ターゲット人材に魅力的 ◦ 言語自体の魅力 ◦ 職場の魅力付け 人的資本
  18. Copyright © Henry, Inc. All rights reserved. • 将来性のある言語は利用者が増えやすく、エコシステムが充実しやすいた め、正のスパイラルに入ります。逆に、将来性のない言語は負のスパイラル

    に陥りやすく、やがて消滅してしまいます。 • VPoEとして、現在の状況だけでなく、将来を予測して備えることも重要で す。 • 将来性のある言語にとって、2つのキーワードが非常に重要だと考えていま す。 ◦ AI ◦ インタラクティビティ 将来性
  19. Copyright © Henry, Inc. All rights reserved. AI対応のアプローチ • LLMを利用した開発のしやすさ

    ◦ Kotlin ML Pack ◦ JetBrains AI Assistant • LLM関連の開発のしやすさ ◦ langchain4j ◦ PromptKt 将来性
  20. Copyright © Henry, Inc. All rights reserved. 将来性 インタラクティビティ強化のアプローチ •

    パイプラインのリードタイム短縮 ◦ インタラクティブUI:Kotlin Notebook ◦ より強いコンパイラ:K2 ◦ (脱JVM?) • オンラインコラボレーション ◦ IntelliJとの強いインテグレーション :Code With Me ◦ オンラインプラットフォーム:Datalore
  21. Copyright © Henry, Inc. All rights reserved. サーバーサイドKotlinの将来性 • エコシステムはまだ弱く、遅れを取ってい

    る状況 • JetBrainsはその状況を認識し、改善に取り 組み始めています 将来性
  22. Copyright © Henry, Inc. All rights reserved. https://note.com/henry_app 会社ブログやってます We

    are hiring!! https://henry.jp/ Thank you https://dev.henry.jp/ 技術ブログやってます