Slide 1

Slide 1 text

Copyright © Henry, Inc. All rights reserved. 好きになる、はじめての電子カルテ VPoEの視点から見た ヘンリーがサーバーサイド Kotlinを使う理由 張沈宇(Cyan) Server-side Kotlin Night 2024/07

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Copyright © Henry, Inc. All rights reserved. ヘンリーは サーバーサイドKotlinの会社です Server-side Kotlin Night 2024/07

Slide 4

Slide 4 text

Copyright © Henry, Inc. All rights reserved. アーキテクチャ概要 Frontend BFF General API External System Integra- tion API Receipt API Document API Backgrou- nd Job

Slide 5

Slide 5 text

Copyright © Henry, Inc. All rights reserved. なぜ サーバーサイドKotlinの会社ですか Server-side Kotlin Night 2024/07

Slide 6

Slide 6 text

Copyright © Henry, Inc. All rights reserved. ヘンリーのVPoEとして 製品部門の 価値デリバリー と 人的資本 を最も関心しています。 ダブル VPoE ご参考:ヘンリーの組織図におけるVPoEの職能担当範囲(2024年7月現在)

Slide 7

Slide 7 text

Copyright © Henry, Inc. All rights reserved. ● 我々のようなB2B Vertical SaaSビジネスは、持続的に顧客へ課題解決の価値 を提供し、価値の対価として利用費をいただく仕組みになっています。 ● そのため、ヘンリーのビジネスは、価値をより多く、より素早く提供するこ とで発展します。 価値デリバリー 利用費 理想 現状 課題解決の価値

Slide 8

Slide 8 text

Copyright © Henry, Inc. All rights reserved. 適切かつ素早い価値デリバリーを実現するためにヘンリーでプログラミング言語 に求めること ● 要求仕様を円滑にプログラムロジックへ落とし込めること ● 複数人での開発でも効率が落ちにくいこと ● マルチテナント型B2B Vertical SaaSのシステム特性に適合すること 価値デリバリー

Slide 9

Slide 9 text

Copyright © Henry, Inc. All rights reserved. 要求仕様を円滑にプログラムロジックへ落とし込めること 背景:医療ドメインのロジックが複雑になりがちなので、本質的に複雑な仕様に 集中することができ、偶発的な複雑性が回避しやすいプログラミング言語が望ま しいです。 トレードオフ:コーディング体験 > システム性能 価値デリバリー

Slide 10

Slide 10 text

Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み ● kotlin.collectionsやスコープ関数のよ うなシンタックスシュガーが充実して いる標準ライブラリ ● Java資産のお陰もあり、データ処理な どの汎用的なユースケースに対応でき るエコシステム 価値デリバリー

Slide 11

Slide 11 text

Copyright © Henry, Inc. All rights reserved. 複数人での開発でも効率が落ちにくいこと 背景:基幹システムであるため、そのシステム複雑性を考慮すると、中長期的に 高速な価値デリバリーを実現することが必要であり、瞬発力よりも持続力が重要 です。 トレードオフ:コラボレーションしやすさ > プロトタイピングの速さ 価値デリバリー

Slide 12

Slide 12 text

Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み ● JavaとScalaの使用感と設計の反省を活かし た言語特性 ○ Composition over Inheritanceによっ て誕生した移譲機能は一例 ● ノウハウの共有しやすさ ○ 成功例であるJavaDocとの親和性 価値デリバリー

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み ● ランタイムになる前にシステム不具合に 気づきやすいこと ○ 強い静的型付け ○ Nullセーフを目指す型システム ○ 豊富なLinter 価値デリバリー

Slide 15

Slide 15 text

Copyright © Henry, Inc. All rights reserved. Kotlin採用の強み ● VMの利用 ○ メモリ管理のシンプル化 ○ 各種チューニングノウハウの 存在 価値デリバリー

Slide 16

Slide 16 text

Copyright © Henry, Inc. All rights reserved. 適切かつ素早い価値デリバリーを実現するためにヘンリーでプログラミング言語 に求めること ● 要求仕様を円滑にプログラムロジックへ落とし込めること ● 複数人での開発でも効率が落ちにくいこと ● マルチテナント型B2B Vertical SaaSのシステム特性に適合すること 価値デリバリー

Slide 17

Slide 17 text

Copyright © Henry, Inc. All rights reserved. ● 人的資本こそがヘンリーの最大の競争優位性であり、今後のビジネス成長を 支える決定的な要素です ● 人的資本に関して、ISO30414が指標としている11の領域の中で、私が普段 最も重要視しているのは以下の項目です ○ 採用のメトリックス(採用数・離職率・コスト・チャンネル) ○ 生産性と従業員スキル向上の取り組み ○ 組織文化に関する考え方 人的資本

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Copyright © Henry, Inc. All rights reserved. タレントプールの広さ ● エンプラ分野においてはJavaが非常に強 く、ドメインの深いSaaS企業における Kotlinの利用事例もそこそこあります ● オブジェクト指向プログラミングと関数型 プログラミングの両方に対応しているた め、どのパラダイムから来たエンジニアで も習得しやすいです 人的資本 ご参考:KotlinFest2022とKotlinFest2024ホームページのスクーリンショット

Slide 21

Slide 21 text

Copyright © Henry, Inc. All rights reserved. ターゲット人材に魅力的 ● 学術用途よりも産業界向けのプログラミング言 語であるため、組織文化に根付いている「ユー ザー課題解決」にフォーカスしやすいです ● KotlinユーザーはKotlinへの満足度が高く、 Javaユーザーの中にはKotlinを使ってみたいと 思っている方が多いです ● ヘンリーは切磋琢磨の環境を用意しています 人的資本 Stack Overflow 2023 Developer Survey より抜粋

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Copyright © Henry, Inc. All rights reserved. これからも サーバーサイドKotlinの会社ですか Server-side Kotlin Night 2024/07

Slide 24

Slide 24 text

Copyright © Henry, Inc. All rights reserved. ● 将来性のある言語は利用者が増えやすく、エコシステムが充実しやすいた め、正のスパイラルに入ります。逆に、将来性のない言語は負のスパイラル に陥りやすく、やがて消滅してしまいます。 ● VPoEとして、現在の状況だけでなく、将来を予測して備えることも重要で す。 ● 将来性のある言語にとって、2つのキーワードが非常に重要だと考えていま す。 ○ AI ○ インタラクティビティ 将来性

Slide 25

Slide 25 text

Copyright © Henry, Inc. All rights reserved. AI対応のアプローチ ● LLMを利用した開発のしやすさ ○ Kotlin ML Pack ○ JetBrains AI Assistant ● LLM関連の開発のしやすさ ○ langchain4j ○ PromptKt 将来性

Slide 26

Slide 26 text

Copyright © Henry, Inc. All rights reserved. 将来性 インタラクティビティ強化のアプローチ ● パイプラインのリードタイム短縮 ○ インタラクティブUI:Kotlin Notebook ○ より強いコンパイラ:K2 ○ (脱JVM?) ● オンラインコラボレーション ○ IntelliJとの強いインテグレーション :Code With Me ○ オンラインプラットフォーム:Datalore

Slide 27

Slide 27 text

Copyright © Henry, Inc. All rights reserved. サーバーサイドKotlinの将来性 ● エコシステムはまだ弱く、遅れを取ってい る状況 ● JetBrainsはその状況を認識し、改善に取り 組み始めています 将来性

Slide 28

Slide 28 text

Copyright © Henry, Inc. All rights reserved. 価値デリバリーと人的資本の観点から優位性があるため ヘンリーは サーバーサイドKotlinを使用しています 総括

Slide 29

Slide 29 text

Copyright © Henry, Inc. All rights reserved. https://note.com/henry_app 会社ブログやってます We are hiring!! https://henry.jp/ Thank you https://dev.henry.jp/ 技術ブログやってます