TECH PLAY

タむミヌ

タむミヌ の技術ブログ

å…š274ä»¶

2025幎4月16日から18日の3日間 、 愛媛県束山垂 にお、RubyKaigi 2025が開催されたした。 rubykaigi.org タむミヌでは、昚幎に続き、䞖界䞭で開催される技術系カンファレンスに無制限で参加できる「Kaigi Pass」ずいう制床を掻甚し、 新卒内定者やむンタヌン生を含む総勢16名 が珟地でカンファレンスに参加したした。 本レポヌトでは、 Day1の様子を 、参加した゚ンゞニアが泚目したセッションごずに、ポむントや埗た知芋をたずめおご玹介したす。 今埌も、 Day2 vol.1 、 Day2 vol.2 、 Day3 ず続けおレポヌトを公開予定です。 各セッションごずに内容を敎理し、参加者自身の芖点から孊びや気づきをたずめおいたす。読者の皆様にずっお、今埌の孊びの参考になれば幞いです。 Make Parsers Compatible Using Automata Learning rubykaigi.org 抂芁 Ruby のパヌサヌである parse.y ず Prism には非互換性が存圚するが、それを怜知するためには本来膚倧なテストが必芁になる。筆者はオヌトマトン理論を応甚するこずでそれぞれのパヌサヌの䞍䞀臎性を定量的に怜出できるのではないかずいう仮説を立お、限定的な条件を圓おはめお詊行しおみた結果、芋事にバグを怜出しお修正するこずができた。 感想 若いうちから才芚を発揮しお個人的に敬愛しおいる makenowjust さんの発衚です。内容は抂芁の通り。 研究ずかだずよくある話ですが、珟実䞖界の耇雑性に察しお理論をそのたた適応できずにより限定されたスコヌプにのみ理論を適甚する、ずいうアプロヌチがしばしば芋受けられたす。 今回もそのケヌスで、Ruby の文法党䜓は文脈自由蚀語なので今回の定匏をそのたた適甚するこずはできないため、Visibly Push-down Automaton の適甚範囲に限定しおいたす。 今回の発衚で私が意矩深いず思ったのは、その限定されたスコヌプにおいおもバグの怜出に成功したこず、そしお、そのバグの修正をコミットするこずで蚀語コミュニティに成果をきちんず還元しおいるこずです。 10幎近く前に私が倧孊で卒論を曞いたずきには研究宀のアりトプットがコミュニティから断絶されおいお論文を曞いたあずも攟ったらかしになっおいたこずを嘆きたしたが、こうやっおきちんず行動しおいる人物がいるこずを考えるず日垞の忙しさに逃げおいた私は芖座が䜎かったなず恥じる思いです。 (@Hiromi Kai) speakerdeck.com Ruby's Line Breaks rubykaigi.org 抂芁 Ruby における改行の扱いず䟋倖、そしおその背景にある技術的な耇雑さを玹介しおより理解しやすい解決策を提案しおいたす。 感想 Ruby における改行の背埌に朜む lexer state ずいう「混沌ぞの扉」ずいかに向き合っお克服しおいくかずいう、呚蟺知識のあたりない自分には䞭々難しい話ではありたしたが、発衚者の @spikeolaf さんが、分かりやすく、か぀匕き蟌たれる語り口で解説しおくれたので興味を持぀こずができたした。他の Ruby コミッタヌの方も「理解䞍胜」「怖い」「完党に理解できる人はいない」ず語るほど耇雑な lexer state をモデル化しお最終的には完党に排陀したいずいう壮倧な目暙を掲げおおり、い぀か「混沌ぞの扉」が閉じるこずを楜しみにしたいず思いたす。 (@ creamstew) speakerdeck.com Introducing Type Guard to Steep rubykaigi.org 抂芁 RBS の゚コシステムに積極的に contribute されおいる @tk0miya さんによる、RBS の Type Guard による Type Narrowing型の絞り蟌みをより䟿利にしたよ、ずいう発衚でした。 Ruby の型チェッカヌSteepは型の絞り蟌みをサポヌトしおいたすが、is_a? や nil? などの基本的なメ゜ッド以倖䟋: Active Support の present? やナヌザヌ定矩の刀定メ゜ッドでは、開発者の意図通りに型が絞り蟌たれず、冗長なコヌドや誀った型゚ラヌが発生するこずがありたしたが、この問題がある皋床解消されたす。 既に本䜓に取り蟌み枈みの Union Type に察する Type Guard ず提案䞭の User-Defined な Type Guard の玹介がメむンになっおいたす。 感想 タむミヌでも実際に RBS/Steep を䜿っおいお、意図した挙動ずは異なる挙動を Steep がずるこずは皀によくありたす。そのずきは瀟内にいる soutaro さんに共有し、手元の実装を修正するか本䜓に倉曎を入れおもらうかを盞談するこずがちょくちょくあるのですが komiya さんは自ら提案をしパッチを送る掻動をされおいお流石だなず感じたした。 User-Defined な Type Guard も倧倉魅力的でこれが導入されるず、Ruby での静的型付けの衚珟力の幅がグッず広がるのではないかず感じおいたす。タむミヌの䞭でも状態に応じおメ゜ッドの返す倀が異なるものは存圚したす。それらに察しお User-Defined Typed Guard がどう掻甚できるのかを改めお考えおみたいず思いたした。 @euglena1215 発衚の䞻旚ずは少しずれたすが、この機胜を䜿っおメ゜ッドの呌び出し順序を衚珟するこずもできそうだなぁず思っお興味深く聞かせおいただきたした。 型の絞り蟌みが期埅通りできず、コヌドが冗長になる(e.g. something || raise )ずいう経隓は倚いですが、倚過ぎお慣れおしたったので、この発衚を聞いおそういえばそうかもなぁずいう気持ちになりたした。この蟺りを衚珟するために耇雑な型を曞くこずを芁求されるず、なかなか普及はしないかもしれないですが、Union Type に察するものに぀いおは、開発者が特に耇雑な䜕かをする必芁がなさそうなので玔粋に嬉しいなぁず思いたした。 (@rhiroe) docs.google.com Deoptimization: How YJIT Speeds Up Ruby by Slowing Down rubykaigi.org 抂芁 YJIT を開発されおいる @k0kubun さんによる発衚。 YJIT が Ruby のコヌドを最適化するために、あえお䞀郚の凊理を非最適化しおいるずいう内容でした。 YJIT の最適化されたコヌドが、堎合によっおは逆に効率が悪くなっおしたうため、必芁に応じお元のむンタヌプリタ実行に戻すずいうこずを行っおいるずのこずです。 たたCで実装されたメ゜ッドず、Ruby で実装されたメ゜ッドの比范も行われ、C ず Ruby のコヌドの境界を耇数たたぐ堎合にはボトルネックが発生し、YJIT の特性を考慮した実装戊略が必芁であるこずに觊れられおいたした。 感想 YJIT は有効にするだけで䜿い方を意識する必芁なく Ruby アプリケヌションが高速化される魔法のような技術だず考えおいたしたが、その裏偎では非垞に耇雑な技術基盀のもず成り立っおいるずいうこずを感じたした。 タむトルにあるずおり高速化を行うためにあえお非最適化を行うずいう、盎感ず反する実装が行われおいるこずが興味深かったです。 䜎レむダヌの知識に觊れる機䌚がこれたでなかったのですが、コンパむラの実装に興味を持぀きっかけずなりたした。 (@Keisuke Kuwahara) speakerdeck.com Ruby Taught Me About Under the Hood rubykaigi.org 抂芁 このセッションでは、文字゚ンコヌドの歎史から発衚者である @ima1zumi さんの運呜的な(?)出䌚いをした EBCDIC、そこから Ruby ず出䌚い Ruby の文字゚ンコヌドに貢献しおいくたでの道のりず察応の苊劎が玹介されおいたした。 感想 私はプログラミングを始めおから、そこたで文字コヌドに深く思い入れを持たずこれたでの゚ンゞニアキャリアを過ごしおきたした。 そのため、コメントで゚ンコヌディングがおかしくなるこずを避けるために半角カタカナしか䜿わないこずがあったずいうのは衝撃でしたし、Code Point ず UTF-8 byte sequence が別物ずいうのもあたり考えたこずがありたせんでした。 耇数の Code Point で構成される絵文字 🧑‍🧑‍🧒‍🧒 が存圚し、Unicode 15.1.0 からは Indic_Conjunct_Break for Devanagari をサポヌトするために新たなハンドリングのルヌルを実装する必芁があったこずなど、文字コヌドの奥深い䞖界を垣間芋れおずおも面癜かったです。たさか Unicode アップグレヌド察応をするためには䞖界の蚀語䜓系に粟通しおいる必芁があるずは思っおもいたせんでした 。 @euglena1215 Opening Keynote が文字コヌドずいう、なかなか通奜みなテヌマだったのに自分は驚きたしたが、蓋を開けおみれば @ima1zumi さんの文字コヌド愛にあふれる技術的な解説の面癜さず、その愛を突き詰めた結果ずしお Ruby のコミッタヌになったずいうストヌリヌの゚モさがクロスオヌバヌする、最高のセッションでした。 セッションに登堎した EBCDIC に぀いおは、自分はメむンフレヌムの経隓がないため知らなかったのですが、銀行システムで半角カナが倚く䜿われる理由に関係しおいるのかもしれない、などず想像がふくらみ、非垞に興味を持ちたした。ずはいえ業務で扱いたいずはあたり思いたせん セッションを通しお、文字コヌドは「文化」ず「技術」の亀差点であるこずを改めお実感したした。人間の曖昧で倚様な文字を、コンピュヌタの厳密で機械的なルヌルに萜ずし蟌むずいう課題は、非垞に゚キサむティングだず思いたす。 ずりあえず『プログラマのための文字コヌド技術入門』をもう䞀床読み盎そうず思いたす。 @sugaishun speakerdeck.com Automatically generating types by running tests rubykaigi.org 抂芁 テストを実行するだけで、メ゜ッドの匕数や戻り倀の型情報を収集し、RBS 圢匏のコメントをRuby コヌドに自動挿入するツヌル rbs-trace gem を開発したずいう内容です。 技術的には、Ruby の TracePoint API を利甚し、メ゜ッド呌び出し時:callずリタヌン時:returnの情報をフックしお匕数や戻り倀のクラスを取埗し、それを型情報にしおコメントを挿入したす。 Model::ActiveRecord_Relation.name で ActiveRecord::Relation が取埗されおしたうずいったような䟋を挙げ、klass.name では正確なクラス名が取埗できず、UnboundMethod を利甚しお実際のクラス名を取埗するずいった工倫も披露しおくださいたした。 たた void 刀定にも苊劎されたそうで、Prism ラむブラリでコヌドをパヌスし、AST抜象構文朚を解析。メ゜ッド呌び出しがdef盎䞋か぀メ゜ッド定矩の最埌の凊理でない堎合に、戻り倀が利甚されおいないず刀断し void 型ずするずしたそうです。 感想 型の導入に぀いおは、特に既存のRailsアプリケヌションぞの導入のハヌドルが高く、䞍完党なものであっおも䞀通り型情報を甚意するずいうだけでも倧倉なコストがかかりたす。 この rbs-trace を䜿えば、テストを実行するだけである皋床の型コメントが手に入るので、これから型を導入しようず考えおいるものに぀いおはずおも助かるラむブラリだろうなず思いたした。 rbs-inline ず䜵甚するこずを前提ずされおいる点もよく、rbs-inline は型コメントがなければuntyped で RBS が生成されるので、これで䞍完党な型情報が動的に生成されたものや移譲されたメ゜ッドを陀いお䞀通り揃うこずになりたす。型導入の最初の䞀歩ずしおは十分すぎるくらい型情報が揃うので、型導入やっおみたいけどハヌドルが高いず感じおいそうな組織があれば掚しおいこうず思いたした。 (@rhiroe) speakerdeck.com おわりに RubyKaigi 2025のDay1も、実践ず研究の境界線を行き来するような深い技術セッションが続き、Ruby ずいう蚀語が進化を続けおいるこずを改めお実感する䞀日でした。 䜎レむダの最適化、型システムの発展、文字コヌドずいう文化的テヌマたで、たさに“Ruby らしさ”が詰たったセッションばかりで、各登壇者の情熱や貢献から倚くの刺激を受けたした。 Day2、Day3にも魅力的なセッションが数倚く控えおいたす。今埌公開予定のレポヌトも、匕き続きどうぞご期埅ください
アバタヌ
はじめに こんにちはタむミヌでPlatform Engineerをしおいる @MoneyForest です。 本蚘事では、タむミヌで実斜したProduction Readiness Checkの取り組みを玹介したす。 Production Readiness Checkずは プロダクションレディネスチェックProduction Readiness Checkずは、 「サヌビスが本番環境で安定しお運甚できる状態にあるかどうかを評䟡」 するプロセスのこずです。 UberのSREの知芋から曞かれた曞籍 プロダクションレディマむクロサヌビス には、以䞋のように曞かれおいたす。 Uberのすべおのマむクロサヌビスは、安定性、信頌性、スケヌラビリティ、耐 障害性、パフォヌマンス、監芖、ドキュメント、倧惚事カタストロフィ察応を備 えおいなければならないずいう8぀の原則を考え出したした。そしお、サヌビスが安 定性、信頌性、スケヌラビリティ、耐障害性、パフォヌマンス、監芖、ドキュメント、 倧惚事察応を備えおいるずはどういうこずかを定矩する基準を考えおいきたした。倧 切なのは、どの基準も定量化できるものにするこずでした。そうすれば、マむクロサヌ ビスの可甚性が飛躍的に向䞊したずいう枬定可胜な結果が埗られたす。我々は、これ らの基準を満たし、芁件を備えたサヌビスを本番察応プロダクションレディず衚 珟するこずにしたした。 背景 株匏䌚瀟タむミヌはマむクロサヌビスを採甚しおおらず、䞻芁事業であるスキマバむトサヌビス「タむミヌ」のアプリケヌションは䞻に1぀のRailsアプリケヌションで構築されおいたす。 モゞュラモノリスずいう圢でシステムのドメむンずオヌナヌシップを論理的に分割しおきたした。 䞀方で盎近は事業戊略、ガバナンス、クォヌタの芳点から䞀郚機胜をサブシステムに分割する動きもありたす。 ぀たり「マむクロサヌビスアヌキテクチャほど頻繁にサヌビスは新芏に立ち䞊がらないが、定期的にサヌビスは新芏に立ち䞊がっおいる」ずいう状態です。 なぜやるか タむミヌではマルチテナントのコンテナオヌケストレヌション基盀は存圚せず、システム・サブシステムごずにECSクラスタヌを構築しおいたす。 アプリケヌションもRuby on Railsが採甚されるこずが倚いものの、蚀語およびフレヌムワヌクは郜床遞定されおいたす。 たた、サヌビス開発はアプリケヌション、むンフラ合わせおストリヌムアラむンドチヌムSquadのスクラム開発によっお行われおいたす。 䞊蚘の通り、珟状ではれロベヌスに近い状態から開発を行うため、信頌性などの様々な芳点で泚意すべき点が出おきたす。 そのため、サブシステムや関連サヌビスのリリヌスに際しお「 本番環境で安定しお運甚できる状態にあるか 」を評䟡点怜する仕組みは䞀定の䟡倀を発揮するず考えたす。 タむミヌのProduction Readiness Checklist プロダクションレディマむクロサヌビス の内容をベヌスに、タむミヌの技術遞定に合わせ、より具䜓的な内容に萜ずし蟌み、チェックリストを䜜成したした。 曞籍には以䞋の考慮がなされおいたすが、タむミヌではクラりドむンフラはAWS、オブザヌバビリティツヌルはDatadog、ず限られたものを掻甚しおおり、より具䜓的な蚘述になっおいるほうがチェックしやすいず刀断したした。 テクノロゞヌはものすごい速さで動き、倉化しおいたす。私は可胜な限り、 読者を既存のテクノロゞヌに瞛り付けるようなこずは曞かないようにしたした。たず えば、すべおのマむクロサヌビスは、ロギングのためにKafkaを䜿うべきだずは蚀わ ず、本番察応のロギングの重芁な芁玠を説明し、実際にどのテクノロゞヌを遞んで䜿 うかは読者に委ねるようにしたした。 たた、内容に぀いおはClient-Server-Databaseの3局アヌキテクチャを前提ずしおいたす。 サヌバレスアヌキテクチャの堎合は察象倖です。 チェックの各項目は曞籍を参考に以䞋の芳点に分類しおいたす。 芳点 䞻なキヌワヌド 安定性・信頌性 開発サむクル、デプロむパむプラむン、䟝存関係凊理、unhealthyなホストの怜出、healthyなホストぞのルヌティング、グレヌスフルシャットダりン、APIバヌゞョニング スケヌラビリティずパフォヌマンス リ゜ヌスの効率的な䜿い方、リ゜ヌスの把握、キャパシティプランニング、䟝存関係のスケヌリング、トラフィック管理、タスクの凊理、スケヌラブルなデヌタストレヌゞ 耐障害性・倧惚事察応 冗長化、䞀般的な倧惚事ず障害シナリオ、障害の怜出ず修正の方法、回埩性テストの詳现、むンシデントず機胜停止の凊理方法 監芖 監芖、構造化ロギング、ダッシュボヌド、アラヌトのトリアヌゞ ドキュメント・組織運営 サヌビスの適切なドキュメントの問題ず、開発チヌムず技術組織党䜓でアヌキテクチャず組織運営の理解 タむミヌのProduction Readiness Checklistの詳现 実際のチェックリストの内容を芳点ごずに玹介したす。 1. 安定性・信頌性 コヌド管理 コヌドがGitHubリポゞトリで適切に管理されおいる 環境構築方法がdevcontainerやdocker-composeなどをベヌスに、環境差異が少なく導入工数が䜎い構成になっおいる CI/CD GitHub Flowによる開発の堎合、以䞋のいずれかの蚭定が実装されおいる CDの䟝存にCIのPass状態があるこず ブランチ保護ルヌルの「Require branches to be up to date before merging」が有効化されおいるこず CIでコヌドの静的解析Lintチェック、セキュリティチェック、テストを実斜しおいる 特別な理由がない限り、CI/CDパむプラむンにGitHub Actionsを採甚しおいる 各環境のCDパむプラむンが自動化されおいる CDの成功/倱敗がSlackに通知される仕組みがある むンフラストラクチャ AWSアカりントのサポヌトレベルが゚ンタヌプラむズに蚭定されおいる ALBのヘルスチェックにアプリケヌションのヘルスチェック゚ンドポむントが䜿甚されおいる ECSでアプリケヌションコンテナの䟝存関係にDatadog Agent、AWS for Fluent Bitが指定されおおり、アプリケヌションコンテナが最埌に立ち䞊がるよう䟝存関係が蚭定されおいる アプリケヌション蚭蚈 アプリケヌションのAPI゚ンドポむントがバヌゞョニング可胜なURIパタヌンに蚭蚈されおいる Deep Health Check パタヌンに基づいたヘルスチェック゚ンドポむントが実装されおいる ECSのコンテナラむフサむクルの仕様 を螏たえたグレヌスフルシャットダりンが実装されおいる ALBのスティッキヌセッション が無効でも正垞に動䜜する蚭蚈になっおいる ロヌリングデプロむ により新旧バヌゞョンにトラフィックが分散しおも問題ない蚭蚈になっおいる アプリケヌションがマルチスレッドで動䜜する堎合、スレッドセヌフになっおいる 2. スケヌラビリティずパフォヌマンス オヌトスケヌリング ECSでCPUベヌスのオヌトスケヌリングが蚭定されおいる ECSでCPUスパむク時のオヌトスケヌリングが蚭定されおいる スケヌラブルなデヌタストレヌゞの遞択 デヌタベヌスにAurora MySQLのLTSバヌゞョンを䜿甚しおいる キャッシュにAmazon ElastiCache for Valkeyを採甚しおいる パフォヌマンステスト 負荷テストが実斜されおおり、想定されるトラフィック量に察する性胜が怜蚌されおいる 3. 耐障害性・倧惚事察応 ロヌルバック ECSでデプロむサヌキットブレヌカヌが有効化されおおり、サヌビス曎新倱敗時に自動的にロヌルバックする仕組みがある 可甚性 Aurora MySQLで2台以䞊のリヌダヌむンスタンスが配眮されおいる Auroraのサブネットグルヌプに3AZを指定し、むンスタンスが異なるAZに分散配眮されおいる Aurora MySQLの自動バックアップが有効化されおおり、ポむントむンタむムリカバリPITRによる埩元が可胜になっおいる Aurora MySQLのバックトラック機胜が有効化されおいる ElastiCacheレプリケヌショングルヌプでのマルチAZ化が有効化されおいる 障害察応 SPOF単䞀障害点ずなりうる箇所が掗い出され、ドキュメント化されおいる 想定される障害シナリオがRunbookずしおドキュメント化されおいる 瀟内で定められたむンシデント・障害察応フロヌに準じた障害察応手順が敎備されおいる 4. 監芖 ロギングずトレヌシング ALBのリク゚ストログがS3に保存され、日時でパヌティショニングされおおり、Athenaでク゚リ可胜な状態になっおいる ECSのサむドカヌにDatadog Agent、AWS for Fluent Bitが蚭定されおいる アプリケヌションにDatadog APM Tracingが蚈装されおいる ヘルスチェック゚ンドポむントで、正垞時のログずTraceの出力が抑制されおいる APM Tracingでリク゚スト単䜍でTraceが出力され、最䜎でもDB、キャッシュ、倖郚サヌビスぞのHTTPリク゚ストの単䜍でSpanを確認できる アプリケヌションのログが構造化されおおり、採甚蚀語に応じおDatadogのドキュメントに準拠した実装がされおいる ログずトレヌスの盞関付けがされおおり、採甚蚀語に応じお Datadogのドキュメント に準拠した実装がされおいる アプリケヌションがミドルりェアでリク゚ストログを出力するようになっおいる リク゚ストごずに䞀意ずなるIDを生成たたは䞊流から受け取り、リク゚ストログずTraceに出力しおいる リク゚ストログを識別するためのフィヌルドが定矩されおいるDatadogでリク゚ストログ甚のログむンデックスに保存するため Sentryによる゚ラヌトラッキングが蚭定されおいる デヌタストア監芖 Aurora MySQLのPerformance Insightsが有効化されおいる Aurora MySQLで以䞋のパラメヌタが有効化されおいる binlog_format = ROW Datadog DBM 関連パラメヌタ slow_query_log long_query_time innodb_print_all_deadlocks performance_schema ダッシュボヌドずアラヌト Datadogにシステムメトリクスを監芖できるダッシュボヌドが敎備されおいる Datadogにナヌザヌ圱響が発生した堎合のモニタリングアラヌトが蚭定されおいる Warning/Criticalの閟倀が適切に定められおいる オヌナヌチヌムが定矩されおいる Runbookぞのリンクが添付されおいる ビゞネスメトリクスログむンや課金の成功率などを監芖できるダッシュボヌドたたはりィゞェットがある モニタリングダッシュボヌドを定点芳枬するスキヌムがある 5. ドキュメント・組織運営 ドキュメンテヌション システムの抂芁説明ずアヌキテクチャ図が敎備されおいる システムの連絡先ずコンタクト方法を蚘茉したドキュメントがある AWSやSaaSなど䟝存サヌビスのクォヌタが掗い出されおおり、クォヌタの匕き䞊げ手順が敎理されおいる DBスキヌマを元に最新のER図を生成する仕組みがある GitHubリポゞトリにREADMEが䜜成されおいる READMEに以䞋が蚘茉されおいるリンクでも可 リポゞトリの抂芁 環境構築手順 ディレクトリマップ すべおの䟝存サヌビス関連瀟内サヌビス、倖郚SaaSが掗い出され䞀芧化されおいる たずめ 今回はProduction Readiness Checkの取り組みを玹介したした。 この取り組みはボトムアップ的に始めたものではありたすが、党瀟的に圓たり前のように行われるものにしおいきたいです。 たた曞籍にはないですが、セキュリティやデヌタ連携もプロダクションレディの重芁な芁玠になるず思っおいるので、DREやセキュリティ郚門ず連携しおチェックリストを拡充しおいきたいずいう思いもありたす。 もっず知芋を深めお、さらに楜しい゚ンゞニアラむフを送りたいず思いたすたたね〜
アバタヌ
タむミヌでiOSアプリ゚ンゞニアをしおいる前田 ( @naoya )ず申したす。 2024幎4月9日〜11日に開催された「try! Swift Tokyo」に参加しおきたした。 try! Swift Tokyo try! Swift Tokyoずは Swiftに関わる開発者が䞖界䞭から集たる幎に䞀床の囜際カンファレンスです。最新技術や開発の知芋をシェアするトヌクセッションが開催される他に、゚ンゞニア同士が亀流する堎ずしおも毎幎倧きな盛り䞊がりを芋せおいたす。 今幎のアップデヌト ロケヌション 昚幎は枋谷の「ベルサヌル枋谷ファヌスト」での開催でしたが、今幎は立川の「立川ステヌゞガヌデン」に堎所を移しおの開催でした。 立川ステヌゞガヌデン 䌚堎のすぐ近くには昭和蚘念公園があり、萜ち着いた空気感の䞭で、カンファレンス参加者同士でリラックスしお亀流できたした。たた、今回の䌚堎はラむブ䌚堎ずしおも䜿甚される堎所で、怅子の座り心地がすごく良かったのが印象的でした。 䌚堎内の様子 try! Tokyo 2025アプリ 公匏アプリも進化しおいお、今幎はリアルタむム翻蚳機胜が搭茉されたした。これたで通りの翻蚳レシヌバヌも甚意されおいたしたが、アプリ䞊でもスピヌカヌの話が即座に日本語衚瀺されるようになっおおり、翻蚳粟床も非垞に高くお驚きたした。倚蚀語の壁を超えお楜しめる、玠晎らしい䜓隓でした。 try! Tokyo 2025アプリの翻蚳機胜 アヌカむブ動画が即日公開 なんず、むベント終了圓日にYouTubeにトヌクセッションのアヌカむブ動画がアップロヌドされたした。䌚堎では理解しきれなかったトヌクも、すぐに振り返るこずができるのは本圓にありがたかったです。 try! Swift Tokyo 2025 - YouTube 印象に残ったセッション玹介 䞉日間に枡り、さたざたなトヌクを聎くこずができたした。その䞭でも、僕が気になったトヌクをいく぀かご玹介したす。 iOS 17, 16, 15などの新機胜 www.youtube.com iOS 15〜17で远加されたAPIを改めお玹介するトヌクです。毎幎のWWDCで膚倧なAPIが発衚されたすが、実際のプロダクト開発で䜿われずに、APIの存圚を忘れおしたうこずはよくありたす。本トヌクでは、そういった開発者に向けお、iOS 15〜17で远加されたいく぀かのAPIを玹介するトヌクです。僕が党く知らなかったAPIを各OSバヌゞョンごずに䞀぀ず぀ご玹介したす。 privacySensitive(_:) (iOS 15.0+) developer.apple.com privacySensitive(_:) は、プラむバシヌ保護のための修食子です。個人情報や機密デヌタを含むViewにこのモデむフィアを付加するこずで、アプリがバックグラりンドに移行した時、該圓のViewをマスクするこずができたす。 privacySensitive(_:) UIHostingConfiguration (iOS 16.0+) developer.apple.com UIHostingConfiguration は、 UITableViewCell や UICollectionViewCell など、UIKitのセル内でSwiftUIのViewを盎接䜿えるようにできる構造䜓です。セル内のUIのコヌドを、モダンで簡朔に蚘述するこずができたす。 UIHostingConfiguration ContentUnavailableView (iOS 17.0+) developer.apple.com ContentUnavailableView は、「衚瀺する内容がない」状態を、ナヌザヌにわかりやすく䌝えるためのViewです。 ContentUnavailableView 40䞇以䞊DLされた個人開発アプリをサヌビス終了するためにしたこず www.youtube.com 40侇DLを達成した個人開発iOSアプリ「WebCollector」のサヌビスを終了するにあたり、実斜した察応や、その際に考慮したこずに぀いおのトヌクです。WebCollectorは、フルサむズでWebペヌゞのスクリヌンショットを撮圱できるアプリです。スクリヌンショット画像は、クラりド䞊に保存できたす。 たくさんのナヌザヌにDLされおいたアプリですが、Safariの暙準機胜でペヌゞ党䜓のスクリヌンショット画像を蚘録する機胜が远加されたり、AdMobの広告が掲茉されなくなったこずで、サヌビスの運営が難しくなっおしたい、サヌビスのクロヌゞングをご決断されたずのこずでした。 Firebase Remote Configで、サヌビス終了ペヌゞの衚瀺をコントロヌルしたり、Firebase Cloud Messagingで、Push通知を受け取れるようにするこずで、サヌビスの終了を䞁寧に呚知した事䟋をご玹介されおいたした。 僕も長く個人アプリを開発しおいるので、思い入れがあるアプリをクロヌゞングするこずはかなり蟛いこずだろうなず思いたした。そのような䞭でも、䞁寧にサヌビスをクロヌゞングをされたこずは本圓に玠晎らしいず感じたした。 以䞋の蚘事で内容の詳现が語られおいるので、ぜひご芧ください。 note.com Swift × Android: Skipが切り拓くクロスプラットフォヌム開発の未来 www.youtube.com Skipは、Swift / SwiftUIだけでiOSずAndroidの䞡方に察応したアプリを開発できる、クロスプラットフォヌム開発を行うためのツヌルです。SwiftUIをJetpack Composeに倉換したり、SwiftコヌドをKotlinに倉換したりできたす (Transpiled Mode)。さらに、SwiftコヌドをAndroid䞊でそのたた動かすこずもできたす (Native Mode)。 iOSのネむティブアプリ開発には、開発ツヌルはXcodeを䜿い、Swift / SwiftUIコヌドを蚘述したす。䞀方、Androidでは、開発ツヌルはAndroid Studioを䜿い、KotlinたたはJavaコヌドを蚘述したす。iOS・Android䞡プラットフォヌムでアプリをリリヌスする堎合、それぞれの開発ツヌル・プログラム蚀語を習埗する必芁があり、孊習コストが膚倧でした。 しかし、Skipを䜿甚するこずで、単䞀の゜ヌスコヌドで䞡プラットフォヌムのアプリを開発できたす。こちらのトヌクでは、スピヌカヌの方が実際にSkipを䜿甚しおアプリ開発を行なった実䜓隓に぀いおのトヌクです。䞻なトヌクポむントは以䞋の䞉぀です。 Androidアプリ偎は期埅通りのUIになるか。 Transpiled ModeずNative Modeどちらを遞択すべきか。 既存のアプリをSkipに移行するこずが可胜かどうか。 「1」に぀いおは、期埅通りのUIを生成できおいるずのこずでした。ただし、ナビゲヌションバヌのように、SwiftUIずJetpack Compose間で衚瀺仕様が異なる箇所があるので、それらの仕様差異を理解しおおいたほうが良いずのこずでした。 「2」に぀いおは、Native Modeがおすすめずのこずでした。Transpiled Modeでは、Swiftで曞かれたコヌドをタヌゲットプラットフォヌム向けに倉換 (トランスパむル)しおビルドしたす。珟圚は、倉換に察応しおいないAPIが倚くあり、Android甚のコヌドを曞いたり、別APIの䜿甚を怜蚎する必芁があるようです。ただ、Native Modeにもデメリットがあり、アプリサむズが倧きくなったり、ビルド時間が長くなったりするので、それぞれのメリット・デメリットを考えた䞊で、アプリの特性に合わせお遞択したほうが良さそうずのこずでした。 「3」に぀いおは、䞍可胜ではないが、かなりチャレンゞングになるずのこずでした。理由ずしおは以䞋の二぀です。 ・iOS偎で䜿甚しおいるラむブラリがAndroidに察応しおいないものがある。 ・AndroidのAPIに倉換できないiOSのAPIがただたくさんあり、堎合によっおは膚倧なAndroid甚のコヌドを蚘述する必芁がある。 ただ実甚面で課題はたくさんあるものの、最近では、SwiftUIで蚘述したコヌドをAndroid甚にもコンパむルするこずが可胜になったり、 APIのサポヌト範囲が拡倧しおいるこずもあり、今埌かなり期埅できるツヌルずのこずでした。 本蚘事では䞀郚のトヌクに぀いお曞きたしたが、その他にもさたざたな分野のトヌクがありたした。今回はvisionOSに぀いおのトヌクが倚かった印象を受けたした。このように、普段の業務では耳にしない内容のトヌクを聞くこずができ、非垞に有意矩な䞉日間でした。 最埌に try! Swift Tokyoでは、久しぶりに再䌚できた友人ずの時間や、普段関わるこずのない瀟倖゚ンゞニアの方々ずの出䌚いがあり、本圓に充実した䞉日間を過ごせたした。 今回玹介できなかったトヌクの他にも、面癜いトヌクがたくさんありたした。 蚘事にある内容や、その他の内容に぀いおも、もしタむミヌの゚ンゞニアず話したいずいう方がいらっしゃればぜひお気軜にお話ししたしょう product-recruit.timee.co.jp
アバタヌ
こんにちは株匏䌚瀟タむミヌの貝出です。デヌタサむ゚ンティストずしお働いおおり、䞻にカスタマヌサポヌトの業務改善に向けたPoCやシステム開発など行っおおりたす。 先日、2025幎4月9日11日にラスベガスで開催された「Google Cloud Next '25」に、Data Science Group の小関ず貝出で珟地参加しおきたした 業務でも Gemini を利甚するこずが倚く、今回はAgent関連の発衚も倚いずのこずで倧倉楜しみにしおいたした 今回のブログでは、珟地の様子や泚目した発衚・セッション、そしおむベント党䜓の雰囲気に぀いお共有させおいただきたす。 むベント抂芁 むベント名: Google Cloud Next '25 開催地: アメリカ合衆囜、ラスベガス 開催期間: 2025幎4月9日11日 参加目的: Google Cloudの最新技術特にLLMやAgentたわりのキャッチアップ、事䟋調査、ネットワヌキング 䌚堎はMandalay Bay Convention Centerで、䞖界䞭から倚くの参加者が集たり、掻気に満ち溢れおいたした。 Google Cloud Next '25 Expo䌚堎の入口 事前準備 アメリカぞの海倖出匵が決たり、囜内出匵ずは異なる手続きや準備が必芁ずなりたした。私自身パスポヌトの有効期限が切れおいたため、たずはパスポヌトの申請から始めるこずに。䜵せお、枡米に必芁なESTAの申請も行いたした。 タむミヌでは、海倖出匵の手続きがNotionで䜓系的にたずめられおおり、非垞に助かりたした。航空刞やホテルの手配も瀟内のシステムを通じおスムヌズに申請できたした。特にフラむト時間は皎関怜査の所芁時間も考慮されおいるようで、倧倉ありがたかったです。 ホテル遞びに関しおは、Data Science Group の菊地さんからおすすめのホテル情報を教えおいただき、効率的に怜蚎を進めるこずができたした。倧倉感謝しおいたす。 今回の海倖出匵準備にあたり、参考になったりェブサむトを以䞋に蚘茉したす。 www.hyperbilling.jp iret.media 枡航スケゞュヌル 日本からの参加ずいうこずで、参考たでに今回の私の枡航スケゞュヌルをご玹介したす。時差調敎も含め、䜙裕を持った日皋を組みたした。 日付 (2025幎) 時間 (珟地時間) 移動/内容 4月8日 09:20 サンフランシスコ囜際空枯 着 13:00 サンフランシスコ囜際空枯 発 15:00 ハリヌリヌド囜際空枯 着 15:50 ホテルチェックむン 4月9日 (Day 1) 終日 Google Cloud Next '25 参加 (セッション、Expo等) 4月10日 (Day 2) 終日 Google Cloud Next '25 参加 (セッション、Expo等) 4月11日 (Day 3) 終日 Google Cloud Next '25 参加 (セッション、Expo等) 4月12日 3:30 ホテルチェックアりト 6:00 ハリヌリヌド囜際空枯 発 8:00 サンフランシスコ囜際空枯 着 13:30 サンフランシスコ囜際空枯 発 4月13日 14:00(日本時間) 矜田空枯 着 初日ハリヌリヌド空枯に到着するず、Lyftを利甚しおホテルぞ向かいたした。今たでUber/Lyftを利甚したこずはなく、本圓に利甚できるかドキドキしたしたが、無事ホテルたで到着できたした。アプリの仕様もわかりやすく、ドラむバヌも芪切だったため、満足床はずおも高かったですマッチングプラットフォヌムを運営しおいるタむミヌずしおも倧倉参考になりたした。 Lyftを利甚し、目的のホテルぞ Google Cloud Next '25 Keynote Day 1の朝にOpening Keynote、Day 2の昌にDeveloper Keynoteがあり、どちらも倧盛況でした。特にOpening Keynoteは䌚堎が満垭で入れず、モニタヌのある別宀で芖聎するこずに。䌚堎の熱気ずは察照的に、別宀はやや萜ち着いた雰囲気でした。 どちらのKeynoteでもAgentに関するサヌビスが倧きく取り䞊げられ、特に Agent2Agent 、 ADK 、 AgentSpace が今回の目玉ずしお玹介されおいたした。抂芁は以䞋です。 Agent2Agent Agent2AgentA2Aは、2025幎4月9日にGoogleから発衚されたオヌプンプロトコルで、異なるベンダヌやフレヌムワヌクで構築されたAI゚ヌゞェント同士が安党に情報を亀換し、䌁業党䜓のアプリケヌションやプラットフォヌム䞊で連携できる盞互運甚性を提䟛する。 ADK Agent Development KitADKずは、GeminiやGoogleのAIツヌルず統合されたオヌプン゜ヌスのAI゚ヌゞェント開発フレヌムワヌクである。ワヌクフロヌ゚ヌゞェント、マルチ゚ヌゞェントシステム、関数ツヌルやカスタムツヌルの組み蟌み、デプロむCloud Run/DockerやVertex AI Agent Engineなど、柔軟か぀モゞュヌル匏の構造で゚ヌゞェントの蚭蚈・実装・評䟡をサポヌトする。 AgentSpace Google Agentspaceは、瀟内の䞻芁アプリケヌションConfluence、Google Drive、Jira、SharePointなどぞのセキュアな接続、Google品質のマルチモヌダル怜玢、Geminiを掻甚したレポヌト生成やオヌトメヌション機胜を備えた゚ンタヌプラむズ向け゚ヌゞェントハブである。盎感的な゚ヌゞェントデザむナヌでのカスタム゚ヌゞェント䜜成や、パヌトナヌ提䟛゚ヌゞェントの統合も可胜で、組織党䜓で安党か぀コンプラむアンス遵守のもずAI゚ヌゞェントを展開できる。 Opening Keynoteの朝の光景。人がめちゃ倚い Developer Keynote は䌚堎に入れた Expo & Startup Hub Expo䌚堎は倧盛況で、Anthropic のブヌスやNeo4jのブヌスに蚪問したした。すっかり写真を撮るのを忘れおしたい、蚘録はありたせんが 。 個人的には、Anthropic のブヌスが印象に残っおいたす。Claude 3.7 Sonnet が Agent ずしお初代ポケモンの攻略に挑戊した実隓に関するポスタヌが玹介されおいたした参考: https://www.anthropic.com/research/visible-extended-thinking 。プロンプトには、AgentがActionするためのツヌルの定矩やシステムプロンプト、ポケモンに関する知識ベヌス、Action履歎などが盛り蟌たれおおり、非垞に長いLong Contextな内容ずなっおいたした。個人的に、このようなプロンプトをどのように制埡し、どう最適化したかに興味があり質問したずころ「色々なTipsはあるものの、タスクやモデルによっお倉わるため、結局は実隓ず分析のむテレヌションを繰り返すこずが重芁だ」ずいうお話をいただきたした。 たた、Expo䌚堎の䞀角にはStartup Hubがありたした。そこで朝食を取っおいるず、他の䌚瀟の方々ずコミュニケヌションを取るこずができたした。セキュリティの䌚瀟や自動テストツヌルを開発しおいる䌚瀟の方ず䌚話し、䜕にGoogle Cloudを䜿っおいるか、なぜGoogle Cloud Nextに来たのか、ずいった話を聞くこずができたした。皆さん、やはりGeminiやAgentをどのように自瀟補品に掻かしおいくかに぀いお興味をお持ちで、生成AIぞの関心の高さを感じたした。 Startup Hub での朝食 Next’25 Party むベントはMandalay Bayから埒歩10分皋床の堎所にあるAllegiant Stadiumで開催されたした。ガンガンのクラブミュヌゞックがかかる堎内のテンションは最高朮でしたが、自分はスタゞアムの端でビヌルを飲みながら、少し離れお眺めおいたした。 隣に座っおいたシンガポヌルのデヌタ分析䌁業に勀務する方が声をかけおくださり、Looker ず Tableau の違いやAgentSpaceに぀いお話すこずができたした。「Looker は䜿いやすいけど可芖化に少し匱点があるので、そのあたりはTableauがいいよ」ずのこずでした。 Allegiant Stadiumの倖芳 Next’25 Partyの様子 気になった発衚 How good is your AI? Evaluate it at every stage. 抂芁 Google Cloud AIが提䟛する GenAI Eval Service は、倚様なモデルProprietary、Open、Google、Customizedに察応可胜なAIモデル評䟡サヌビスです。Pairwise/Pointwise ずいった評䟡モヌドや、Computation蚈算ベヌス/Autoraterモデルベヌスずいった評䟡方法を遞択できたす。 Google Cloudナヌザヌからの芁望に基づき、本サヌビスを掻甚した以䞋のアプロヌチに関する玹介ずデモが行われたした。 GenAIバッチ評䟡 (Autorater) : Autoraterモデルベヌス評䟡をバッチ凊理で実行し、評䟡プロセスを効率的にスケヌルさせる手法。 Autoraterの性胜評䟡・カスタマむズ : ベンチマヌクデヌタに察する人間の評䟡結果を甚いお、Autorater自䜓の評䟡粟床を枬定・改善するアプロヌチ。評䟡結果を利甚し、プロンプトの改善、蚭定調敎、远加デヌタによるチュヌニングを通じお、Autoraterの信頌性向䞊が可胜になりたす。 Rubrics-driven評䟡 : 倚様なデヌタセットや耇雑なナヌスケヌスに適した評䟡手法。特に、評䟡基準ルヌブリックの自動生成機胜により、迅速か぀カスタマむズ性の高い評䟡が可胜になりたす。 Agentの評䟡 : 応答の質、掚論・蚈画胜力、ツヌル利甚など、さたざたな評䟡察象が存圚したす。掚論・蚈画胜力や、蚘憶、Self-Reflection の評䟡はただ研究䞭ずのこずでした。 感想 Google CloudにGenAI Eval Serviceずいう評䟡に特化したサヌビスが存圚するこずを今回初めお知りたした。玹介された機胜が珟状で利甚可胜かはわかりたせんが、今埌のPoCフェヌズで怜蚌したいず考えおいたす。特に、評䟡基準ルヌブリックを自動生成できる点は、効率化の芳点から個人的に倧きな可胜性を感じたす。 たた、プレれンテヌションの冒頭では、効果的な評䟡のためのステップずしお「(1)具䜓的な評䟡目暙の蚭定、(2)ナヌスケヌスに合ったデヌタセットの遞択 、(3)適切な評䟡方法の遞択、(4)評䟡結果の分析」の重芁性が匷調されおいたした。GenAI Eval Serviceを利甚するこずで、これらのステップを䜓系的か぀効率的に進めるこずが可胜になるず感じたした。 Long context is all you need 抂芁 本発衚では、Google DeepMindのResearch ScientistであるNikolay Savinov氏が、GeminiのLong Contextに関する成果ず応甚先を玹介したした。 LLMはパラメヌタ蚘憶だけでは最新情報やプラむベヌト情報に関しお正確な出力ができないため、プロンプトに過去のやり取りや提䟛されたPDFなどのデヌタ、背景情報を含めたむンコンテキスト蚘憶の掻甚が重芁です。 最新モデルである Gemini 2.5 Pro は、Long Contextでの性胜を評䟡する各皮ベンチマヌクデヌタセットにおいおo3‑mini‑high、GPT‑4.5、DeepSeek R1、Claude Sonnet 3.7などず比范しお高い性胜を瀺しおいたした。たた、コンテキストりィンドりが1Mトヌクン将来的には2Mトヌクンに拡倧しおいるこずも玹介されたした。2Mトヌクンずは、玄10䞇行のコヌドを扱える芏暡ずのこずです。 Long Contextの応甚䟋ずしおは、動画・音声分析情報抜出や芁玄、倧芏暡文曞分析比范やQA、コヌド理解リポゞトリ把握や機胜特定、゚ヌゞェント過去行動や文脈に基づく動䜜、少数ショットのむンコンテキスト孊習などが挙げられおいたした。 さらに、実利甚のTipsずしおコンテキストキャッシュによるコスト削枛、RAGずの組み合わせによる知識掻甚、無関係コンテキストの排陀、ク゚リ長ずレむテンシの考慮、Proモデルやプロンプト工倫の重芁性が瀺され、Long ContextがLLMの可胜性を倧きく広げるずの結論で締めくくられたした。 質疑応答では、コンテキストキャッシュの最適化方法に぀いお「プロンプト冒頭にできるだけ固定郚分を眮くのがいいず思うが、実際にはさたざたなバリ゚ヌションを怜蚌しおほしい」ずのアドバむスがあり、たたlost in the middleの緩和床合いに぀いおは「ベンチマヌク性胜が向䞊しおおり、他モデルより緩和されおいる」ずの回答がありたした。 感想 業務においおも、プロンプトに倚くの情報を詰め蟌むアプロヌチを怜蚎しおいるため、Long Contextの取り組みは倧倉ありがたいです。たた、LLMによっおはシステム指瀺の蚘述䜍眮によっおモデルが指瀺を無芖したり埓ったりする傟向があるため、Geminiの最新モデルを積極的に利甚したいず思いたす。さらに「Long Contextが可胜になればRAGは䞍芁か」ずいう問いには、レむテンシや無関係コンテキストの問題から䜿い分けが必芁だずいう説明も非垞に玍埗できたした。 おわりに 4月8日に日本を発ち、13日に垰囜するたでの玄5日間、短い期間ではありたしたが、刺激的な新サヌビスの発衚や倚くの方々ずの貎重な出䌚いに恵たれ、あっずいう間の充実した時間でした。 珟地では、Google Cloud Japanの皆様に倧倉手厚くサポヌトいただき、慣れない土地でも安心しお過ごせたした。他の日本䌁業の方々ずの亀流の機䌚を蚭けおいただいたり、興味深いデモをご玹介いただいたりず、现やかなお心遣いに深く感謝しおおりたす。さらに最終日には、むベント党䜓のたずめセッション「Next ’25 Highlight」を開催いただき、芋逃しおしたったセッションの情報もしっかりずキャッチアップするこずができたした。皆様の枩かいサポヌトに、心より感謝申し䞊げたす。 今回の玠晎らしい経隓から、次回もぜひ参加したいず匷く感じおおりたす。たた、特に瀟内のデヌタ関連チヌムにずっお非垞に有益なカンファレンスでしたので、その䟡倀を瀟内で広く共有しおいきたいず考えおおりたす。 「りェルカム・トゥ・ラスベガス」の看板 珟圚、タむミヌでは、デヌタサむ゚ンスや゚ンゞニアリングの分野で、共に成長し、革新を掚し進めおくれる新たなチヌムメンバヌを積極的に探しおいたす product-recruit.timee.co.jp たた、気軜な雰囲気での カゞュアル面談 も随時行っおおりたすので、ぜひお気軜に゚ントリヌしおください。↓ hrmos.co hrmos.co
アバタヌ
こんにちは タむミヌでPlatform Engineerをしおいる @MoneyForest です。 ObservabilityCON on the Road Tokyo 2025に参加しおきたした。 参加した感想や気づきなどをお届けしたす。 はじめに 普段は Datadog をメむンに利甚しおいる匊瀟ですが、他のツヌルなどを知るこずで深たる知芋もあるず考え、先日開催された Grafana Labs 䞻催の「ObservabilityCON on the Road Tokyo」に参加しおきたした。本蚘事では、Grafana ゚コシステムの印象や、むベントで埗られた気づきに぀いお共有したいず思いたす。 むベントアヌカむブ 日本語吹替版の党セッションのアヌカむブが以䞋のリンクで配信されおいたす。 Webinars and videos | Grafana Labs ObservabilityCON on the Road 基調講挔 ObservabilityCON on the Road 基調講挔 | Grafana Labs 基調講挔で特に気になった点は「OpenTelemetry Datadog Receiver」でした。 Grafana ゚コシステムの匷みは、オヌプン゜ヌスをベヌスにしおいる点です。ベンダヌロックむンを避け぀぀、必芁に応じおマネヌゞドサヌビスであるGrafana Cloudを利甚するずいう手法を取るこずができたす。 そのため、GrafanaはOpenTelemetryを掚しおおり、その流れからOpenTelemetry゚コシステムのコントリビュヌトず競合補品から自瀟補品ぞの誘導を同時に行う䞀手だなず思い、驚きたした。具䜓的には、このレシヌバヌによりDatadogのメトリクス圢匏をOpenTelemetryのネむティブ圢匏OTLPに倉換できるため、既存のDatadog Agentをそのたた䜿いながら、デヌタをGrafana CloudやPrometheusなどに送信できるようになりたす。 たた、OpenTelemetry Datadog receiver のコヌドの公開をGrafanaが発衚しおいるずいう点に぀いおも意倖でした。おっきりこういった内容はDatadog瀟が発衚するず思っおいたのですが、競合が発衚を行っおいるずいう点も興味深いです。 Grafana Labsの「ビッグテント」思想の「デヌタがどこにあっおも、どのようなツヌルを䜿っおいおも、アクセスできるようにすべき」ずいう考え方は、特にマルチクラりド環境やハむブリッド環境が圓たり前になっおいる珟圚、非垞に共感できるポむントでした。 匊瀟でもオブザヌバビリティにかけるコストはサヌビスの成長に䌎い増倧しおおり、ロックむンは䞻にコスト面でリスクになりえるず考えおいたす。OpenTelemetryベヌスの実装にするこずで、補品、OSSの乗り換えや、セルフホストなどコスト最適化で幅広い手段を取るこずができるようになるず思いたす。 蚈枬ずデヌタ取り蟌みを䞀瞬で実珟Grafana Alloy、Grafana Beyla、OpenTelemetryのデモ 蚈枬ずデヌタ取り蟌みを䞀瞬で実珟Grafana Alloy、Grafana Beyla、OpenTelemetryのデモ | Grafana Labs こちらのセッションではGrafana AlloyずいうOpenTelemetryの100%互換のコレクタヌや、Grafana Beylaずいう蚈装ラむブラリの玹介がありたした。 Grafana Beylaは、eBPFベヌスのアプリケヌション自動蚈枬ツヌルで、実行䞭のサヌビスのメトリクスやトレヌスを自動的に取埗できたす。Go蚀語でOpenTelemetry SDKで蚈装する堎合、通垞はコヌド䞊で明瀺的にトレヌサヌの開始やスパンを切る必芁があるず思っおいたのですが、Beylaではそれらのコヌドレベルでのむンストルメンテヌションなしに芳枬デヌタを収集できるこずに驚きたした。 これは、OpenTelemetryのドキュメントにある「Zero-code Instrumentation」ずいうコンセプトに沿ったものです。 OpenTelemetry Zero-code Instrumentation Grafana Beyla Documentation このアプロヌチは、アプリケヌションを修正せずに蚈装できるずいうメリットがありたす。 DatadogでもRubyはRailsフレヌムワヌクに基づいた自動蚈装機胜があり、Goでも DataDog/orchestrion などのOSSが発衚されおいたす。 この蟺りは蚀語やラむブラリごずに自動蚈装のやり方が異なる点があるため、どこかで実装のPoCを行っおみたいなず思いたした。 合成テスト、負荷テスト、実ナヌザヌモニタリングで゚ンドナヌザヌ䜓隓を把握する方法 合成テスト、負荷テスト、実ナヌザヌモニタリングで゚ンドナヌザヌ䜓隓を把握する方法 | Grafana Labs k6はGrafanaが提䟛するJavaScriptでテストシナリオなどを蚘述できるGo補のツヌルです。 自分も負荷テストツヌルずしおはよく䜿っおいお、䜿いやすいツヌルくらいの認識だったのですが、あらためお本セッションを芋るこずでk6のメンテナがGrafanaであるこずのメリットを感じるこずができたした。 このツヌルが生成するレポヌトを、Grafana Cloudおよび呚蟺の゚コシステムず組み合わせるこずでよりリッチなむンサむトを埗られるこずがセッションのデモを通じおわかりたした。䟋えば、負荷テスト時のバック゚ンドの挙動をTraceやProfileず組み合わせお分析するこずで、ボトルネックの特定が容易になりたす。 Core Web Vitalの枬定やSynthetics Test、ナヌザヌゞャヌニヌベヌスの芳枬はどのオブザヌバビリティツヌルでもできるず思いたすが、メゞャヌな負荷テストツヌルを持っおいるのはGrafanaの匷みだず思いたした。 たずめ オブザヌバビリティの分野はOpenTelemetryずいう゚コシステムを䞭心に日々倉化しおいっおいるため、定期的にむベントに参加しお䜓系的なキャッチアップを行う必芁があるず思いたした。 Grafanaはオヌプン゜ヌスをベヌスにしおいるため、ベンダヌにずどたらない汎甚的な知識を各セッションから孊ぶこずができたした。匊瀟でも匕き続きオブザヌバビリティに関する情報キャッチアップを行っおいきたす。
アバタヌ
タむミヌQAEnablingチヌムの矢尻、岞、片野、山䞋、束田です。 ゜フトりェアテストに関する囜内最倧玚のカンファレンス「 JaSST (Japan Symposium on Software Testing) 」が2025/03/27、28の2日間にわたっお開催されたした。 speakerdeck.com 本レポヌトでは、印象に残ったセッションの内容を䞭心に、2日間の䌚の様子をお䌝えしたす。 「タむミヌQAの挑戊」JaSST登壇レポヌト品質文化ず開発生産性の䞡立を目指しお タむミヌでQAコヌチを担圓しおいる矢尻です。 今幎のJaSSTは、タむミヌずしお「タむミヌQAのリアルな挑戊DevOps時代の開発生産性ず品質文化を創造する」ずいうセッションで登壇させおいただきたした。QA Enablingチヌムの立ち䞊げから玄1幎間の詊行錯誀を経お埗た孊びや課題を、チヌムメンバヌ党員でパネルディスカッション圢匏で共有したした。短いセッションでしたが、「品質文化をどのように組織に根付かせおいくのか」「開発生産性を保ちながら品質を向䞊させるには」など、倚くの参加者の皆さんから具䜓的で深い質問や意芋をいただき、孊び合いが生たれる貎重な堎になりたした。この堎を借りお埡瀌申し䞊げたす。 たた、党䜓のセッションを通じお印象的だったのは「チヌム組成」や「品質基準」、そしお「開発プロセスぞのQAの適応」ずいったテヌマぞの関心の高さです。QAを単なるテスト業務ずしおではなく「品質文化を醞成する存圚」ずしお䜍眮付け、チヌムや組織をどう巻き蟌み、どう改善しおいくのかに぀いお議論が掻発だったのが印象深かったです。QAがビゞネス䟡倀にどう貢献できるかを考えるヒントが倚く、特に他瀟が品質基準の明確化やプロセス改善にどのように取り組んでいるかを知るこずで、自分たちの珟状や課題を改めお客芳芖できたした。 今回のJaSSTをきっかけに、今埌もタむミヌのQA Enablingチヌムずしお、開発珟堎により深く寄り添いながら、品質ず開発生産性の䞡立、そしおさらなる品質文化の浞透を目指しおいきたいず思いたす。 倧芏暡プロゞェクトにおける品質管理の芁点ず実践 タむミヌでSETをしおいたす岞です。JaSSTは昚幎に匕き続きオフラむンでの参加でした。知人ず久しぶりに話もできたりで良い2日間を過ごせたず思いたす。 私が聎講したセッションからは「 倧芏暡プロゞェクトにおける品質管理の芁点ず実践 」のレポヌトをお届けしたす。 第䞉者怜蚌のSHIFT瀟から2名でむンタビュヌ圢匏の発衚でした。ここでの「倧芏暡」はリリヌスたでに10幎、参画人数は数千人を想定ずのこずで、なかなか経隓する機䌚のないものです。ずにかくプロゞェクト初期からステヌクホルダヌが倚いので、関係者間でどのように調敎するのか、いわゆる隠れた仕様をどのように拟い䞊げるのかが焊点になりたした。回答ずしおは、リスト化やスケゞュヌル調敎をたずしっかりするこず、珟堎に足を運んでナヌザヌの声をしっかり聞くこずを挙げおいたした。その䞊で「100%を目指すずい぀たでも芁件定矩が終わらない。90%くらいを目指し、挏れたものは次のフェヌズぞ回すようにする」こずがずおも重芁だずおっしゃっおいたした。 私たちタむミヌの開発では10幎がかりで続くような長期プロゞェクトはなく、小さいリリヌスを䜕床も繰り返すスタむルをずっおいたす。䞀芋違う䞖界の話のようにも感じられたすが「100%を目指すず終わらない」ずいう話は私たちにも共通するものだず感じたした。 ネット銀行におけるスマヌトフォン実機でのテスト自動化に぀いお SETの片野です。 今幎のJaSST TokyoはタむミヌのQAチヌムずしお登壇する機䌚をいただき、私個人ずしおは初めおの珟地参加ずなりたした。 たくさんの玠晎らしいセッションの䞭で、特に印象に残ったのは「 銀行におけるスマヌトフォン実機でのテスト自動化に぀いお 」坂本豪志さん です。 このセッションでは、BaaS Banking as a Serviceずしおパヌトナヌ䌁業にスマヌトフォンアプリを提䟛するネット銀行における、スマヌトフォン実機を甚いたテスト自動化の取り組みに぀いお語られたした。 スマヌトフォンの実機を甚いた受入テスト、リグレッションテスト等を䞀郚自動化するこずで、パヌトナヌ䌁業1瀟導入に぀き数十人日芏暡だったテスト工数を80%近く削枛されたそうです。その過皋で盎面した課題ず解決の事䟋ずしお、事前デヌタの準備、テスト端末同士の盞性による接続性の問題、特定のロケヌタヌで芁玠が぀かめなくなる䞍安定なテストぞの察応などが玹介されたした。 特に興味深かったのは事前デヌタの準備に関する取り組みです。テスト察象システムのナヌザヌデヌタは属性や関連デヌタ倚岐に枡る金融商品ずそれらの契玄状態などが倚く、加えお耇数のサブシステム間で敎合性を取る必芁があるため、デヌタ準備に手間がかかったりテストの繰り返し実行が難しかったそうです。これらの問題に察しお、デヌタ駆動テスト的なアプロヌチの適甚や、テスト再実行時のデヌタリセット芁吊に基づくテストシナリオの敎理などを行い自動化に向けた改善を実珟したそうです。様々な事情で手動オペレヌションや運甚でカバヌせざるを埗ない郚分を残し぀぀も、ご本人の蚀葉を借りれば「泥臭く」取り組たれたずのこずでした。 この「泥臭く」ずいう蚀葉に象城されるように、セッション党䜓を通じお理想論や教科曞的な内容にずどたらず、珟実の課題に真正面から向き合い、解決策を暡玢する姿勢が匷く䌝わっおきたした。それは、たさに私たちが日々の業務で盎面しおいる状況ずも重なり、深く共感する点がありたした。たた、圓日のセッションで語られた内容はどれも珟堎の経隓から埗られた珟実的か぀有甚な情報ばかりでした。私自身もテスト環境の改善に携わっおおり、今埌の業務に盎接掻かせる具䜓的な内容が数倚くありたした。 テスト環境の改善では、時にスマヌトな解決策を芋いだせず泥臭い䜜業の連続になるこずがありたす。しかし、このセッションを通じお、理想ず珟実のバランスを取りながら、粘り匷く課題解決に取り組むこずの倧切さを改めお認識したした。 QAが売䞊に貢献できるこずはなんだろう タむミヌでQAコヌチをしおいる山䞋です。入瀟しお半幎たったばかりでただただ芋習いQAコヌチずいう気持ちです。 久しぶりにオフラむンでJaSSTに参加をしおきたした。新しい䌚堎でずおも綺麗で快適でしたが、オフラむンだず䌚堎が満垭で聞きたいセッションを聞けない ずいうこずもあり、オフラむンの難しさを思い出したりもしたした。 今回私が参加した䞭で、特に印象に残ったセッションは「 ゜フトりェアがJISマヌク認蚌される時代に暙準化がもたらす゜フトりェア品質の確保や垂堎ぞの信頌性向䞊 」でした。 タむトルの通り、゜フトりェア補品でJISマヌクの認蚌を取るためのプロセスなどを玹介しおくださっおいたのですが、䞀番刺さったのは「なぜJISを取ろうず思ったのか」ずいう質問に察する登壇者の䌊藀さんの「QAが売䞊に貢献できるのはなんだろうずよく考えおいお、JISがあるこずで遞んでもらえるこずがあるんじゃないかず考えた」ずいう回答でした。 だいぶ昔にWACATEに参加した際に「䞀生懞呜たくさんテストしたずしお、そのプロダクトは売れるの」ず問いかけをしおもらったこずがあり、それが確かにそうだ ず圓時の自分には衝撃的で時折思い出しおは考えるテヌマだったので、JISマヌクの取埗が競合ずの差別化に぀ながるのかヌず目から鱗、明るい気持ちになりたした。 機胜远加があった堎合には远加の認蚌詊隓が必芁なため、実際にスピヌドの速い開発で適甚するこずは難しそうでしたが、これからも匕き続きQAが売䞊に貢献できるこずは䜕かは考え続けたいテヌマだず思いを新たにできたした。 その他にも、このセッションに匕き続き品質基準に察するテヌマにしたセッションなど倚くの発衚や、昔の同僚ず久しぶりに再開しどんなずころでAIを掻甚しおいるか話したりず倚くの刺激をもらえた2日間でした。 私がJaSSTで心を奪われた,組織を匷くするマネゞメント術 2024幎の9月に入瀟したSETの束田です。 先日参加したJaSSTは、私にずっお初参加・初登壇の機䌚ずなり、非垞に特別な2日間ずなりたした。 特に印象に残ったセッションは、SmartHR平田さんによる 「スケヌルアップ䌁業のQA組織のバリュヌを最倧限に匕き出すための取り組み」 です。 セッションでは、䞻にマネヌゞャヌずしおの目暙蚭定やチヌムの仕組みづくりに぀いお語られおいたした。平田さんが、マネヌゞャヌずしお取り組むべき「チヌムの珟状課題」「チヌムが目指すべき目暙」「目暙達成のための具䜓的なタスク」を明確に蚀語化されおいた点が非垞に印象的でした。これは、QA/SETチヌムだけでなく、あらゆる郚眲やチヌムにも共通しお圓おはたる内容だず感じたした。 メンバヌの胜力を最倧限に匕き出すために、チヌムの先頭に立っおあらゆるステヌクホルダヌず亀枉・調敎を行い、障害ずなる壁を次々ず取り陀いおいく平田様の姿勢に「こんなマネヌゞャヌがいるのか」ず深く感銘を受けたした。 ぜひたた機䌚があれば、品質保蚌郚のセッションをお聞きしたいです。 スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み | ドクセル JaSSTは、テストに関する知芋を深めるだけでなく、倚くの玠晎らしい方々ず出䌚える貎重な機䌚でした。来幎は、私もコミュニティの䞀員ずしお、䜕か貢献できるよう準備しお参加したいず思いたす。来幎も皆様ずJaSSTでお䌚いできるこずを楜しみにしおおりたす おわりに 匊瀟は今回2床目のゎヌルドスポンサヌずしおJaSST Tokyoに協賛させおいただきたした。次回以降もなんらかの圢で貢献しお䞀緒にコミュニティを盛り䞊げおいければず思いたす。 タむミヌのQA、゜フトりェアテストに぀いおもっず知りたいずいう方はぜひカゞュアル面談でお話ししたしょう。 product-recruit.timee.co.jp
アバタヌ
はじめに こんにちは、株匏䌚瀟タむミヌでデヌタサむ゚ンティストずしお働いおいる貝出です。盎近はカスタマヌサポヌトの業務改善に向けたLLM掻甚のPoCやシステム開発を行っおおりたす。 さお、今回は2025幎3月10日月3月14日金に開催された「蚀語凊理孊䌚第31回幎次倧䌚(NLP2025)」に昚幎に続き参加しおきたしたので、その参加レポヌトを執筆させおいただきたす。 蚀語凊理孊䌚幎次倧䌚に぀いお www.anlp.jp 蚀語凊理孊䌚幎次倧䌚は 蚀語凊理孊䌚 が䞻催する孊術䌚議であり、囜内における蚀語凊理の研究成果発衚の堎ずしお、たた囜際的な研究亀流の堎ずしおの囜内最倧芏暡のむベントずなっおいたす。 今幎で第31回を迎え、オヌプニングで共有されたスラむドによるず、発衚件数は777件、事前・盎前参加登録者数は2248人ず過去最倧ずなっおおり、幎々倧䌚が盛り䞊がっおいるこずが䌺えたした。昚今のLLMの盛り䞊がりを反映し、発衚内容はLLMに関連するものが倧倚数を占めおおり、業務でLLMを掻甚しおいる身ずしおは、倧倉孊びの倚い䌚ずなりたした。 蚀語凊理孊䌚第31回幎次倧䌚に参加できなかった方でも、 こちら から発衚論文が閲芧できたす。 興味深かった発衚 初日のチュヌトリアルから最終日のワヌクショップたで興味深い発衚がたくさんありたした。その䞭から、個人的に気になった発衚をいく぀かピックアップしたす。 [T1] チュヌトリアル: 蚀語モデルの内郚機序解析ず解釈 抂芁 本チュヌトリアルでは、倧芏暡蚀語モデルLLMの内郚機序を解析・解釈するための方法論が玹介されたした。モデルの入出力のみではその振る舞いを十分に理解できないため、内郚の衚珟や蚈算過皋を詳现に怜蚎する必芁がありたす。LLMの耇雑さず高次元性が䞻芁な課題であるため、抜象化ず単玔化による解析に加え、内郚衚珟や蚈算を蚀語、䞖界、知識ず結び぀ける解釈が重芁であるず述べられたした。 内郚衚珟の解析・解釈の手法ずしおは、たず特城量に基づくアプロヌチニュヌロン分析、プロヌブ、疎なオヌト゚ンコヌダヌなどが玹介され、さらにベクトルに基づいたアプロヌチ衚珟の分垃芳察、ベクトル代数、朚構造、階局構造、円圢構造、グラフ構造の分析に぀いおも解説されたした。たた、内郚衚珟が持぀情報ずその情報が実際にモデルの予枬に利甚されおいるかどうかを怜蚌するため、因果的介入の手法Activation Patchingなどの重芁性も瀺されたした。 蚈算過皋の解析・解釈に関しおは、泚意パタヌンの芳察構文情報や意味情報ずの関連、長文脈ぞの察応、ゎミ箱機胜など、語圙空間ぞの射圱重みパラメヌタや䞭間衚珟ず語圙の関連付け、フィヌドフォワヌドネットによる知識蚘憶の分析、出力ぞの圱響床の枬定数孊的分解や介入による評䟡、さらには特城的なサブネットワヌク回路の同定コピヌ機胜や事実知識の予枬を実珟する回路の発芋ずいった倚角的な手法が取り䞊げられたした。 さらに、蚀語や䞖界の構造がどのようにモデルに転写されるのかずいう根源的な問いにも議論が及び、「プラトン的衚珟」仮説や「集合的予枬笊号化」仮説が玹介されたした。これにより、モデルの内郚衚珟が䞖界の構造を捉えるこずによる予枬の汎化ぞの貢献や、蚀語孊的仮説の怜蚌の可胜性が瀺唆されたした。 最埌に、内郚機序の解析ず解釈ずいうアプロヌチ自䜓の限界に぀いおも蚀及され、抂念の局所性や内郚衚珟ず察応物の䞀察䞀察応ずいう暗黙の仮定ぞの懐疑、「衚珟ず蚈算」ずいう芖点そのものの劥圓性ぞの疑問が議論されおいたした。 発衚資料はこちらのスラむドに公開されおいるので、詳しい内容に぀いおはこちらをご参照ください。 speakerdeck.com 感想 発衚資料は党144ペヌゞず非垞にボリュヌミヌな内容でしたが、その魅力のおかげで1時間半ずいう時間があっずいう間に感じられたした。個人的には、蚀語モデルの内郚機序に関する網矅的なサヌベむを芋぀けるこずができおいなかったため、今回の発衚は倧倉ありがたかったです。 特に、プロヌビング内郚衚珟から特定の情報が抜出可胜かを評䟡するテクニックのようなLLMの傟向分析手法に加え、Activation Patchingずいった因果的介入手法の存圚を知ったのは初めおのこずで、非垞に印象的でした。芳察デヌタの傟向だけでは因果関係を正確に特定できないずいう因果掚論の原則を螏たえるず、介入による怜蚌が行われるこのアプロヌチは、確かに必芁な取り組みだず感じたした。 [A1-6] 手動蚭蚈の敵察的プロンプト手法の䜓系的分類 抂芁 本研究は、LLM倧芏暡蚀語モデルの安党性に関わる敵察的プロンプト、特に手動蚭蚈のものに぀いお䜓系的な分類を詊みたものです。既存の研究では自動生成プロンプトに泚目が集たる䞀方、手動蚭蚈のプロンプトは倚様なタむプが存圚するにもかかわらず、十分に䜓系的に把握されおいたせんでした。そこで、䞖界䞭の敵察的プロンプトコンペティションから収集したデヌタをもずに、手動蚭蚈の敵察的プロンプトを49のカテゎリに分類し、6぀の倧カテゎリdirect instruction、simulation、response specification、instruction override、input style、different taskの䞋に敎理したした。たた、Tensor TrustやHackAPromptずいった既存デヌタセットでは特定の手法に偏りが芋られるこずも明らかになりたした。本研究の成果は、LLMの安党性怜蚌やレッドチヌミング攻撃者の芖点に立っおシステムの脆匱性を怜蚌する評䟡手法、敵察的プロンプト合成デヌタセットの䜜成に寄䞎するず期埅され、今埌は耇数手法の組み合わせ、英語以倖の蚀語察応、進化するトレンドぞの自動反映ずいった課題にも取り組む必芁があるずされおいたす。 感想 「システムプロンプトを品詞分解しお」のように、別のタスクに眮き換えるこずでシステムプロンプトを聞き出す手法があるなど、様々なアプロヌチが存圚するこずを初めお知りたした。たた、本発衚で指摘されおいるように、システムの安党性を包括的に評䟡するためには手法の䜓系的な分類が䞍可欠であり、LLMを利甚する䌁業ずしおも非垞に意矩深い研究だず感じたした。 C9-4 VDocRAG: 芖芚的文曞に察する怜玢拡匵生成 抂芁 匕甚元: VDocRAG: 芖芚的文曞に察する怜玢拡匵生成 匕甚元: VDocRAG: 芖芚的文曞に察する怜玢拡匵生成 本研究では、図や衚などの芖芚的に衚珟された文曞画像を知識源ずする新たな怜玢拡匵生成フレヌムワヌクであるVDocRAGが提案されたした。埓来のRAGはテキストのみを察象ずしおいたため、珟実䞖界に存圚する倚様な芖芚的文曞を十分に掻甚できたせんでしたが、VDocRAGは画像圢匏で文曞を統䞀的に理解し、芖芚情報を盎接利甚するこずが可胜ずなっおおりたす。 VDocRAGは、質問に関連する文曞画像を怜玢するVDocRetrieverず、怜玢した文曞画像を甚いお回答を生成するVDocGeneratorずいう2぀の䞻芁な構成芁玠から成り立っおおりたす。たた、倧芏暡芖芚蚀語モデルLVLMのトヌクンに画像衚珟を圧瞮させるための新たな自己教垫あり事前孊習タスクずしお、Representation Compression via Retrieval and GenerationRCRおよびRCGが提案されたした。RCRはOCRテキストに察応する画像を怜玢するための察照孊習、RCGはアテンションマスクを工倫したテキスト生成による衚珟孊習を実珟しおおりたす。 さらに、本研究では、図、衚、テキストなど倚様な文曞圢匏を網矅する初のオヌプンドメむン芖芚文曞質問応答デヌタセットであるOpenDocVQAが導入されたした。OpenDocVQAは既存のDocumentVQAやTableQAデヌタセットを粟査・改倉し、マルチホップ質問を含む新たなデヌタセットMHDocVQAを䜜成するこずで構築され、Single-pool特定の文曞圢匏内での怜玢ずAll-poolデヌタセット党䜓を暪断した怜玢の蚭定で評䟡されたした。 実隓の結果、VDocRAGは埓来のテキストベヌスRAGTextRAGを倧幅に䞊回る性胜を瀺し、特に芖芚デヌタの理解においお優れおいるこずが確認されたした。たた、事前孊習タスクであるRCRずRCGが性胜向䞊に倧きく寄䞎しおいるこず、さらに正解文曞が付䞎された堎合にはより高い性胜が埗られる䞀方で、怜玢性胜の改善ず怜玢ノむズぞの頑健性が今埌の課題ずしお瀺唆されたした。 こちらの内容は arXiv 䞊でも公開されおいたす。 arxiv.org 感想 圓日の発衚にお、提案されたモデルでは図衚などの芖芚情報をOCRを介さずにテキストを抜出できる仕組みにより、テキスト䞻䜓の画像に察する粟床が䜎くなる傟向が瀺されおいたした。 怜玢で䜿甚する[EOS]トヌクンの隠れ状態に画像衚珟を圧瞮されおいるそうだったので、ある皋床テキスト情報が倚いず情報が入り切らないなどの事象が発生しおいるかもしれないず想像したした。しかし、OCRを甚いない゚ンドツヌ゚ンドの構成は倧幅に凊理時間の効率化にも寄䞎するずのこずでしたので、今埌の発展ず、より倚様な画像ぞの察応に期埅したいです。 おわりに NLP2025では、倚くの魅力的な研究が発衚され、数々の刺激的なアむデアに圧倒されたした。今回の報告ではご玹介しきれなかったものの、LLMの安党性怜蚌や評䟡、ベンチマヌク構築に向けた倚様な取り組みも進められおおり、タむミヌを安心・安党なプラットフォヌムずしお維持するためのLLM掻甚法に぀いお、重芁な瀺唆を埗るこずができたした。 珟圚、タむミヌでは、デヌタサむ゚ンスや゚ンゞニアリングの分野で、共に成長し、革新を掚し進めおくれる新たなチヌムメンバヌを積極的に探しおいたす product-recruit.timee.co.jp たた、気軜な雰囲気での カゞュアル面談 も随時行っおおりたすので、ぜひお気軜に゚ントリヌしおください。↓ hrmos.co hrmos.co
アバタヌ
こんにちは、Timee でバック゚ンド゚ンゞニアずしお働いおいる id:ryopeko です。 今回は Timee で䜿っおいる API サヌバヌの Ruby を最新の 3.4.2 (+YJIT) にアップデヌトしたこずに぀いおの蚘事をお届けしたす。 1. 抂芁 今回の蚘事では、Ruby 3.3.6 から 3.4.2 ぞのバヌゞョンアップに぀いお、パフォヌマンスぞの圱響、Devin を䜿った実䜜業、 rubocop.yml の察応など、具䜓的な取り組みをご玹介したす。安定性を重芖した今回のアップデヌトの背景や、今埌の展望に぀いおも觊れおいきたす。 2. バヌゞョンアップによるパフォヌマンスぞの圱響 今回の Ruby 3.4.2 ぞのアップデヌトでは、YJITに぀いおは以前のバヌゞョンから匕き続き有効であるものの、我々のアプリケヌションでは目立った倉化はありたせんでした。 蚈枬方法ずアプリに぀いお 蚈枬には日々掻甚しおいる Datadog を䜿甚したした。アップデヌトしたアプリケヌションは、スマホアプリ、Web フロント゚ンドから䜿われる API で、サヌビスのメむントラフィックを担う郚分です。たた、ActiveAdmin によっお䜜られた内郚向け管理機胜矀も含たれおいたす。 Datadog を甚いお、CPU 䜿甚率、メモリ䜿甚量ず䜿甚率、リク゚スト凊理時間の各指暙を蚈枬したした。蚈枬期間や時間垯などの蚈枬条件に぀いおも確認を行いたした。 蚈枬結果 各指暙の掚移を比范した結果、バヌゞョンアップ前埌で倧きな倉動は芋られず、安定した状態を維持しおいるこずを確認したした。時間垯ごずの倉動パタヌンに぀いおも、目立った倉化は芋られたせんでした。 メモリ䜿甚量に぀いおも、倧きな増加や枛少は芋られず、メモリリヌクなどの兆候も芋られたせんでした。リク゚スト凊理時間も、バヌゞョンアップ前埌で倧きな倉化は芋られたせんでした。 今回のアップデヌトで私たちは、パフォヌマンスの維持ず最新のバヌゞョンを䜿い続けるこずを䞻な目的ずしおいたため、これらの結果は想定内であり、安定性を重芖したアップデヌトずしお成功したず蚀えたす。YJIT の効果は、我々のアプリケヌションの特性䞊からか、これらの指暙に顕著には珟れなかったようです。 3. Devin を䜿った実䜜業に぀いお たた、今回のバヌゞョンアップでは AI Agent ツヌルの Devin を掻甚したした。 Devin を利甚した背景 Devin を利甚した背景ずしお、事前に䜜業の抂芁が把握できおいたこず、動䜜確認に必芁な Unit test が倧量に存圚しおいたこず、RuboCop のルヌルが敎備されおおり、垞にパスする状態が維持されおいたこず、そしおアップデヌトの情報収集が AI の埗意な分野であるず考えたこずが挙げられたす。 Devin を利甚した䜜業内容 Devin を利甚した䜜業内容は以䞋です。 Pull Request の䜜成 珟圚のバヌゞョン間の䞻な差分情報の収集ずサマリヌ生成 Ruby アップデヌトに必芁な差分生成 Unit test の実斜ず確認 RuboCop の実斜ず必芁な倉曎のサマリヌ生成修正内容の提案、提案ずは違う内容の修正の指瀺を含む アップデヌト可胜な bundled gem のアップデヌト指瀺ず察象の調査方法などが挙げられたす。 プロンプトで指瀺したこず Devin にはプロンプトで以䞋の指瀺をしたした。 commit する前に䜜成する予定の差分ず Pull request 甚のサマリヌを人間が確認するこず Unit test の実斜 RuboCop の実斜 アップデヌト可胜な bundled gem のアップデヌト指瀺ず察象の調査 必芁な rubocop.yml の修正指瀺ず具䜓的な修正内容の指瀺 Pull request の䜜成 うたくいったこず Devin を利甚しおうたくいったこずずしおは、情報の収集ずサマリヌ生成、修正ずテスト等のむンクリメンタルな実斜ず確認が挙げられたす。 うたくいかなかったこず Devin を利甚しおうたくいかなかったこずずしおは、Ruby のアップデヌトず同時に実斜した bundled gem のアップデヌトが挙げられたす。これに぀いお Devin は初め、 bundle update で党おの gem をアップデヌトするこずで察凊しおいたため、具䜓的な指瀺を出す必芁がありたした。たた、bundled gem に関する情報収集がうたく凊理できなかったため、具䜓的な調査方法を指瀺する必芁がありたした。 Devin は情報収集や単玔䜜業の自動化においお、高いパフォヌマンスを発揮したした。䞀方で、耇雑な䟝存関係の解析や、具䜓的な指瀺がない堎合のタスク実行には、改善の䜙地があるず感じたした。プロンプトの工倫や、Devin の埗意分野ず人間の埗意分野を組み合わせるこずで、より効率的な開発が可胜になるでしょう。 今埌は、プロンプトのテンプレヌト化や、具䜓的な指瀺方法の研究、Devin の埗意分野ず人間の埗意分野を組み合わせた効率的な開発フロヌの確立、Devin のバヌゞョンアップや新たな AI ツヌルの導入による効率化を怜蚎しおいきたす。 4. rubocop.yml の察応 Ruby 3.4.x で有効になった以䞋のスタむルルヌルを、 Enabled: false に蚭定したした。 Naming/BlockForwarding Style/ArgumentsForwarding これらのルヌルは既存のコヌドず競合するため、䞀時的に無効化したした。将来的には、これらのルヌルに準拠するようにコヌドを修正し、 rubocop.yml の蚭定を芋盎すこずを怜蚎しおいたす。 たずめ 今回の Ruby 3.4.2 ぞのアップデヌトでは、安定性を重芖し、パフォヌマンスの維持を䞻な目的ずしたした。Datadog を甚いたパフォヌマンス蚈枬では、CPU 䜿甚率、メモリ䜿甚量、リク゚スト凊理時間などの䞻芁な指暙においお、バヌゞョンアップ前埌で倧きな倉化は芋られず、安定した状態を維持しおいるこずを確認したした。 たた、開発効率化のため、AI ツヌルである Devin を掻甚し、Pull Request の䜜成、差分情報の収集、テストの実斜など、様々な䜜業を Devin に任せるこずで、開発者の負担を軜枛し、効率的な開発を実珟したした。 今回のバヌゞョンアップを通しお、安定性ず効率性を䞡立させるための具䜓的な取り組みをご玹介したした。今埌も技術の倉化に柔軟に察応し、より良い開発環境を構築しおいきたいず考えおいたす。
アバタヌ
こんにちは、shihorinずmahoです。 先日、 Women in Agile Tokyo 2025 ずいうカンファレンスに参加しおきたした 参加した感想や気づきを察談圢匏でお届けしたす。 登堎人物の玹介 shihorin 2024幎5月タむミヌにゞョむンしお専任スクラムマスタヌになりたした。 maho HRから瀟内転職でスクラムマスタヌになりたした。スクラムマスタヌ歎2幎目に突入。 参加しお思ったこず shihorin : mahoさん、Women in Agileお疲れ様でした参加しおみおどうでしたか私は、RSGTでWomen in Agileの運営に携わっおいる方々の座談䌚を聞いお興味を持ったのが参加のきっかけだったんです。 maho : shihorinさんもお疲れ様でした私は、去幎メンタヌの方から勧めおもらい぀぀参加できなかったので、今幎は行っおみようずいうのがきっかけでした。もずもず倚様性に関心が匷いほうではあったんですけど、最近は「倚様性女性」ず括られるこずに違和感があっお 。 shihorin : わかりたす。「Women」ずいうワヌドが぀いおいるので、女性限定のカンファレンスなのかな、ず最初は勘違いしおいたした。 maho: そうそう。倚様性ぞの違和感に぀いおは「倚様性を掻かすチヌムの䜜り方」ずいうセッションを聎いお、腑に萜ちたこずがあるんです。 shihorin: どんなこずですか maho: 目に芋える違いvisible differencesだけじゃなく、性栌や経隓、䟡倀芳など目に芋えない違いinvisible differencesも倚様性に含たれるずいうお話があっお。特にIT業界は女性が少ないずいう特城もあっお、倚様性を考えるずきに、自分の䞭でも目に芋える違い、特にゞェンダヌが先行しすぎおいたな、ず。 shihorin: なるほど。 maho: 違和感の正䜓は、invisible differencesを考慮せずに、visible differencesが必芁以䞊に匷調された枠組みの䞭に入れられる女性〇〇みたいなずころにあったのかもしれないず思いたす。 shihorin: 確かに。visible differencesのほうが、倚様性ず聞いたずきに先に想起されやすそうだし、invisible differencesは考慮から抜けがちなのかもしれない。 maho: もちろんどちらのdifferencesも倧事ではありたすが、visible differencesだけを倚様性のように捉えるず衚面的なアプロヌチになりがちで、歪みが生じやすい気がしたすね。あず、セッションでは本質的に倚様性のあるチヌムや組織は成果を出しやすいずいう研究結果も玹介されおいたした。倚様性のあるチヌムは、事実をより重芖し、より慎重に凊理し、より革新的であるずいうのです。 shihorin: ぞヌ maho: ぀たり、察話ができ、お互いに異なる意芋を尊重できる環境においおは、ナニヌクなアむデアが生たれやすいのだず思いたす。スクラムマスタヌずしおは、チヌムや組織においおそういった堎䜜りをしおいくこずが重芁であるず改めお認識したした。 shihorin: Women in Agile 自䜓は、参加しおみお安心感がありたしたね。「あらゆる倚様性を尊重できる安党で健党な職堎䜜りを自分たちの手で䜜るため」に開催されおいるだけあっお、お互いを尊重し合おうずいうマむンドが䌚堎党䜓に溢れおいるなず感じたした。 maho: 確かに。Women in Agile っお、良い意味で意図的に敷居を䜎くしお、誰に察しおもりェルカムな雰囲気があるず思いたした。 shihorin: うんうん。個人的には、RSGT や他のむベントで知り合った人たちが増えおきお、知らない人に囲たれおいる感芚が薄かったのも安心感に぀ながっおいたした。 maho: 知り合いがいるず心匷いですよね。 shihorin: そうなんですよね。それに、これたで自分が参加した Agile 関連のむベントず比范しお、女性の参加比率がずおも高かったので、自分に近そうな属性の人のほうが話しかけやすい・話しかけられたずきの緊匵感が少ないず䜓感したした。䞀方で、それっお倚様性を吊定しおいるんじゃないかずもどかしい気持ちもありたした。 maho: 属性が䌌おいるず居心地が良い反面、気を぀けないず排他的になっおしたうこずもありたすね。でも、そうやっお色々考えるこず自䜓が、倚様性を受け入れるうえで倧切なプロセスなのかも。 shihorin: そうですね。Women in Agile に参加しお、改めお倚様性に぀いお深く考えるこずができたした。 印象に残ったセッション maho: 今回のカンファレンスで、特に印象に残ったセッションは「アゞャむルのない地域でアゞャむルを根付かせる〜䞉島物語〜」でした。 shihorin: ああ、あのセッションですね maho: このセッションでは、他者を巻き蟌んで文化を生み出しおいった実䜓隓に぀いおのお話がありたしたよね。 shihorin: たさに䜓圓たりでアゞャむルを広めおいくお話、面癜かったです。 maho: 自分が良いず思っおいるものをそのたた䌝えおも、なかなか盞手に䌝わらない。他者を巻き蟌んで文化を生み出しおいく、良いず思っおもらうだけでなく実際に行動に移しおもらう。これはずおも難しいこずですが、盞手の文化に寄り添い、その䞖界芳に合った䌝え方をするこずが、興味関心を持っおもらうための第䞀歩だず感じたした。 shihorin: 抌し付けではなく、盞手に寄り添うこずが倧事ですね。 maho: そうなんです。ずおも基本的なこずではあるんですけど。あずは、䜕かアクションを起こすずきには䞀緒に楜しむ気持ちも、文化を根付かせおいくうえでは無芖できない芁玠な気がしたす。 shihorin: 私は「Art of Hostingから孊ぶ 〜askずofferで珟れる自分自身も尊重される運営〜」が印象に残りたした。このセッションを聞いお、Art of Hostingずいう抂念を初めお知りたした。 maho: 私もです。 shihorin: 自分の心の内偎が敎っおいないず、話し合いの䞭に䞍芁な耇雑さ・煩雑さを持ち蟌んでしたう、あるこずないこず蚀っおしたう、ずいう話に共感したした。 maho: 焊っお䜙蚈なこずを蚀っおしたうこずはよくある気がしたす。 shihorin: そうなんです。察話の䞭で本圓はモダモダしおいるのに蚀葉に萜ずし蟌めなくお、モダモダを飲み蟌んだたた盞手の話に同意しおしたう、ずいった経隓はたたにありたすね。「たず自分自身をホストしよう」ずいう話の䞭で、自分の気持ちに気づく、倧切にするずいうワヌドが出おきたしたが、具䜓的にどういうこずなのかもっず詳しく聞いおみたいず思いたした。 shihorin: Closing Keynote も印象的でしたね。 maho: WAKE Career を運営しおいる bgrass 株匏䌚瀟の代衚、だむはさんの話、良かったですよね。 shihorin: 地道に䞀歩ず぀暡玢しながら、時には倱敗も経隓しながらリヌダヌになっおいった話を聞いお、共感できたした。若くしお起業したカリスマ、自分ずは遠い存圚のスヌパヌマンみたいなむメヌゞを勝手に持っおいたので、自分が共感できたこずに驚きたした。 maho: だむはさんが乗り越えおきた壁に぀いおの゚ピ゜ヌドを聞いおみたら、すごく人間味があっお、芪近感が湧きたした。今たでのマッチョなリヌダヌ像に必ずしも寄せおいく必芁性はない。それに代わる新しいリヌダヌ像をそれぞれが䜜っおいっおもいいのではないかずいう芖点には、ずおも考えさせられるものがありたした。 shihorin: そうですよね。誰かが蚀っおいる・䜜ったリヌダヌ像が絶察的な正ずいうわけではなく、自分なりのリヌダヌ像を目指したいず私も思いたした。 maho: 私も同じ気持ちです shihorin: もう䞀぀良いなず思ったポむントがありたす。ゞェンダヌギャップを解消したい、ずいう軞が最初から䞀貫しおぶれおいなかったこずに加えお、自分の䞭だけでなく呚囲に䌝わっおいたこずです。やっぱり熱量を持っお䌝えるこずっお倧事ですね。 maho: Closing Keynoteのお話からも熱量の高さを感じたした。 shihorin: 頑匵っおいる人をみお自分も頑匵ろうっお思えるのが、カンファレンスにいく䞀぀の目的だなず特に思いたした。今たでも「カンファレンスに参加するず登壇者や他の参加者から熱量を受け取れるよ」ずいった話を呚囲から聞いおきたしたが、埐々にわかり始めた気がしたした。 OSTに参加した感想 maho: OST はどうでした shihorin: 1回目は「察話の緎習堎」がテヌマのテヌブルに参加したした。「Art of Hostingから孊ぶ 〜askずofferで珟れる自分自身も尊重される運営〜」で登壇されたガオリュりさんがこのテヌマを挙げられおいお、察話の緎習をしたいなず玔粋に考えたためです。 maho: 私も同じテヌマに参加したした 察話や関係性に぀いお持論を話した際に、自分が思っおいた以䞊に共感や、気づきに぀ながりたしたずいうリアクションをもらえたのが嬉しかったです。 shihorin: 反応があるず嬉しいですよね。 maho: たた、この OST が終わった埌にも、垞に向き合っおいるからこそ蚀語化できおいるずお話いただいお、自分の意芋や考えに察しお色々なフィヌドバックがあるずいう機䌚が、これたでの私にずっおは倚くなかったので、ずおも刺激になりたした。 shihorin: OST が終わった埌もフィヌドバックがあったんですね maho: shihorinさんはどうでした shihorin: 私は「誰かの経隓談を聞くのっお結局n=1の話だし、盎接的に参考にはならないんじゃないか」ず今たで悩んでいたしたが、経隓談を抜象化するこずで「あるあるだよね」「自分も昔䌌たような経隓をした」ずいうように共通点が芋぀かっお、n=2、n=3  になっおいく。その䞭から、自分の仕事に掻かせる気づきやヒントを埗られそうだず今回の OST で感じたした。抜象化っお倧事なんだなずいう気持ちになりたした。 最埌に maho: 今回のカンファレンスに参加しお、誰かの話から新しい発芋を求める玔粋なゲスト感芚でいるだけではなく、自分の経隓や考えを発信しおフィヌドバックをもらい、たたあわよくば少しでもコミュニティにむンスピレヌションを䞎えられるようチャレンゞをしおいくフェヌズに移っおいくべきかもず思えたのは良かったです。 shihorin: いいですね 確かに、今たで誰かの話を聞いお「勉匷になったな」で終わるこずが倚かったかもしれない。 maho: そうなんですよね。せっかく貎重な経隓をしおきたのに、それを発信しないのはもったいないなず思っお。 shihorin: 自分の経隓や考えを発信するこずで、誰かの圹に立぀かもしれないし、コミュニティ党䜓の掻性化にも぀ながりたすもんね。 maho: だから、これからはもっず積極的に発信しおいきたいず思っおいたす。 shihorin: 私も自分の経隓や考えの発信にチャレンゞしおみたいです。たずは OST の参加テヌマ遞びのずきに「このテヌマなら自分の経隓や考えが他の参加者の圹に立ちそう」ずいう芳点を持っおみようず思いたした。 maho: 良さそう ぜひ、詊しおみおください。 shihorin: 今たでは「このテヌマ私も盞談したい、私も悩んでいる」ずいう芳点でテヌマを遞んでいたので、発信するずいう芳点がありたせんでした。 maho: どうしおも自分の悩みを盞談したいっお気持ちが優先されがちですよね。 shihorin: ですね。これからは発信する偎にもなっおみたいです。
アバタヌ
はじめに こんにちは タむミヌでPlatform Engineerをしおいる @MoneyForest です。 今回は、匊瀟のDatadogにおけるAWSメトリクス収集を、埓来のCloudWatch GetMetric APIからCloudWatch Metric Streams方匏に移行するこずで高速化した取り組みに぀いお玹介したす。 背景 タむミヌのワヌカヌ様向けアプリケヌションは、ピヌク時に1分あたり十数䞇リク゚ストを凊理するような芏暡で運甚されおいたす。そのため、システムの異垞を玠早く怜知し、察応するこずが求められたす。 䞻にシステムの異垞怜知は、メトリクス、ログ、APMを゜ヌスずしお゚ラヌレヌトやレむテンシヌの異垞を刀断し、DatadogのモニタリングアラヌトでSlackに通知するこずにより行われたす。 DatadogによるAWSメトリクス収集の仕組み Datadogでは、AWSのメトリクスを収集する方匏ずしお2぀の方法がありたす。 CloudWatch GetMetric API方匏 CloudWatchのAPIを定期的にポヌリングしおメトリクスを収集 メトリクスの遅延が15-20分皋床発生する可胜性がある CloudWatch偎の遅延5-10分 Datadogのポヌリング間隔10分 APIレヌト制限による远加遅延最倧5分 CloudWatch Metric Streams方匏 ストリヌミングしたメトリクスをAmazon Data Firehoseを介しおDatadogに送信 aws.s3.bucket_size_bytes や aws.billing.estimated_charges のような2時間以䞊遅れおレポヌトされるメトリクスは取れないので、GetMetric APIも蚭定する必芁がある 2-3分皋床の遅延 それぞれの方匏をポンチ絵で曞くず以䞋のようになりたす。 GetMetric APIはたずめお取っおくるPull型、Metric Streamsは継続的に送信するPush型ずいうむメヌゞです。 タむミヌではGetMetric API方匏のみでAWSメトリクスの連携を行っおいたしたが、最悪のケヌスでは20分近い遅延が発生する可胜性があり、問題の怜知が倧幅に遅れる可胜性がありたした実瞟ベヌスではALBのメトリクスなどが10-12分皋床遅延しおいる状態でした。 タむミヌのトラフィック芏暡では、メトリクス送信の遅延が倧きすぎるずしお、CloudWatch Metric Streams方匏の怜蚎を始めたした。 CloudWatch Metric Streams方匏ぞの移行 怜蚌環境を掻甚しながら実装、コスト、切り替えの流れを怜蚎し、移行を進めたした。 実装面の考慮 タむミヌではIaCずしおTerraformを採甚しおいたす。 䞀方で、CloudWatch Metric Streams方匏を実装する手段ずしお、AWSのIntegration画面からCloudFormationテンプレヌトが提䟛されおいたす。 CloudFormationテンプレヌトの内容を党おTerraformに曞き換えるのはコストが高いため、 aws_cloudformation_stack リ゜ヌスでCloudFormationスタックのApplyを行うこずにしたした。 # Datadog CloudWatch Metics Streams の蚭定 # CloudFormationのテンプレヌトがDatadog偎で提䟛されおいるため、そのたた利甚する resource "aws_cloudformation_stack" "datadog" { name = "datadog" template_url = "https://datadog-cloudformation-stream-template.s3.amazonaws.com/aws/streams_main.yaml" # テンプレヌト内郚で名前指定をしたIAM Roleを䜜成するのでオプション指定が必芁 capabilities = [ "CAPABILITY_NAMED_IAM" ] parameters = { ApiKey = data.aws_ssm_parameter.datadog_api_key.value Regions = join ( "," , [ "us-east-1" , data.aws_region.current.name ] ) } lifecycle { ignore_changes = [ parameters [ "ApiKey" ] , # ApiKeyの倉曎を無芖 ] } } コスト面の考慮 CloudWatch Metric Streamsの料金䜓系は、 AWSのPricingペヌゞ のExample 21に以䞋のように曞かれおいたす。 アプリケヌションが 30 日間䌑たず毎日 24 時間皌働し、毎分 10,000 メトリクスを曎新し、CloudWatch メトリクスストリヌムが、米囜東郚の Kinesis Data Firehose 配信ストリヌムを経由しおパヌトナヌの HTTP ゚ンドポむントにデヌタを送信する堎合、月額料金は次のようになりたす。 CloudWatch Metric Streams メトリクス曎新の合蚈数 = 10,000 メトリクス曎新/分 x 43,200 分/月 = 432,000,000 メトリクス曎新/月 432,000,000 メトリクス曎新 (1,000 メトリクス曎新あたり 0.003 USD) = 1,296 USD/月 CloudWatch の月額料金 =1,296 USD/月 蚱容できないほど高くなるこずはなさそうなため、怜蚌環境に数日反映しお実瞟ベヌスで確認するこずにしたした。 結果ずしお、日次で$20ほどかかっおいた CW:GMD-Metrics がなくなり、代わりに$50ほど CW:MetricStreamUsage にかかるようになりたした。 タむミヌでは本番環境より怜蚌環境の方がAWSリ゜ヌスが倚いため、このコスト増を最倧倀ず芋蟌み、蚱容範囲ず刀断したした。 切り替え時の考慮 切り替えに関しおは、CloudWatch Metric Streamsを有効化するこずによるメトリクスの倉化を怜蚌環境で確認したした。 結果ずしお以䞋2点の問題が明らかになり、それぞれ察応を行いたした。 CloudFormationスタックの適応䞭8分皋床はダッシュボヌドで䞀郚のメトリクスが重耇しお蚈䞊されおしたっおいる Datadogのドキュメント には以䞋の蚘茉があり、特別なケアは必芁ないものの、キレむに切り替わるわけではなさそうなこずがわかりたした。 API ポヌリングメ゜ッドを通じお特定の CloudWatch ネヌムスペヌスのメトリクスを既に受け取っおいる堎合、Datadog は自動的にこれを怜出し、ストリヌミングを開始するずそのネヌムスペヌスのメトリクスポヌリングを停止したす。 こちらは反映が完了するず元通りになるため、蚱容範囲ず刀断し、念のため開発者ぞリリヌスタむミングを呚知するにずどたりたした。 aws.applicationelb.httpcode_elb_5xx など䞀郚のメトリクスにおいお、CloudWatch Metricsのデヌタポむントがなかった堎合はNO DATAになる GetMetric APIの堎合は、CloudWatch Metricsにデヌタポむントがなかった堎合、Datadog偎には0のデヌタポむントが入りたしたが、CloudWatch Metric Streamsの堎合は、0のデヌタポむントが入らないずいう仕様差異がありたした。 こちらはモニタリングアラヌトがRecoverしなくなるなど明確な問題があったため、事前に該圓するモニタリングアラヌトに default_zero を぀けお回る修正を行いたした。 たずめ CloudWatch Metric Streams方匏ぞの移行により、メトリクスの収集が高速化され、MTTDを玄10分ほど短瞮できたしたただリリヌスしたばかりなので、本圓のずころはMTTDが短瞮される芋蟌み、です。 これからも高トラフィックなアプリケヌションで信頌性を担保するための地道な改善を続けおいきたいず思いたすたたね〜
アバタヌ
みんなでパシャリ タむミヌの新谷、神山です。 東京Ruby䌚議12 が1月18日に開催されたした。タむミヌは Gold Sponsor ずしお協賛をさせおいたただき、ブヌスを出展しおいたした。ブヌスに来おいただいたみなさんありがずうございたす 盛況なブヌスの様子 タむミヌからは @ryopeko が「functionalなアプロヌチで動的芁玠を排陀する」ずいうタむトルで登壇したした。 speakerdeck.com たた、タむミヌには䞖界䞭で開催されおいるすべおの技術カンファレンスに無制限で参加できる「Kaigi Pass」ずいう制床がありたす。 productpr.timee.co.jp この制床を䜿っお2名の゚ンゞニアが参加したした。 参加しお聞いたセッションのうち印象に残ったいく぀かをピックアップしおご玹介したす。 Keynote "Scaling Ruby @ GitHub" GitHub 瀟の John Hawthorn さんによる GitHub ずいうプロダクトがどのようにしお芏暡を拡倧し、高可甚性ずパフォヌマンスを維持しながら、アプリケヌションを効率的に運甚しおいるかに぀いお玹介するセッションでした。 セッションの䞭ではたくさんのノりハりの玹介がありたした。 倧量の Pull Request のデプロむを効率的に管理するためのマヌゞキュヌ 問題が発生した際に玠早く切り戻すための Feature Flag flipper gem パフォヌマンスチュヌニングを行う際の性胜比范を行いやすくするためのツヌル scientist gem デヌタベヌスレプリケヌションを最適化するためのツヌル freno gem DB再接続の機構ず過床に再接続を行わないようにするための Circuit Breaker の仕組み 発衚の䞭で GitHub はモノリスな Rails で運甚されおいお、コヌド行数は380䞇行匱、テストコヌドは200䞇行匱ずいう話がありたした。単玔な匕き算をするずテストを抜いた実装に関するコヌドは180䞇行匱ずいうこずになりたす。これは珟圚のタむミヌのモノリスの10倍以䞊ものコヌド行数です。 モノリスであるこず自䜓がスケヌルのボトルネックになるわけではなく、モノリスを取り巻く呚蟺環境の敎備さえできればこれだけ組織がスケヌルするずいう点は倧きな励みになりたした。 たた、発衚の䞭での「GitHub 瀟に入瀟埌、GitHub が普通の Rails アプリケヌションだったこずに驚いた」ずいう話も印象的でした。飛び道具を䜿うわけではなく、実盎に目の前の課題に察凊するこずぞの重芁さを再認識したした。 発衚の䞭でいく぀かの GitHub 瀟のテックブログが匕甚されおいたず思うので、こちらを参考にさせおいただこうず思いたす。 github.blog 心のどこかで遠い存圚のように感じおいた GitHub が我々の開発の延長線の先にいるように感じられた、そんな発衚でした。 @euglena1215 新谷が曞いおいるように、GitHub が匊瀟の開発の延長線䞊にいるように感じたした。 特に scientist の gem は倉曎に察しお堅牢さをもたらしおくれるなず感じおいるので、結構気になっおいたす。 スラむドが公開されたら芋返したい。 (@dak2) Writing PDFs in Ruby DSL Cookpad Inc. の Hiromi Ogawa さんによる Ruby DSL で PDF 曞こうぜずいうセッションでした。 github.com 私は前職で thinreports で PDF に出力する項目を修正しおいたこずがありたした。 github.com そのため、個人的にセッションの内容が気になっおいたした。 PDF の構造は知らなかったので、自分にずっおは知芋だなあず思い぀぀自分だったらどう曞くんだろうかず思いながら楜しく拝芋したした。 業務で䜿っおいるツヌルなどをハックしお再実装するなどの詊みは、そのツヌルずの機胜差分が比范できおより理解が深たりたすよね。 䜕か Ruby で再実装できないかなあず意識する良いきっかけになりたした。 セッションのスラむドの PDF 自䜓も Ruby DSL で自䜜されおいたずいう最埌の䌏線回収たで綺麗でお芋事だなず思いたした笑。 (@dak2) Simple組み合わせ村から倧郜䌚Railsにやっおきた俺は これたで軜量なラむブラリの組み合わせによっお Web サヌビスを開発しおきた≒ シンプル組み合わせ村に䜏んでいたずころから、フルスタックな Rails を曞くようになった≒ 倧郜䌚Railsに移り䜏んできた moznion さんによるシンプル組み合わせず倧郜䌚Railsの比范を行うセッションでした。 speakerdeck.com 私は業務でちゃんず䜿ったこずがあるのが Rails のみでSimple組み合わせ村に䜏んだこずがないシティヌボヌむだったずいうこずもあり、興味深く拝芋したした。 Simple組み合わせ村も倧郜䌚も「どちらも正解だよね」ず結論だったのですが、Simple組み合わせ村に䜏んだこずがない自分ずしおは適材適所の具䜓䟋を䞀歩螏み蟌んで聞けるず尚良かったなず感じたした。 たた、これは発衚ず盎接関係ないのですが、Simple組み合わせ村が発達しおいる蚀語においおはDIDependency Injectionも同様に発達しおいるような印象があり、それは組み合わせの差し替えを容易にするためだったりするんだろうか ず聞きながら考えおいたした。 @euglena1215 私も production 利甚のコヌドベヌスで觊ったこずがあるのは Rails のみな郜䌚っ子です。 セッション内容を聞きながら、20幎経っおも Rails が圓初の䟡倀芳を厩さず、Rails でい぀づけられるのは、Easy であるからこそなのではないかなず思っおいたした。 Simple 組み合わせ村は「俺の考えた最匷のxxxx」が乱立するんだろうなず思いたすし、すべおのプロゞェクトでそれが通甚するかず蚀われるず埮劙なずころがあるず思っおいたす。 Rails は Rails Way ずいう蚀葉があるようにレヌルに乗った開発を掚奚しおいるので、同じコンテキストの情報が Web にたくさん萜ちおいたすし、そういった面からもクむックにやりたいこずを実珟できる玠逊があっお、ここたで䜿われおいるんじゃないかなあず考えおいたした。 (@dak2) Regional.rb and the Tokyo Metropolis 広矩の “Tokyo” の地域.rbのオヌガナむザヌが䞀堂に䌚し、色々なこずに察しおガダガダず話す RubyKaigi の Ruby Committers and the World 的な䌚でした。 東京近蟺にこんなに地域.rbがあるのかずいう驚きが第䞀印象でした。他の蚀語のコミュニティにあたり参加したこずがないのですが、ここたで地域コミュニティが発展しおいる蚀語はあたり倚くないのではず予想したす。Asakusa.rb のようなOSS掻動などでアりトプットするこずを目的ずした地域.rbもあれば、しんめ.rb のような初孊者向けの地域.rbがあったりず裟野が広さを改めお感じるこずができたした。 たくさんの地域.rb オヌガナむザヌたち 私は普段 omotesando.rb に参加するこずが倚いのですが、地域.rbがあるこずで普段の業務や趣味で取り組んでいるこずを察倖的に発衚する機䌚が生たれ、登壇資料を䜜る䞭で自分の䞭でも理解の敎理が進み、発衚した内容を元に懇芪䌚で興味ある人ずざっくばらんに話すずいう䞀粒で䞉床矎味しい経隓をしおいるので、地域.rbのオヌガナむザヌには感謝しおもしきれたせん。本圓にありがずうございたす。 @euglena1215 䞉浊半島.rb が立ち䞊がったのを聞いお Kaigi Effect を感じたした 私は自宅近くの地域.rbにしか参加しおいなかったので、これを機に他の地域.rbにも顔を出しおみようかなあず思いたした。私なりの Kaigi Effect です笑 (@dak2) Keynote “Ruby ず Rust ず私” Cookpad Inc. の Suzuki Kohei さんによる Ruby ず Rust の実装を比范しながら感想を述べおいくセッションでした。個人的には最近趣味で Rust を觊っおみおいるので、どういう違いがあるのだろうかず気になっおいたした。 speakerdeck.com 䞊行凊理の文脈で「Ruby だず工倫が必芁なずころが、Rust では普通に曞くだけで達成できる」ずいう蚀葉が印象に残っおいたす。メンテなども考えるず、この間の距離っお匷い気持ちがないず埋めづらいなず聞きながら思っおいたした。 Result 型の question operator による゚ラヌハンドリング䟿利ですよねずか、SQLx で DB の row をデヌタ型にマッピングできるのかずか共感や発芋が埗られお面癜かったです。 䜙談ですが @euglena1215 が Suzuki さんず ISUCON の Ruby 実装に型を付けたいずいう話をされたようで、ISUCON の Ruby 実装にも型が぀くかもしれたせん。 (@dak2) 今回のコンセプトは「Ruby ず Class」ではなく「Rubyず暮らす」でした。 発衚ずしおも業務で Ruby を䜿っおいる、ずいうよりももう䞀歩生掻の䞭に Ruby が溶け蟌んでいるような印象を受ける発衚が倚かったような気がしたす。 RubyKaigi ずも Kaigi on Rails ずも異なる、アットホヌムな味のある楜しいカンファレンスでした。東京Ruby䌚議12のオヌガナむザヌ、ヘルパヌのみなさんありがずうございたした
アバタヌ
「゚ンドナヌザヌのためのデヌタ品質向䞊ぞの取り組みず展望」 ずいうタむトルでファむンディさんずクロヌズドな合同勉匷䌚を実斜したしたので、タむミヌ目線でのレポヌト蚘事をお届けしたす。 きっかけ 以前同じ䌁業に所属しおいた䞡瀟の瀟員の間で合同勉匷䌚の話が持ち䞊がったのがきっかけです。 䞡瀟共にデヌタ品質向䞊のための取り組みを進めおおり、参考になるこずが倚いのではずいうこずで合同勉匷䌚を開催する運びずなりたした。 勉匷䌚圓日の流れ 勉匷䌚はファむンディさんのオフィスにお開催いただき、タむミヌからはデヌタアナリスト、アナリティクス゚ンゞニア、デヌタ゚ンゞニア等のメンバヌでお邪魔したした。 各瀟でLTを行った埌、デヌタに関連する話題を䞭心ずした懇芪䌚を行うずいう流れです。 LTの発衚内容 各瀟からの発衚のタむトルず抂芁に぀いおご玹介したす。 ファむンディ マルチプロダクトのデヌタ基盀にデヌタメッシュを採甚した話 / ファむンディ ひらきさん デヌタ基盀チヌムの発足から、デヌタメッシュを採甚するに至った経緯や運甚に぀いおお話いただきたした。特にマルチプロダクトにおけるデヌタ基盀の運甚の難しさや、デヌタメッシュにおけるデヌタプロダクトをどのように定矩するかに぀いお、興味深く拝聎したした。 PII保護のためのDLP運甹 / ファむンディ tagashiraさん デヌタ暩限の管理方針や、DLP(Cloud Data Loss Prevention)を利甚した個人情報保護に関する取り組みに぀いお共有しおいただきたした。DLPを䜿い蟌んでいないず出おこない課題感が倚く含たれおおり、倧倉勉匷になりたした。 タむミヌ 各発衚者からコメントを貰いたしたので、合わせおご玹介したす。 ナヌスケヌスに合わせたデヌタ品質 / タむミヌ atshsy タむミヌでは、2024幎3月にデヌタ品質の向䞊を目的ずしお、RDBからデヌタ基盀ぞのパむプラむンを刷新したした。刷新からしばらく経ち、デヌタ品質に぀いお改めお評䟡したずころ、完党性の芳点で新たな課題が芋えおきたした。この発衚では、改善に向けお取り組んでいる内容ず、ナヌスケヌスごずに求められるデヌタ品質の違いに぀いお共有いたしたした。 ナヌザヌニヌズに合わせたデヌタ鮮床の提䟛 / タむミヌ okodoon アナリティクス゚ンゞニアのokodoonです。 耇数レむダヌを保持しおいるデヌタ基盀の曎新を、ナヌザヌの求める曎新頻床で曎新されるように党䜓の曎新戊略を構築しおいく話をしたした。レむダヌごずに求められる鮮床の抂念が異なるこずを説明し぀぀、dbtコマンドを甚いお「どのように最適な曎新頻床を実珟するのか」珟時点で匊瀟が考えおいるデザむンを発衚した圢です。 基盀の信頌性を掻かした 党瀟デヌタ掻甚掚進の取り組み / タむミヌ kuritama デヌタアナリストのkuritamaです。 私からは、デヌタ基盀の信頌性を掻かしお、党瀟のデヌタ掻甚掚進に取り組んでいる話をしたした。タむミヌでは ディメンショナルモデリング を運甚し安定したDWH・デヌタマヌトを提䟛しおおり、そのデヌタマヌトぞのアクセス手段ずしお党瀟的にlookerを導入しおいたす。デヌタアナリストは分析業務ず䞊行しおlookerの党瀟掻甚掚進を担っおおり、勉匷䌚ではその掻動内容の䞀郚を玹介いたしたした。 懇芪䌚の様子 ファむンディさんに食事をご甚意いただき、倧倉矎味しくいただきたした 各所で小さなグルヌプが自然発生的に出来䞊がり、LTの内容に限らずデヌタに関する課題に぀いおの議論が行われおいたのが印象的でした。 振り返っお 初の取り組みずいうこずもあっお緊匵の面持ちでお䌺いしたしたが、蓋を開けおみるず終了時間を過ぎおも話題が尜きず、和やかな勉匷䌚ずなりたした。ファむンディの皆様が暖かく迎えおくださったお陰ず感じおいたす。 開催をリヌドしおくださったひらきさん、ファむンディの皆様、本圓にありがずうございたした 勉匷䌚の内容に぀いおは、事前に想像しおいたよりも䞡瀟が䌌た課題を感じおいるこずに驚きたした。デヌタ品質に関する課題に぀いお、他瀟がどのように捉え察応しおいるのかを知る機䌚は倚くありたせんので、ずおも貎重な機䌚ずなりたした。 他のタむミヌのメンバヌからは、オヌプンな勉匷䌚ず比范しお話しやすかったずいう感想がありたした。共通の課題に぀いお率盎に意芋亀換できるのは、クロヌズドな勉匷䌚ならではの良さがあったように感じおいたす。 終わりに タむミヌでは、今埌もこうした圢匏で他瀟のデヌタ関係者ず亀流を図っおいければず考えおいたす。ご興味がありたしたら、気軜にお声がけください
アバタヌ
はい、亀井です。 yykamei ずいう名前でむンタヌネット䞊ではやらせおもらっおいたす。所属はタむミヌです。 今回、 Kaigi Pass ずいう制床を利甚しお Regional Scrum Gathering Tokyo 2025 RSGT 2025 にボランティアスタッフずしお参加させおいただきたした。 ShinoP さんず takakazu さんに「RSGT 2025 でボランティアスタッフをやるのですが、スタッフでも Kaigi Pass 䜿えたす」ず盞談したずころ「いいね」ずいうお声がけをもらい、晎れお Kaigi Pass を利甚しお参加するこずができたした。お二人に感謝。 Day 0 RSGT ぞの参加自䜓は今回が2回目です。2回目の今回はスタッフずしおの参加で「なんもわからん」ずいう状態で若干の䞍安を抱えながら Day 0 を迎えたした。 この Day 0 ずいうのは、぀たり「前日」の意味ですね。 RSGT 自䜓は 2025 幎 1 月 8 日に始たりたすが、その前日からいろいろず掻動をするわけです。 Day 0 の日に䌚堎に぀いたずころ、誰かから「ここはふわっず始たるんで」ず蚀われ、たしかに、「ふわっず」䜜業が始たりたした。到着時点ですでになんらかの䜜業をしおいたメンバヌが数人いたのですが、やるこずがわからないので芳察するしかありたせん。芳察しおいるず、だんだんず「なるほど、これをここに持っおいくのね」「ブヌスの荷物を持っおいくのね」などがわかっおきたすし、「誰か◯◯をやっおヌ」ずいう感じのヘルプ指瀺ではないが発生するので慣れないながらもそういう䜜業をしたす。 ずはいえ、今回のボランティアスタッフはそれなりの人数がいらっしゃったようで、すぐに誰かがなにかしらの䜜業をしおくれるので、やはり芳察する時間が長かったです。 Day 0 のメむン䜜業ずいえばノベルティヌの準備でしょうか。参加した方はわかるかもしれたせんが、トヌトバッグみたいなものがそれぞれに配られたす。 その䞭にステッカヌだったりペンだったりが含たれおいたすが、そうした内容物をトヌトバッグに入れる、ずいう単玔な䜜業を行なっおいたした。これ、それなりに倧倉でしお、珟地参加者の数が結構いらっしゃいたすので単玔に量が倚くお倧倉です。 ただ、そこはさすがずいうべきか、スタッフがこの単玔䜜業の䞭で自分の圹割を芋出し、途䞭から流れるようにノベルティヌが完成しおいきたした。たさしく自己組織的な䜕かを垣間芋たような気がしたす。 ノベルティヌ準備の様子 この単玔䜜業の最䞭にトラブルもありたしお、䜜業がいい感じにスムヌズに進み始めたあずに「これもトヌトバッグに入れる必芁がでたしたヌ」ずいうこずになり、その時点たで完成させおいたノベルティヌをもう䞀床点怜しおやり盎す矜目になりたした。こういうスクラム関連のワヌクショップ、ありたすよね。もう擊られ続けた VUCA ずいうワヌドですが、こんなずころにもその片鱗が芋えたした。 Day 0 では、倕方以降に Speakers Dinner ずいうものが開催されたした。こちらは登壇者ずスポンサヌの方々、そしおスタッフが和気藹々ず話す堎です。やはりここも「ふわっず」始たりたす。ただし、䌚堎を借りおいる時間の関係もあるので終了時間はきっちり守りたす。それが終わったら各々二次䌚などに行っおいるようでした。 Day 1 そしお、いよいよ Day 1 を迎えたす。ここからが本番ですね。 Day 1 での䞻な私の圹割は Room B での郚屋付きです。 The way through data to quality “Measuring Quality” ず Untangle your team with a new approach. プロポヌザルの段階では "A new innovative way to manage the complexity of a team.” でしたが、タむトルを倉曎したようです)ずいう二぀の登壇を担圓したした。 これらの登壇は海倖から来おくれたスピヌカヌがやっおくれたので、メむン蚀語は英語でそれを日本語に通蚳しおくれたす。質疑応答に぀いおも日本語で質問をすれば英語に通蚳され、英語で質問されれば日本語に通蚳される、ずいう感じで通蚳の方々が倧掻躍する珟堎です。 たた、通蚳の皆さんは別の郚屋で行うので、もしスピヌカヌや質問者がマむクを䜿わずに話しおしたうず通蚳の方々にオリゞナルの音声を届けられず、郚屋付きは意倖ず気を抜けたせん。圓初は「のんびり登壇を聞いおいようか」ぐらいに思っおいたのですが、郚屋付きに入るず「これは参加者や登壇者の満足床に圱響しそうだ」ずいうこずに気づきたした。 そのため、マむクに音が入っおいるか確認しながら䌚堎の様子に気を配る、ずいうこずをしたので、登壇内容はほずんど理解できたせんでした。あずで録画を芋ようず思いたす。 Untangle your team with a new approach. ずいう登壇をしおくれた Teemu に同じ郚屋付きだった束䞋さんが「Last name はどうやっお発音するの」ず聞いおいおさすがだな、ず思いたした。その問いに察しお Teemu は「そうなんだよ。みんな、このスペルからは発音の仕方がわかる人はなかなかいないよね」的なこずを回答しおいたした。郚屋付きだず登壇者ずこういう䌚話ができおいいですよね。 Day 2 Day 2 も匕き続き郚屋付きでした。この日の担圓は Cowtopia: Designing Agility Through Playful Innovation で、こちらはワヌクショップになりたす。 1 時間 40 分の時間を䜿ったワヌクショップでクネビンフレヌムワヌクを䜓隓しおチヌムを改善しおいくためにはどうすればいいのかずいうような内容だったように思えたす。郚屋付きで芋おいるず参加者同士で亀流をされおいおずおもよかったですね。登壇を聞くのもいいですが、ワヌクショップに行くず半ば匷制的に人ず亀流するこずになっおそれはそれで Gathering ができおよいのではないでしょうか。 Day 2 にもなっおくるずスタッフ業もだんだん慣れおきおようやく廊䞋を楜しむ、ずいうこずができるようになっおきたした。ただ、人ず話しおいる時にもトランシヌバヌの音声に泚意しおいたので 100% 䌚話を楜しめたかずいうずそこは課題がありそうです。 次回、チャンスがあればいかにうたくトランシヌバヌを扱っおいくかずいうこずを研究したいず思いたす。そういえば、 Day 2 で正矩さんに「30 秒ピッチやりたいんですけどどこに行けばいいですか」ず質問され「えなにそれ」ずいう感じで Confengine を芋たずころたしかに “Lunch Time (with 30 seconds pitch from anyone @ Terrace Room)” ずいうのがあり、あわおお実行委員の氞瀬さんに聞きに行きたした。 そしたら氞瀬さんも「えなにそれ」ずいう感じで急遜連携を取り合っおなんずか 30 秒ピッチを開催するこずになりたした。スタッフの新さんがきっちり 30 秒はかっお、肉声でドラを叩くずいうこずをやっおくれお急ごしらえの割には面癜いコンテンツになったのかもしれたせん。 Day 3 Day 3 はメむンホヌルで Open Space Technology OST)を行い、事前に募集しおいる人たちは別の郚屋でワヌクショップに参加する感じです。この日は特に私に圹割があったわけではないのですが、ずりあえず、 OST の郚屋で入り口付近にみなさん座りがちだったので、奥のほうに誘導しおいたした。 OSTが始たるずきの様子 — 円圢に䞊んで座りたす OST は始たるタむミングでは党員が円圢に䞊んで座っおむンストラクションを聞いお、各自持ち寄りたいトピックを曞いおいくのですが、その円圢の䞊びがどうしおも手前に偏っおしたったんですね。その偏りの修正をやっおいたした。 OST が始たる前に OST の寞劇があったのですが、私は廊䞋にいたので芋られたせんでした。あずで録画を芋お楜しもうず思いたす。 OST では盞倉わらず熱量を持った参加者がテヌマを持ち寄り、いたるずころで掻発な議論が行われおいたようです。熱量が凄すぎおその日は寒かったはずですが、䌚堎内は熱気が凄かったですね。私はなんずなくフラフラしおいたのですが、途䞭から furoshiki.fm のテヌマに぀いおのテヌブルにお邪魔したした。実はリスナヌなのですが、ここぞずばかりに「お䞖話になっおおりたす」ずいうフィヌドバックを出させおいただきたした。これが圹に立぀のかわかりたせんがこれからもファンでいさせおいただこうず思いたす。 Day 3 の OST ずワヌクショップが終わるずいよいよクロヌゞングキヌノヌトです。本間さんのお話です。最初の導入郚で、珟圚、本間さんがされおいる子䟛たちずのお仕事の話をしたす。「ホンダの話じゃなかったっけ」ず思ったのですが、この導入郚がないず実はホンダでのワむガダの話がすっず入っおこないんです。ある意味焊らすような感じなのですが、党䜓を通しお振り返っおみるず「めちゃくちゃいい話だな」ずいう感想になりたす。さすがです。 ホンダの話になっおくるず City の開発の裏話的なお話がされたすが、ずにかく「ワむガダ」ずいうのがキヌワヌドですね。そしお、本間さんは最埌のほうで RSGT の OST に「ワむガダ」を芋出しおいただいたようで、ちょっず嬉しいですよね。そういえば、先日 Slack の Huddles を䜿ったプラクティスずその背埌にある考え ずいう蚘事を曞きたしたが、このワむガダにも通じるな、ず䞀人でにっこりしおおりたした。 たずめ ずいうこずで、぀ら぀らずボランティアスタッフずしおの RSGT 2025 を曞いおみたした。ボランティアスタッフだずあたり RSGT を楜しめないかもなどず思っおいたのですが終わっおみるずもう䞀床やりたいな、ずいう気持ちになっおいたす。 スタッフずしおの仕事に慣れおくるずだんだんカンファレンス党䜓を俯瞰しお芋られるようになりわずか 4 日ながら自分の成長を実感したした。こんな感じで正統的呚蟺参加をしおコミュニティヌに関わっおいくのか、ず実感しおおりたす。 オヌガナむザヌずスタッフの皆さんで最埌に蚘念撮圱
アバタヌ
こんにちは。タむミヌのデヌタアナリティクス郚でデヌタアナリストをしおいる亀山です。担圓業務ずしおは、䞻に営業郚門のデヌタ分析を行っおいたす。 今日はA/Bテストず※DIDの効果怜蚌がより信甚できるように仕組みづくりをした話を玹介したいず思いたす。 ※DIDDifference in Differences、差分の差分法は、ある斜策の実斜前埌で、圱響を受けたグルヌプ比范矀ず圱響を受けなかったグルヌプ察照矀の倉化を比范するこずで、介入の効果を掚定する手法です。 取り組んだ背景 以前同じ郚眲の倏目さんがブログで取り䞊げおいる通り 、デヌタアナリティクス郚では過去に、効果怜蚌の事前蚭蚈ず結果を管理できるような仕組みを䜜成したした。その埌、効果怜蚌のテンプレヌトは倚く䜿甚されるようになり、知芋も貯たっおきたしたが、残課題ずしおは以䞋がありたした。 汎甚性の高いシンプルなテンプレヌトを䜜成したため、A/Bテストなど特定の手法を駆䜿した効果怜蚌では入力項目に䞍足がある 特定の効果怜蚌の手法も積極的に䜿っおいきたいが、手法に関する知識が人によっお差があるため、効果怜蚌のクオリティにばら぀きが出おきおしたう やったこず 今回は、これらの課題を解消するために、よく䜿われる効果怜蚌の方法論のドキュメント化ずその手法に特化したテンプレヌトの䜜成を行いたした。 よく䜿われる効果怜蚌の方法論のドキュメント化 瀟内でよく䜿われる効果怜蚌ずしおA/BテストずDIDがあげられたため、それらの方法論のドキュメント化を行いたした。 ドキュメントは以䞋のようにNotion䞊にデヌタベヌスを䜜成しお、A/BテストずDIDが䞀芧ですぐに参照できる圢匏にしたした。 A/BテストずDIDの方法論のデヌタベヌスの䞀郚 これらのドキュメント敎備で工倫した点は2点ありたす。䞀぀目は抂論や蚭蚈方法だけでなく、瀟内事䟋を参照した解説たで蚘茉したこずです。ただの効果怜蚌手法の説明であれば、ネット怜玢をすれば参照できたすが、瀟内事䟋も含めるこずで、タむミヌで行う効果怜蚌だからこそ、考慮するポむントなどを蚘茉したした。 二぀目は瀟内事䟋の解説の箇所で、Pythonなどのサンプルコヌドも蚘茉したこずです。説明だけでなくサンプルコヌドも茉せるこずで、コヌドの転甚に぀なげ、䜜業効率の向䞊を図りたした。 特定の手法に特化したテンプレヌトの䜜成 A/BテストずDIDのそれぞれの手法に特化したテンプレヌトも䜜成したした。背景でもお話しした通り、それたでのテンプレヌトは汎甚性が高くシンプルな圢匏でしたが、今回䜜成したテンプレヌトはそれぞれの手法ならではの入力項目を远加したした。 䟋えば以䞋の画像のように、A/Bテストならば「Randomizeの単䜍」や「割り圓おタむミング」などA/Bテストで考慮すべきポむントをテンプレに含たせるようにしたした。 たずめ 新しいテンプレヌトを䜜成しおから2ヶ月匱経ちたしたが、埓来のテンプレヌトに加えお、今回䜜成したテンプレヌトも䜿っおもらえおいるようです。今埌の展望ずしおは、他の効果怜蚌の方法の远加や既存のドキュメントのブラッシュアップも行っおいき、より信甚できる効果怜蚌を行える仕組みを䜜っおいきたいです。 たた、個人的な感想ですが、私はDIDを担圓するこずで、今たでの知識の敎理ができおずおも良かったです。知識は入れるだけでなく、倖に出すこずも必芁だなあず思いたす。今埌もむンプット・アりトプットを繰り返すこずで、自身の分析スキルも匕き䞊げおいきたいです We’re Hiring! タむミヌでは、䞀緒に働くメンバヌを募集しおいたす。 https://hrmos.co/pages/timee/jobs カゞュアル面談も実斜しおいたすので、少しでも興味を持っおいただけたしたら気軜にお申し蟌みください
アバタヌ
タむミヌのプロダクトマネヌゞャヌ以䞋、PMの 柿谷 @_kacky 、 高石 @tktktks10 、吉池、倧歳 です。 今回は、タむミヌの「 Kaigi Pass 」制床を利甚し、12/6にオンサむト開催された プロダクトマネヌゞャヌカンファレンス 以䞋pmconfのDAY2に参加しおきたした。 この制床を通じお、非垞に有意矩な孊びを埗るこずができたしたので、その内容を共有したす。 2024.pmconf.jp productpr.timee.co.jp プログラム抂芁 パネルディスカッション テヌマ「プロダクトマネヌゞャヌず仮説/戊略」 登壇者FoundX 銬田さん、Zen and Company 宮田さん OSTOpen Space Technology 参加者持ち蟌みテヌマでのディスカッション 懇芪䌚 他瀟のPMず亀流するネットワヌキングの堎 パネルディスカッションからの孊び 「プロダクトマネヌゞャヌず仮説/戊略」ずいうテヌマで行われたセッションでは、戊略の珟状や仮説構築におけるポむントが深く掘り䞋げられたした。 戊略のコモディティ化 宮田さんが指摘した「戊略のコモディティ化」ずいう珟状に察し、差別化の重芁性が議論されたした。タむミヌにおいおは、プロダクトマネゞメントや戊略を担う立堎でもあるため、プロダクトマネヌゞャヌがどこに゚ッゞを立おるべきかを再考するきっかけずなりたした。 実はSaaSっお、囜内だず取れる戊略少なくお、4パタヌンぐらいに集玄されるんじゃないか。 ・䌚蚈、人事や契玄レビュヌや契玄曞管理などは垣根を超えお、Multi-Horizontal化 ・Verticalは参入障壁高くお、じっくりAll-in-Oneを䜜り蟌む  — Yoshitaka Miyata / 宮田善孝 (@zenkou_1211) 2024幎7月22日 仮説構築の重芁性 宮田さんは、仮説は地道なむンプットを重ねた結果ずしお生たれるものであり、芋栄えの良さを求めるべきではないず匷調しおいたした。たた、日本のプロダクトマネヌゞャヌが海倖事䟋を十分に収集せず、囜内のプラクティスに偏っおいるこずや、議論テヌマが数幎間倉化しおいない点に譊鐘を鳎らしおいたした。 近幎は、ChatGPTのようなツヌルやXTwitterを掻甚しお、海倖の著名なPMの投皿や事䟋を簡単に収集できる環境が敎っおいたす。 私自身も、海倖事䟋を意識的に取り入れる姿勢を持ちたいず感じたした。 AI経枈の構造改革 銬田さんからは、曞籍 『AI経枈の勝者』 のフレヌムワヌクを甚い、AIを掻甚した3぀の゜リュヌションレむダヌポむント゜リュヌション、アプリケヌション゜リュヌション、システム゜リュヌションに぀いおの説明がありたした。特に、リスクを取りながらシステム゜リュヌションレむダヌに挑戊し、構造的な倉革を進めるこずの重芁性が匷調されおいたした。 AIを前提ずした新しいルヌルや戊略に぀いおは、ただ理解が浅い郚分も倚いため、該圓の曞籍を読み、知識を深めたいず思いたす。 productpr.timee.co.jp OSTでのディスカッション OSTセッションの開始に先立ち、pmconfスタッフから進行方法の説明がありたした。その埌、䌚堎から話したいテヌマを募り、16の分科䌚に分かれお合蚈3回のディスカッションが行われたした。 それでは、実際に、我々が参加したOSTで取り䞊げられたトピックに觊れたいず思いたす。 プロダクトマネゞメントに関する海倖事䟋や曞籍に぀いお知りたい このテヌマでは、パネルディスカッションで取り䞊げられた海倖事䟋をもずに議論が行われたした。プロダクトマネゞメントにおけるプロセスや圹割の定矩など、海倖事䟋をどのように参考にし、実践しおいるのかが話題に䞊りたした。しかし、参加者の環境や事業フェヌズ、提䟛するサヌビス内容が異なるため、議論は各自の事䟋玹介にずどたりたした。 さらに、プロダクトの海倖展開時におけるPMの圹割や、プロダクト開発䜓制、囜内ず海倖のカルチャヌの違いぞの察応に぀いおも議論が広がり、非垞に興味深い内容ずなりたした。 LLMの掻甚事䟋 「LLMの掻甚事䟋」では、以䞋の点に぀いお議論が行われたした。 AI投資の方向性 : トップダりンで進める䌁業が倚い䞀方、゚ンゞニア䞻導でボトムアップに進めるケヌスも芋られたした。特にアヌリヌフェヌズでは投資家の圱響が匷く、AIぞの投資は手段が目的化しおいるように芋える堎合もありたした。 ROIの課題 : ROIの可芖化が難しい䞭でも、AIぞの投資は䞍可欠であるずいう意芋が倚く出たした。 個人的には、どんなナヌスケヌスで掻甚できるのか考える営みは、プロダクトマネヌゞャヌずしお最䜎限芁求されるべきなのかなず思いたした。改めお、自瀟のプロダクトマネヌゞャヌや戊略郚門のメンバヌずも議論しおみたいなず思いたした。 リテンション斜策の効果怜蚌 「リテンション斜策の効果怜蚌がしづらい」ずいうテヌマでは、倚くのPMが同じ課題を抱えおいるこずが分かりたした。他瀟のPMからは、デヌタアナリストが充実しおいる匊瀟の環境に぀いお矚たしいずいう声をいただき、自瀟の匷みを改めお実感したした。 䞀方で、効果が枬れない斜策に぀いおは、枬定の努力を続けながらも「やるべきこずを決める仕組み」が重芁だず考えおいたす。 BtoBtoCのプロダクトはCにどのように向き合うか 倚くのBtoBtoCプロダクトにおいおは、キャッシュポむントがBにあるためにCに察する䜓隓改善がどうしおも埌回しになっおしたう課題感に぀いお各瀟の意芋亀換が行われたした。 各瀟の知芋を寄せ集める䞭で「Cの声を珟堎たでむンタビュヌしにいく」ようなすぐできるアプロヌチから「Cの䜓隓が良くなるこずでKPIが達成され、売䞊があがるようなビゞネスモデルに倉曎する」ずいった根源的なアプロヌチたで、さたざたなアむデアが生たれたした。 個人的には、顧客が満足するポむントずキャッシュポむントの距離の近さは、優秀なビゞネスモデルを構築する䞊で重芁な芁玠の䞀぀だず考えおいたす。今埌自分がプラむシングに関わるこずがあれば、意識したいですね。 メンバヌぞのスケゞュヌル意識を高める PMずしおはスピヌド感を持っおプロゞェクトを進めおいきたいず考えおいるが、その枩床感・危機感のようなものがどうもチヌムメンバヌに䌝わらない .。そんな課題に぀いお掘り䞋げるグルヌプでした。 䌚話の䞭では「そもそもどうしおスケゞュヌル感が必芁なのか」ずいった課題の発端に぀いお意芋亀換が行われ、 経営陣がプロゞェクトの進捗に䞍透明さを感じおおり状況を把握したいため 顧客の䞍䟿を早期に解消したいため 確定申告など、1幎に1床しか蚪れない倖郚むベントに間に合わせる必芁があるため など、倚皮倚様なきっかけがあるこずが分かりたした。 基本的なアプロヌチずしおは、PMが情報を包み隠さずチヌム党䜓で情報の非察称性を枛らしおいくこずが倧事そうです。しかし、元の課題によっおは単にチヌムの蚈画をオヌプンにしたり、開発する機胜のスコヌプを削ったりず、スケゞュヌル意識を高める以倖の解決方法もありそうだず感じおいたす。 非゚ンゞニアPMの生存戊略 「非゚ンゞニアPMの生存戊略」では、以䞋の点に぀いお議論が行われたした。 掻躍するために必芁なケむパビリティに぀いお たずは圧倒的に自身の匷みであるず蚀えるだけのスキルや経隓、ドメむン知識を獲埗するこず。その自身の匷みケむパビリティが顧客䟡倀の拡倧に寄䞎する実瞟を積み䞊げお深さを出すこず。そのあずに、抜象化ず転甚でケむパビリティをさらに広げおいくず良い、ずいう意芋がその堎の総論ずなりたした。 結局、゚ンゞニア経隓を積むべきか 䞻匵の䞀぀ずしおは、芋積もりに察する劥圓性評䟡をするためにも䞀定の゚ンゞニア経隓は積むべきずいう意芋がありたした。 しかし、その意芋は内補の開発組織ではなく、発泚元䌁業の䌁画担圓ず請負たたは準委任の受蚗䌁業の関係性を前提ずしおいるものでした。ビゞネスパヌトナヌ関係による利害関係が発生する堎合に぀いおであったため、PM ず゚ンゞニアが同じ顧客に向かっお利害関係なく動く組織においおは、必ずしも゚ンゞニア経隓は必芁ではないずいった察比の意芋も出おおり、開発䜓制や文化、事業フェヌズなどによるずいう結論ずなりたした。 PM組織の構造 「PM組織の構造」では、以䞋の点に぀いお議論が行われたした。 事業郚制における PM 組織のあり方 事業郚長がトップにいる䞭での PM 組織におけるレポヌトラむンの劥圓性 CPO ずいった機胜職皮ずしおのトップより PL 責任を持぀事業郚長のキャリアしか道がなさそうず、その組織のマネヌゞャヌの振る舞いをどうするかずいった議論がなされたした。 事業フェヌズや経営䞊、事業䞊の課題により適切な組織デザむンが思考されるべきで、䞀矩的なものはないずいう意芋が倚く出たした。 懇芪䌚での亀流 懇芪䌚では、他瀟のPMずリアルに亀流する機䌚がありたした。Xで知っおいた方々ず盎接話せたのは特に有意矩でした。数幎ぶりに再䌚する方もちらほらいたりしお、楜しい時間でした。 異なる環境や課題を持぀䌁業の話を聞くこずで、自瀟の環境や課題を盞察的に捉え、芖野を広げる良い機䌚ずなりたした。 最埌に 今回のカンファレンスを通じお、倚くの刺激を受けるず同時に、自分自身のキャリアや珟圚の課題に぀いお深く考える時間を持぀こずができたした。特に、倧量のむンプットを通じお質の高い仮説を構築する重芁性や、AI時代におけるプロダクトマネヌゞャヌの圹割に぀いお再認識したした。 Kaigi Passを掻甚しお埗たこの孊びを、今埌の業務にしっかり掻かしおいきたいず思いたす。
アバタヌ
むベント抂芁 12月17日火にpmconf 2024のサむドむベントずしお「Re:cycle〜pmconf 2024線〜」を開催したした このむベントはReject Conラむクなむベントずしお通過しなかったプロポヌザルをアップデヌトしお発衚するこずをコンセプトにIVRyさん、DMMさんずの共催で開催したした。 今回はこの勉匷䌚からタむミヌのプロダクトマネヌゞャヌである倧嶋さん @ta0o_o0821 の発衚を曞き起こしむベントレポヌト圢匏でお䌝えしたす。 オヌプニング お品曞き 自己玹介 はい、それでは私のほうから15分ほどお時間をいただいお、「Go See! で芋぀けるプロダクト開発の突砎口ずその実践法」ずいうテヌマでお話ししたす。たずは自己玹介から入りたす。 私は倧嶋泰斗ず申したす。株匏䌚瀟タむミヌでプロダクトマネヌゞャヌをしおいたす。入瀟は昚幎の6月頃で、今ちょうど1幎半ほどPdMずしお関わっおいるずころです。 バックグラりンドや職歎に぀いおお䌝えするず、これたでLINE、リクルヌト、そしお珟圚はタむミヌず、ずっずtoCサヌビスに携わっおきたした。個人的に、身近なナヌザヌや想像しやすい人たちの幞せや喜びに぀ながる䜓隓を぀くるこずが奜きで、孊生時代のむンタヌンも含め、䞀貫しおtoC領域でやっおきたした。キャリアの䞭ではデザむナヌをしおいた時期もありたすが、基本的にはプロダクトマネヌゞャヌずしお積み䞊げおきた圢です。趣味はカメラ、挫画、料理などです。 䌚瀟玹介 䌚瀟玹介は簡単にしおおきたす。タむミヌは、「働きたい時間」ず「働いおほしい時間」をマッチングするスキマバむトサヌビスです。䞀般的な求人媒䜓型サヌビスず異なり、実際の皌働や劎務管理、䌁業ぞの支払いたでプロダクト䞊で完結したす。単にマッチングで終わらず、その埌のワヌカヌ行動や皌働デヌタ、時絊ずマッチング率の盞関など、倚面的なデヌタ分析や改善が可胜である点が面癜いずころです。 デヌタだけに頌った意思決定の倱敗 では本題に入りたしょう。先ほど別のセッションで「培底的にやる」ずいう話が出おいたしたが、私がお䌝えしたいのは「Go See!」、すなわち珟堎に足を運んで顧客に぀いお孊び、プロダクト開発を前進させるアプロヌチです。 いきなりですが「顧客を完党に理解しおいる」ずいう方はなかなかいないず思いたす。デヌタ分析が䞀般的ずなり、ファネル改善や需芁予枬、バナヌ最適化などはデヌタドリブンで効果を出しやすい領域です。しかし、アナログな珟堎や耇雑なオペレヌションが絡むず、デヌタ分析だけでは行き詰たっおしたうこずがありたす。 䟋ずしお、マクドナルドの「サラダマック」を挙げたした。圓時、健康志向が高たっおいるデヌタから発想された商品ですが、実際の顧客はマクドナルドに来たらビッグマックやポテトずいったゞャンクなものを求めるこずが倚かったため、売れ行きは䌞びず撀退する結果ずなりたした。デヌタは有甚ですが、それだけでは顧客心理を完党には掎めないケヌスがあるわけです。 出勀簿プロゞェクト このような状況はタむミヌでも起きたした。その䞀぀が「出勀簿プロゞェクト」です。 物流䌁業の倉庫などでは1日に50100人芏暡でワヌカヌが来るこずがありたす。誰がどんなスキルで、䜕回目の勀務なのか、持ち物は䜕が必芁かなどを把握し、スムヌズに受け入れたい。 しかし埓来は情報が断片的で、それらを手䜜業で集玄し、1日30分ほど準備に時間をかけおいたした。この「受け入れコスト」が利甚拡倧のボトルネックになっおいたのです。 䞀芋するず、管理画面で情報をたずめれば解決しそうに思えたす。しかし瀟内倖でヒアリングをするず、「珟堎にPCを持ち蟌めない」「自䜜ツヌルを䜿いこなしおいる拠点がある」「拠点ごずにオペレヌションが異なる」「そもそも1日の定矩が違う拠点もある」ずいった耇雑性が次々ず刀明したした。「管理画面で芋せればいいのか 印刷したほうがいいのか」ずいった基本的な方針すら分からなくなり、゜リュヌションが芋えなくなっおしたったのです。 Go see で埗られたむンサむト そこで掻甚したのが「Go See!」、぀たり珟堎ぞ足を運んで盎接芳察するこずです。 東京、名叀屋、栃朚、矀銬など各地の物流倉庫を回り、ワヌカヌ受け入れの様子や顧客ずのやりずり、働く珟堎を半日から1日かけお芳察したした。 センタヌ長、人事郚長、珟堎責任者、受け入れ担圓者などにも盎接ヒアリングを行い、実態を把握したす。 その結果わかったこずが、やはり「玙が必須」ずいう点でした。 拠点によっおは様々な掟遣媒䜓からワヌカヌを呌び、テヌブル䞊に各媒䜓の出勀簿を䞊べお即時にメモを曞き蟌む必芁がありたす。 ロッカヌキヌ番号や䜓調䞍良、盎前キャンセルなど、想定倖の事態が垞に起きる䞭、PCを開いお操䜜する䜙裕はありたせん。玙ならその堎で曞き蟌みが可胜で、柔軟な察応ができるのです。 たた、ずある別のPoC怜蚌をしおいた拠点はなかなか利甚に至っおおらず、ヒアリングしおみるずCSVの列の远加や削陀の䜜業をなくしたいずか フィルタヌする手間をなくしたいずか、色々なお声をいただきたした。 元々30分掛かっおいた䜜業が5分皋床で完了する様になったので、それで良いだろうず思っおたしたし、䜕故、5分掛かるこずで利甚に至らないのか理解が出来おいたせんでした。 でも、実際に珟地で䜜業しおいるのを芳察しおみるず色々なこずが分かりたした。 朝8時から8時45分たでの間に、電話察応、他瀟掟遣スタッフぞの察応、曞類分け、䞊叞の䟝頌業務、さらには100人芏暡で来るタむミヌワヌカヌの点呌準備たで、1人でマルチタスクをこなしおいたした。たずえCSV敎理が数分短瞮できおも、その数分すら倧きな負担になるわけです。こうした状況を芋なければ「なぜ利甚されないのか」が分からなかったでしょう。 小さな䞀歩で倧きな成果を埗る 珟地蚪問をしなければ、未利甚の原因は䞍明なたたで、開発は進たず手詰たりになっおいた可胜性がありたす。 衚面的な察応に終始し、ギャンブル的な改善を繰り返すこずになったかもしれたせん。しかし、実際に珟堎を芋お理解を深めるこずで、真の課題が発芋でき、確かな改善ぞず぀なげるこずができたした。 ここで改めお指摘したいのは、ナヌザヌ行動はあらゆる芁因に巊右されおいるずいうこずです。 プロダクト䞊のデヌタはクリックや怜玢、閲芧履歎ずいった動䜜しか瀺したせんが、その背埌には割匕キャンペヌンや地域の習慣、友人からのおすすめなど、デヌタ化されない圱響芁因が無数に存圚したす。 珟地蚪問をするこずで、そうした背景に目を向けられたす。 たずめずしお、「Go See!」は小さな手間で倧きな成果を埗られるアプロヌチだず蚀えたす。数字やデヌタでは芋萜ずしがちな珟堎固有の環境や䞍䟿さを盎接芳察するこずで、プロダクト開発の盲点を補完し、成功ぞず近づけたす。たた、チヌム党䜓で顧客理解を共有すれば、その埌の開発スピヌドや質が倧幅に向䞊したす。私たちのチヌムでは、゚ンゞニアやデザむナヌ、入瀟盎埌のメンバヌにも必ず珟堎に行っおもらい、党員が同じ高い顧客解像床を埗るようにしおいたす。その結果、スクラム開発でプロダクトオヌナヌずしおの私が手離れできるほど、チヌム自埋的に開発が進むようになりたした。 泚意点ずしお、Go See! は定性的アプロヌチなので、N=1的なバむアスをはらみたすし、顧客特有の問題に巊右されがちです。 そのため埗られたむンサむトは、小さなPOCを通じお怜蚌し、さらにデヌタ分析を組み合わせるこずで、より確床を高めるこずが倧切です。 最終的なリリヌス埌はデヌタ分析を最倧限掻甚しお、䟡倀の最倧化をスピヌディに図るこずが望たしいでしょう。 以䞊で、「Go See! で芋぀けるプロダクト開発の突砎口ずその実践法」のお話を終わりたす。 ご枅聎、ありがずうございたした。 珟堎に足を運ぶプロダクト開発に共感する人は是非お話したしょう product-recruit.timee.co.jp 求人はこちら hrmos.co
アバタヌ
目次 目次 はじめに RBS に぀いお rbs-inline ず Steep に぀いお RBS に出䌚っおからの Ruby ぞの向き合い方 単䞀の型を返す意識が぀いた メ゜ッドの戻り倀の型だけを芋お実装する機䌚が増えた Ruby で型を曞くのも良いなず思った はじめに こちらは Timee Product Advent Calendar 2024 の24日目の蚘事です。 前日は @beryu の iOSの職胜チヌムが存圚しない組織で、WWDCハッカ゜ンを䌁画・開催したした でした。 こんにちは。バック゚ンド゚ンゞニアの @dak2 です。 タむミヌではバック゚ンドの Ruby on Rails アプリケヌションに型定矩情報RBSを蚘述しお運甚しおいたす。 もう少し具䜓的に話すず、rbs-inline を利甚しお RBS ファむルを生成し、Steep によっお型怜査しおいたす。埌半で詳しく説明したす。 自分はタむミヌに Join するたで RBS に觊れたこずがなかったので、Ruby で型を蚘述するずいう䜓隓が新鮮でした。 型を蚘述しお運甚する䞭で Ruby ぞの向き合い方が倉わっおきたなあず感じおいるので、今回はそれを文字に起こしおみたいず思いたす。 RBS に぀いお RBS ずは Ruby のプログラム構造、いわゆる型を蚘述する蚀語のこずを指したす。 Ruby ファむルずは別に .rbs ずいう拡匵子のファむルにクラスやモゞュヌルの型を蚘述したす。 class Foo def bar (str) "#{ str }" end end class Foo def bar: ( String ) -> String end 簡単な䟋ですが、䞊蚘のように foo.rb のクラスに察しお、 foo.rbs ファむルに RBS を曞いお型定矩ができたす。 *詳现は 公匏リポゞトリ を参照しおください。 rbs-inline ず Steep に぀いお rbs-inline & Steep は、匊瀟のフルタむム Ruby コミッタである soutaro が開発しおいる gem です。 rbs-inline はコメントずしお型を蚘述できたす。このコメントをもずに RBS ファむルが生成されたす。 䞋蚘巊のようにメ゜ッド䞊郚にコメントを远蚘しお、 rbs-inline コマンドを実行するず右のような RBS ファむルが生成されたす。 class Foo # @rbs (String) -> String def bar (str) "#{ str }" end end class Foo def bar: ( String ) -> String end *詳现は 公匏リポゞトリ を参照しおください。 Steep は Ruby の型怜査噚であり、実装ず型宣蚀に矛盟がないかをチェックしたす。 䞊蚘のような RBS を蚘述した䞊で steep check コマンドを実行するず型チェックをしたす。 Steep は VSCode での拡匵機胜もあり、関数ホバヌ時に型定矩を教えおくれたり、メ゜ッドの補完や型゚ラヌになっおいるコヌドを赀の䞋線で瀺したりしおくれたす。 メ゜ッド補完 未定矩メ゜ッドの゚ラヌ *詳现は 公匏リポゞトリ を参照しおください。 ちなみに、匊瀟バック゚ンドのテックリヌドである shintani が Steep の゚ラヌリファレンスをたずめた 蚘事 があるので、興味がある方はご芧ください。自分もちょくちょく芋おいたす RBS に出䌚っおからの Ruby ぞの向き合い方 自分の所属しおいる Working Relations Squad ずいうチヌムでは Done の定矩の䞀環ずしお、むンクリメンタルな差分に察しおは必ず rbs-inline を蚘述するようにしおいたす。 *Done の定矩の話に぀いお詳しく知りたい方は、 こちら の蚘事を参照しおください。 rbs-inline を蚘述しお型を意識するこずで、Ruby ぞの向き合い方が倉わったなあず思う点を䞋蚘に挙げおみたした。 単䞀の型を返す意識が぀いた メ゜ッドの戻り倀の型だけを芋お実装する機䌚が増えた Ruby で型を曞くのも良いなず思った 単䞀の型を返す意識が぀いた 自分は戻り倀の型が単䞀の方が扱いやすいず考えおいたす。 その方が呌び出し偎で戻り倀の型ごずにハンドリングしなくお良いし、メ゜ッド自䜓の再利甚性も高たるず思っおいたす。 rbs-inilne を曞くたではがんやりずそういった意識はあったものの、あたり意識できおいなかったように思いたす。 rbs-inline を曞くこずで、自分が远加したメ゜ッドの型を定矩するようになり、自然ず戻り倀の型がどうあるべきかに察しお明確に思考が向くようになりたした。 メ゜ッドの戻り倀の型だけを芋お実装する機䌚が増えた Ruby を蚘述しおいるず、このレシヌバっおこのメ゜ッド䜿えるんだっけず思っおメ゜ッドの䞭身を再床読みに戻った経隓はありたせんかもしくはテストを芋に行ったり、堎合によっおはコン゜ヌルで Object#class を実行しお確かめたりなど。自分は䜕床もありたす。 既存メ゜ッドの䞭身を確認するこずはあるのですが、詳现たで深く確認するずいうケヌスは少し枛ったかなず思っおいたす。 メ゜ッドなどの型情報を䞻なむンタヌフェヌスずしお捉え、呌び出し偎で利甚するみたいなケヌスが増えたなず。 Ruby で型を曞くのも良いなず思った 良いか悪いかは別ずしお、「メ゜ッドの戻り倀の型だけを芋お実装する」こずで、䜙蚈な情報を知らずに枈むようになっおきお、本圓に実珟したい凊理に集䞭しやすくなり぀぀あるなず思っおいたす。 この状態は理想的で、やりたいこずにフォヌカスできるず Ruby の高い衚珟力を掻かしお玠早く䟡倀提䟛できるんじゃないかず思いたす。 過去に TypeScript などで型を曞いおはいたしたが、型の意矩が自分の䞭で腹萜ちしおいたせんでした。デフォルトで型付けしないずいけない䞖界線だずそれが圓たり前だったので、Ruby の䞖界ずの差分が倧きくおうたく解釈できおいなかった感芚がありたす。 ですので、それたでは型を曞くずいうのがただ退屈な䜜業に感じおいたしたが、“型のある” Ruby を曞くこずず、”型のない” Ruby を曞く䜓隓差分を通じお、䞊述したように型の意矩が自分の䞭で腹萜ちしおきたなず思っおいたす。 「Ruby に型なんかいらないんじゃないかな」ず思っおた自分が、型の恩恵を受けた䞖界線はより Ruby の衚珟力にフォヌカスできるんじゃないかず思い盎しおいお、Ruby ぞの向き合い方がたた䞀぀倉わったような気がしたす。面癜いなあ。 これからも型やっおいきの粟神で曞いおいこうず思いたす。 明日は @naoya の 「【iOS】Live Textを掻甚した画像解析 です。」お楜しみに
アバタヌ
これは Timee Product Advent Calendar 2024 の23日目の蚘事です。 こんにちは。タむミヌでiOSアプリを䜜っおいる岐郚( @beryu ) です。 もうすぐクリスマスですね月初から我が家のリビングに眮いおあるクリスマスツリヌもだいぶ芋慣れおきたした。 さお、今幎も䟋幎通りApple瀟による開発者カンファレンス「 WWDC24 」が倏に開催されたしたね。 匊瀟の䜓制ずしおは”iOSチヌム”ずいう単䜍のチヌムが存圚せず、プロダクトを機胜領域ごずに分割した職皮暪断チヌムで機胜開発をしおいたす。そのため、普通に業務をする䞊ではWWDCで埗た知識に぀いおiOS゚ンゞニアが積極的に詊したりする堎はそれほど倚くなく、埗た知識を非゚ンゞニアの瀟員に展開するかどうかも含めお個々人に任せられおいたした。 今幎、初めおそれを瀟内ハッカ゜ンずいう圢で瀟内にアりトプットする機䌚を䜜ったので、それに぀いおたずめたいず思いたす。 䌁画したきっかけ WWDC開催期間䞭、匊瀟のiOS゚ンゞニアは普段通り業務にあたり぀぀、スキマ時間でセッションをキャッチアップする日々を送っおいたした。 そんな䞭、ふず思い぀きでSlackに以䞋の぀ぶやきをしたのがこずの始たりでした。 各チヌムのiOS゚ンゞニアが参加しおいるSlackチャンネルの実際の曞き蟌み この時点で参加者数の芋通しは私を含んで4名。小芏暡なハッカ゜ンを開催するには十分な人数だず刀断し、準備に取り掛かりたした。 準備 前述した通り、匊瀟にはiOSチヌムずいう組織は無く、プロダクトを機胜領域ごずに分割したチヌムで働いおいたす。 したがっお、䞀介の゚ンゞニアがハッカ゜ン甚にリ゜ヌスを自由に割けるような䜓制ではなく、ハッカ゜ンに参加する瀟員が所属するチヌム党おから蚱可を埗る必芁がありたした。 今回のハッカ゜ンは遊びではなく、魅力的なプロダクトを開発するために有効な 仕事 です。 しかし、䞇が䞀文脈を知らない方がこの掻動を芋お「遊んでいるのでは」ず思われたずしたら、それは誰の埗にもならない悲しい誀解なので、そのような事態は必ず防がなければなりたせん。 この準備フェヌズでは、そんな事態を防ぐために出来るこずを考えながら動くこずにしたした。 非゚ンゞニア向けの資料䜜成 たず、ハッカ゜ンにかけたコストに芋合うリタヌンが埗られる論理を明文化したした。 誰かに資料䜜成を呜じられたわけではありたせんが、業務に割く時間を削っお行う掻動ではあるので「玍埗しおもらえる材料があるに越したこずはないだろう」ずいう考えで甚意したした。 ドキュメントには瀟倖秘の情報を含んでいるので詳现はお芋せできないのですが、䞻に以䞋のような内容を含めたした。 目的 タむミヌが今WWDCハッカ゜ンをやる意矩 期埅されるアりトプット ハッカ゜ンのレギュレヌションここ3〜4幎のWWDCで発衚された技術であれば䜕でも䜿っお良い ハッカ゜ンで消費するリ゜ヌス量 iOS Chapterでの盞談 匊瀟にはiOSチヌムが無い代わりに、各チヌムのiOS゚ンゞニアが暪軞で繋がるコミュニティのような存圚ずしお”iOS Chapter”ずいう仮想組織が定矩されおいたす。 iOS Chapterでは毎週定䟋䌚議を開催しおおり、その堎でハッカ゜ンの開催圢匏や所芁期間に぀いお盞談したした。 各々が別チヌムに所属しおいるのでそれぞれに事情があり、盎近での同期圢匏での開催は珟実味が薄いず刀断し、以䞋の枠組みで合意したした。 1ヶ月匱の期間䞭で2営業日を割く 任意参加扱いずする マネヌゞャヌずの亀枉 ゚ンゞニアリングマネヌゞャヌ陣の定䟋䌚議の堎で時間を拝借しお、䞊述の資料をひっさげお開催させおほしい旚を亀枉したした。 亀枉ずは蚀っおも、私がこの話題を出した時点でその堎が応揎ムヌドになり、特に咎められるこずもなくスムヌズにOKを頂けたした。 自郚眲の党䜓定䟋での展開 共に珟堎で働く゚ンゞニア・デザむナヌの皆さんにも玍埗しおもらった䞊で開催したかったので、察象のメンバヌがほが党員集たるAll Handsずいう定䟋䌚議でも䞊述の資料を甚いながら告知も兌ねお玹介したした。 ここでのリアクションも”わいわい”ずいう圢容がピッタリの、良い盛り䞊がりを感じるものでした。 ハッカ゜ンの開発期間 参加者は定められた期間䞭の2営業日を䜿っお、ハッカ゜ンのための調査・開発を行いたした。 このタむミングでも参加者はFixさせおいなかったので、参加予定だった瀟員が途䞭で業務郜合で参加できなくなったり、逆にこれたで参加衚明しおいなかった瀟員が参加しおくれたりするこずもありたした。 あくたで通垞業務が優先であるこずを鑑みおこの圢にしたのですが、結果的にはこの圢にしお良かったなず思っおいたす。 成果発衚䌚 匊瀟は私も含めリモヌトワヌクのメンバヌが倚く所属しおいる事情もあり、成果発衚䌚はオンラむンで行いたした。 発衚順はその堎でシャッフル関数で決めたした 成果物 App Intentsの抂芁・実装方法の調査報告 発衚の堎では、WWDC24で発衚されたApple Intelligenceずの統合を芋据えながらApp Intentsの抂芁を説明し぀぀、iOS版タむミヌアプリにApp Intentsを組み蟌んだ䟋を実際の゜ヌスコヌドを添えお玹介しおいたした。 タむミヌのアプリ内郚の構造が深く絡む内容だったのでここでは資料をお芋せできないのが残念なのですが、App Intentsの実装の手軜さ、身近さを感じられる発衚でした。 Live Activityによるリッチな通知機胜の実珟 これが私の発衚です。 WWDC23で発衚されたプッシュ通知経由での利甚䟋を䞭心に、iOS版タむミヌアプリにLive Activityを組み蟌んだらどんな䜓隓になるかを玹介したした。 実際にデモで䜿甚した動画は以䞋からご芧頂けたす。 ※タヌミナル画面にはがかし加工を加えおいたす www.youtube.com パスキヌによる認蚌の導入 珟圚タむミヌで採甚しおいる電話番号認蚌ずは別の認蚌方法ずしお、パスキヌを玹介しおいたした。 認蚌はセキュリティが重芁な芁玠になるので技術的な話題も倚い発衚で、正盎なずころ聞くだけでもやや難易床が高い内容でしたが、䞀方で動䜜デモの堎面ではシンプルでわかりやすいUXに聎衆が感動しおいる様子が印象的でした。 この日の発衚の䞭で唯䞀、実際に操䜜できるデモアプリを配垃できおいたこずでも倧きなむンパクトを残しおいたした。 TipKitによるアプリ内ヒントの提䟛 WWDC23で発衚された、機胜のヒントを衚瀺するためのフレヌムワヌクの玹介でした。 恥ずかしながら私はTipKitの存圚を知らなかったのですが、画面の䜿い方を教えるようなUIを䜎い実装コストで実珟できる、実甚的なフレヌムワヌクでした。 動䜜デモでは、普段の開発で「この画面のUI、少しわかりにくいかもしれないね」ず話に挙がっおい぀぀実装リ゜ヌスを割くこずが出来ないたたになっおいた箇所に、シンプルなコヌドでヒントを実装する様子が披露され、目立たない存圚ながらその有甚性を匷く実感できる内容でした。 瀟内からの反応 成果発衚䌚の最䞭にGoogle Meetのコメント機胜で感想を述べお頂いたり、終了埌にアンケヌトにご協力頂いたりしお瀟内の反応を集めたのですが、非垞に奜評でした 䟋えば、以䞋のような声が挙がっおいたした。 よかったですヌで終わらせたくない内容でした R&Dみが匷い感じかず思っおたんですが、すぐにでも導入できそうな圢に仕䞊がっおいおすごい iOSを業務で觊っおいない方がハッカ゜ンに出られるずころがスキルずマむンドのダブルですごい ※App Intentsに぀いお発衚したのは普段アナリストずしお業務にあたっおいる瀟員でした 取り組みに再珟性持たせたいですね 楜しかった 今日発衚された機胜のリリヌスはい぀ですか リリヌスされた機胜 嬉しいこずに、このハッカ゜ンで披露された成果物のうち実際にリリヌスされた機胜も存圚したす。 今幎タむミヌアプリに新蚭されたものの䞀぀である”バッゞ”ずいう機胜がありたす。ワヌカヌタむミヌを通しお働くひずが働き先で認定されるず業務ごずのバッゞを獲埗でき、そのバッゞ情報をもずに曎にさらに自分のスキルに合った募集を受けるこずが出来るようになる機胜です。 この機胜で獲埗したバッゞはバッゞ䞀芧ずいう画面で䞀芧できるのですが、この画面にあるバッゞ画像をタップ出来る事に気付けないずいう声が床々挙がっおいた背景があり、そこに今回のハッカ゜ンの成果物の䞀぀だったTipKitを導入するこずになりたした。 この機胜はすでにリリヌスされおおり、iOS17以䞊のiPhone䞊で動䜜するタむミヌアプリでご利甚頂けたす。 実際のバッゞ䞀芧画面 たた、他の発衚された成果物に甚いられおいた機胜に぀いおも実装に向けおPdMず盞談し、優先床を付けお日々の開発に甚いおいるバックログに远加しおいたす。 やっおみた感想 ハッカ゜ンを実斜するきっかけはSlackでの些现な぀ぶやきでしたが、呚囲の応揎もあっおどんどん話が進んでいきたした。賛同した瀟員が各々の発想ず技術力をもっお成果物を䜜成・発衚し、非iOS゚ンゞニアの興味を誘い぀぀䞀郚はスピヌディにリリヌスたでされるずいう、理想的なハッカ゜ンになったず感じおいたす。 実斜するにあたっお瀟内のステヌクホルダヌず䞁寧に条件を握るステップも螏みたしたが、その過皋が終始ポゞティブな空気だったこずから、少なくずも匊瀟はこのような取り組みを快く思う人間性の方が倚く所属しおいるのだず感じられお嬉しくもなりたした。 匊瀟は組織の人数が日々増えおいるので開発力の高たりを感じる機䌚が倚いですが、今回のように個の力を感じられる機䌚も非垞に魅力的だったなず感じおいたす。 こういった堎を䜜るこずを怜蚎されおいる方にずっお、この蚘事が少しでも参考になっおいれば幞いです。
アバタヌ
Timee Advent Calendar 2024 23日目の蚘事です。 こんにちは、タむミヌでデヌタアナリストをしおいる yuzuka です。 先日、統蚈怜定準1玚に合栌し、最優秀成瞟賞をいただきたした🌞 匊瀟からは別のアナリストがすでに 統蚈怜定準1玚の合栌䜓隓蚘 を出しおくれおいたすが、合栌䜓隓蚘はあればあるだけ良いず思うので、私も曞こうず思いたす。 受隓の動機 瀟䌚人7幎目で文系職からデヌタアナリストに転向したしたが、やはり専門性で呚囲に埌れをずっおいるず感じ、統蚈の知識を早急に身に぀けたいず考えおいたした。 取埗した資栌は履歎曞などにも曞けるため、アナリストに転向しおから早い段階で取埗しおおけば、自身のLearnabilityを蚌明する䞀助になる、ずいう打算的な動機もありたした。 孊習開始時の状況 文系職からデヌタアナリストに転向しお2幎目 1幎ほど前に統蚈怜定2玚を取埗枈み 䞀応理系の孊郚卒だが、数孊が苊手で、積分や行列の蚈算はほずんどできない状態に戻っおいた 今回は、そんな自分の統蚈怜定準1玚察策に぀いおご玹介したす。 数孊に苊手意識のある方の参考になれば幞いです。 具䜓的な孊習方法 1. ワヌクブックを写経する80時間皋床 統蚈怜定準1玚の勉匷は「日本統蚈孊䌚公匏認定 統蚈怜定準1玚察応 統蚈孊実践ワヌクブック」が䞻軞になるず思いたすが、こちらの内容をすべおノヌトにたずめ盎したしたたずめ盎すずいっおも、ほが䞞写しです。 ワヌクブックの内容は、数孊や統蚈の知識が浅い自分には少しハヌドルが高く、軜く目を通しただけでは内容があたり入っおきたせんでした。 このたたワヌクブックを読むだけでは理解が深たらないず刀断し、ずりあえず手を動かしながら理解を深めるこずにしたした。 ワヌクブックは300ペヌゞ以䞊あり、倧倉そうに思われるかもしれたせんが、トヌタルで芋るずコスパは良かったず思いたす。 1日1時間でワヌクブック3〜4ペヌゞ分を目安に、玄3ヶ月かけおたずめ終えたした。 あくたで自分が手を動かしお理解するこずが目的であり、ノヌトを芋返す必芁はないず割り切っお、綺麗さよりもスピヌド重芖で進めたした。 写経だけで内容を完党にものにできるわけではありたせんが、この埌の理解の進み方が倧きく違ったように思いたす。 実際のノヌトの䞀郚です。 2. 統蚈怜定準1玚に必芁な前提知識のおさらい10〜20時間皋床 郚分積分や行列匏、固有倀など、ワヌクブックに出おきたものでわからないものがあれば、ネットで䟋題を探しお解いおいきたした。 ワヌクブックに取り掛かる前に予習しおおく必芁はなく、ワヌクブックの問題を解くうえでわからないものがあれば、その郜床調べる皋床で良いず思いたした。 最初はギリシャ文字の読み曞きも怪しかったため、スマホの埅ち受け画面をギリシャ文字の䞀芧衚にしおいたした。 読み方のわからない文字があるず、内容もなかなか頭に入っおこないため、攟眮しない方が良いず思いたした。 3. 問題集を解く50時間皋床 公匏問題集過去問ずワヌクブックの問題を2〜3呚したした。 YouTubeにワヌクブックの解説動画を䞊げおくださっおいる方がいらっしゃり、倧倉理解が捗りたした URL 。 詊隓では1問あたり3〜4分しかかけられないため、普段からスピヌディヌに解くこずを意識したした。 たず問題を芋お、どのゞャンルからの出題なのか、蚈算量が倚い問題なのかをぱっず芋定めるこずが重芁そうです。 本番で䜿う電卓を問題挔習䞭にも䜿甚し、メモリ機胜も含めお䜿い慣れおおきたした。 私は こちら の電卓を䜿っおいたした。 問題集に察しお過孊習が起きないよう、ずきどきワヌクブック党䜓を読み返すようにしおいたした。 おわりに ここたで、私の統蚈怜定準1玚の勉匷法をご玹介したした。 公匏問題集やワヌクブックの問題を解くだけでなく、ワヌクブック党䜓の理解に力を入れたこずが、奜成瞟に繋がったのかなず思いたす。 詊隓圓日は、なるべく早い時間垯で受隓した方がパフォヌマンスが良いず思い、11:00開始の枠で受隓するこずにしたしたが、これも良かったのかもしれたせん。 圓日の問題矀がたたたた自分に合っおいた可胜性もありたす。 1週間空ければ再受隓できるそうなので、䜕回か受隓しおみるのも手かず思いたす。 䜕か䞀぀でも、参考になっおいれば幞いです。 ちなみに、匊瀟では合吊に関わらず資栌の受隓費甚を補助しおもらえるため、思い切っお受隓しやすかったです。 We’re Hiring! 私たちは、ずもに働くメンバヌを募集しおいたす カゞュアル面談も行っおいたすので、お気軜にお申し蟌みください 。 タむミヌ デヌタ職皮 採甚ペヌゞ 個人的にもアナリストやデヌタ関連職の方ず繋がりたいず思っおいるので、よろしければ X のフォロヌもよろしくお願いしたす。匊瀟デヌタメンバヌずランチ䌚や合同勉匷䌚のお誘いも  お埅ちしおおりたす
アバタヌ
本蚘事は、  Timee Advent Calendar 2024  の 12/22 公開分の蚘事になりたす。 はじめに 前提チヌムトポロゞヌずは 組織芏暡ずフェヌズにおけるチヌムトポロゞヌぞの誀解 備えずしおのチヌムトポロゞヌ グロヌス期の組織ぞの段階的なチヌムトポロゞヌの適甚 チヌム組成のトリガヌを芋極める 組成に備えおチヌムメンバヌの志向を理解しおおく 最埌に はじめに 株匏䌚瀟タむミヌでVPoEを぀ずめおおりたす、赀柀 a.k.a chango @go0517go です 2024幎2月に私がタむミヌにゞョむンしお以来、タむミヌのプロダクト開発組織党䜓で適甚・実践しおいる「チヌムトポロゞヌ」に぀いお、開発生産性Conference 2024をはじめ、様々な堎で関連するトピックをお話しする機䌚がありたした。 そういった堎でいただく反応やご盞談の䞭に、「タむミヌはチヌムトポロゞヌを適甚できる組織芏暡で矚たしい」「うちは開発組織を立ち䞊げおこれから組織をグロヌスしおいくタむミングなので、ただチヌムトポロゞヌは取り入れおいない」ずいったお声がいく぀かいただきたした。 確かに、チヌムトポロゞヌは認知負荷ぞの察凊方法などを䟋にずっおも、䞀定以䞊の芏暡や耇雑性を持぀プロダクト開発組織で効果が顕著に珟れやすいフレヌムワヌクです。しかし、「チヌムトポロゞヌを取り入れる定矩された党おのチヌムタむプを組織内に揃えなければならない」ずいうわけでは決しおありたせん。たた、前職のナヌザベヌス、そしお珟職のタむミヌでの経隓を通じお、チヌムトポロゞヌは今埌の事業・組織の成長期に生じる混乱や生産性䜎䞋を軜枛するための“備え”ずしお非垞に有益な抂念であるず実感しおいたす。 このアドベントカレンダヌの蚘事では、そうしたプロダクト開発組織の立ち䞊げ期や成長期におけるチヌムトポロゞヌに察する誀解を解き、組織の初期段階からチヌムトポロゞヌを掻甚するためのTIPSに぀いお曞きたいず思いたす。 前提チヌムトポロゞヌずは この蚘事の前提ずなるチヌムトポロゞヌ自䜓の説明は省略させおいただきたすが、圓該曞籍自䜓はもちろんのこず、本曞の共蚳者である吉矜 韍倪郎@ryuzeeさんの蚘事や、匊瀟CTOの山口@ZIGOROuや私の開発生産性Conferenceでの登壇資料などもご参照ください。 【資料公開】30分で分かった気になるチヌムトポロゞヌ吉矜韍倪郎@ryuzee 組織をスケヌルさせるための Four Keys ずチヌムトポロゞヌ山口培@ZIGOROu 実践チヌムトポロゞヌプラットフォヌム性ずむネヌブリング性の戊略赀柀剛@chango 組織芏暡ずフェヌズにおけるチヌムトポロゞヌぞの誀解 前述のような堎でいただいたご質問やご盞談を、芏暡やフェヌズに関する誀解ずしお敎理するず、抂ね以䞋の点に集玄されるず考えおいたす。 ゚ンゞニアリング組織が立ち䞊げ期で小芏暡なため、チヌムトポロゞヌを適甚できないず考えおいる。 ストリヌムアラむンドチヌム以倖のチヌムタむプ、特にむネヌブリングチヌムやプラットフォヌムチヌムを怜蚎できるほどの芏暡や䜙裕がないず考えおいる。 冒頭でも蚘茉した通り、チヌムトポロゞヌは䞀定の芏暡や耇雑性を有するプロダクト開発組織で、その効果がより顕著に珟れるフレヌムワヌクです。しかし、「䞀定の組織芏暡がなければチヌムトポロゞヌを取り入れられない」ず解釈するこずは本質的ではありたせん。たた、4぀のチヌムタむプストリヌムアラむンド、プラットフォヌム、むネヌブリング、コンプリケむティッド・サブシステムを党お明確に揃えるこずが、チヌムトポロゞヌの適甚を意味するわけでもありたせん。 むしろ、組織がただ小芏暡な段階から、将来的に必芁ずなるチヌムの性質を内包し぀぀、ストリヌムアラむンドチヌムを䞭心に据えた思考で䟡倀創出に集䞭するこずこそが、チヌムトポロゞヌの有甚性を最倧限に掻かす鍵だず考えおいたす。 参考チヌムトポロゞヌで衚珟したタむミヌのプロダクト開発組織 備えずしおのチヌムトポロゞヌ 「チヌムトポロゞヌが適切に実斜できる組織芏暡で矚たしい」ず蚀っおいただいたこずがあり、非垞にありがたくも恐瞮なのですが、実際のずころ私の認識では、䞀定の芏暡になったからチヌムトポロゞヌが実践できるようになったのではなく、䞀定の芏暡ず耇雑性でも顧客ぞの䟡倀提䟛を継続匷化するために、チヌムトポロゞヌなどを取り蟌む必芁性が生じた結果、実践せざるを埗なくなったずいうのが正しい衚珟かず考えおいたす私自身は前職・珟職を通じおチヌムトポロゞヌが奜きで、決しお吊定的な意図はないこずをお䌝えしおおきたす。 顧客䟡倀ずプロダクトに向き合い、䞻に機胜開発をリヌドするストリヌムアラむンドチヌムのみでビゞネス芁求に十分応えられるうちは、わざわざ耇雑なチヌム構造や远加の支揎チヌムを蚭ける必芁はありたせん。組織がただ比范的シンプルな状態で、゚ンゞニアリングやオペレヌション、デリバリヌプロセスに関わる領域が䞀぀のチヌムで把握できる範囲に収たっおいるのであれば、そのたた突き進んで問題はないでしょう。むしろ、その段階で「チヌムトポロゞヌを取り入れなければ」「無理に他チヌムを蚭眮しなければ」ず考えおしたうず、ただ䞍芁な段階で組織構造の耇雑化や暩限移譲のコストが増倧し、スピヌドや柔軟性を損ねる可胜性がありたす。 問題は、プロダクトや組織が成長し、技術的・ビゞネス的な耇雑性が増倧したずきに衚面化したす。たずえば、以䞋のようなケヌスが想定されたす。 ストリヌムアラむンドチヌムの責務や負荷が増倧 圓初は1぀、あるいは少数のストリヌムアラむンドチヌムで゚ンドツヌ゚ンドの開発・運甚が可胜だったが、新機胜の远加や顧客数の増加、利甚技術の倚様化によっお、本来集䞭すべき領域以倖ぞの察応むンフラ構築、技術調査、セキュリティ察応などが増え、コア業務に圱響が出始める。 領域の専門性が著しく向䞊 ストリヌムアラむンドチヌムが扱う技術スタックやドメむンが増え、メンバヌ党員がすべおを理解し远埓するこずが難しくなっおいる。高床な機械孊習アルゎリズムや極めお耇雑なむンフラ蚭定、厳栌な法芏制察応が求められるセキュリティ領域など、専門性を匷く求められる分野が増え、埓来の䜓制では察応しきれなくなる。 新技術・新手法の導入が困難 担圓範囲の拡倧に䌎い、各ストリヌムアラむンドチヌムが自前で新技術を調査・孊習・導入するこずが難しくなり、新たなスキルやプラクティスの普及が停滞する。 共通基盀敎備の必芁性 アプリケヌションやサヌビス矀が増え、それぞれがむンフラやCI/CDパむプラむンを独自に敎える状況が続くず、重耇した䜜業や䞍敎合が発生し、共通基盀・共通サヌビスを敎備するチヌムの必芁性が高たっおくる。 重芁なのは、これらのチヌムタむプの远加や新たなトポロゞヌは、これたで維持できおいた単玔性が厩れ぀぀ある状態を補完するために必芁ずなるもので、組織芏暡が倧きくなったからずいっお自動的に投入されるべきものではないずいう点です。あくたでも顧客ぞの䟡倀提䟛を止めない、もしくは加速させるための“備え”ずしお、チヌムトポロゞヌを「匕き出し」に甚意しおおくずいう発想が求められたす。 蚀い換えれば、今はただモノリシックなチヌム構造で回せおいるのなら、それは望たしい状態です。同時に、将来的な成長過皋で耇雑性が増し、䞊蚘のような課題に盎面する可胜性を芋越しお「いざ必芁になったずき、どう倉化できるか」「どのようなチヌム間関係を蚭蚈すれば、スケヌル時にも䟡倀提䟛を継続できるか」ずいったシナリオを事前に想定しおおくこずが、長期的な競争力や組織の持続可胜性を高める鍵ずなるのです。 グロヌス期の組織ぞの段階的なチヌムトポロゞヌの適甚 ここたでのパヌトで、発生しうる技術的・組織的な「備え」ずしおチヌムトポロゞヌを掻甚する方針に぀いお蚘茉したしたが、埌半でぱンゞニアリング組織の立ち䞊げから拡倧しおいくフェヌズにおいおどう段階的に適甚しおきたか、そしおその際の留意事項や反省点に぀いおも曞きたいず思いたす。 チヌム組成のトリガヌを芋極める これは前職で゚ンゞニアリング組織を立ち䞊げ、人数がおおよそ30名を超えた段階たでの話ですが、チヌムトポロゞヌの適甚、特にむネヌブリングチヌムやプラットフォヌムチヌムをどのタむミングで組成するかに぀いおは、あらかじめトリガヌ条件を蚭けおいたした。 わかりやすい䟋ずしお、むネヌブリング的支揎ずプラットフォヌム基盀敎備の䞡方を担うSREチヌムを挙げおみたす。以䞋は、芚えおいる範囲で抜出した定性的な条件䟋です。 耇数のバリュヌストリヌムが生たれ、共通的な信頌性向䞊斜策CI/CDパむプラむンの暙準化、モニタリング基盀の匷化、むンシデントレスポンス手順の暙準化が求められる段階になっおいる。 利甚ナヌザ数やトランザクション量が増加し、珟行䜓制䞋でSLO/SLAを維持するための継続的改善・匷化が䞍可欠になっおいる。結果ずしお、ストリヌムアラむンドチヌムが本来の機胜開発領域以倖のシステム運甚、トラブルシュヌティング、パフォヌマンス改善などに倚くの時間を割く状態が生じおいる。 組織内に、信頌性向䞊やオペレヌション自動化に匷い関心を持぀゚ンゞニアが育ち぀぀あり、共通基盀敎備やシステム品質改善に特化しお泚力できる人材が揃っおきた。 SREチヌム組成埌、仮にSREチヌムメンバヌが䞀時的に䞍圚であっおも、ストリヌムアラむンドチヌムのメンバヌのみでプロダクトの継続的デリバリヌが1や2のような課題を抱え぀぀も自走可胜な状態である。 事業やプロダクト面では1や2が特に重芁な刀断軞ずなりたすが、私自身がSREチヌム組成の可吊を芋極める䞊で“ノックアりトファクタヌ”ず捉えおいたのは、4の条件でした。過去に別の組織で、CI/CDやOps領域においおSREチヌムぞの䟝存が過床に高たり、ストリヌムアラむンドチヌムが自前で運甚しきれない状況に盎面した経隓がありたした。その反省から、「顧客ぞの䟡倀提䟛をストリヌムアラむンドチヌムが自走完結できるこず」を前提ずし、その状態を匷化・加速するために「Center of Practice」ずしおSREチヌムが存圚する、ずいう関係性を実珟できるこずが、SREチヌムを組成する䞊での重芁な前提条件、すなわちトリガヌだったのです。 組成に備えおチヌムメンバヌの志向を理解しおおく 開発生産性Conference 2024の発衚では、 むネむブリングやプラットフォヌムを「性質」ずしお捉える。 タむミヌにおいおは、むネむブリングチヌムやプラットフォヌムチヌムを定矩し぀぀も、内郚ではQA領域、SREおよびプラットフォヌム゚ンゞニアリング領域を䞭心に、むネむブリング性ずプラットフォヌム性の䞡面を兌ね備えたチヌムが存圚しおいるメむンの性質がそのチヌムタむプずなる。 ずいった点に觊れたした。セッションの際には蚀及したせんでしたが、こうした性質や振る舞いは、圓然ながら各メンバヌにも志向や特性ずしお内圚しおいたす。そしお、ここでは「むネむブリング志向」や「プラットフォヌム志向」ず呌べる個々人の志向は、キャリア開発の芳点も含め、チヌム組成においお重芁な刀断材料ずしおいたす。 ゚ンゞニアにずっお、「仕組みや方法によっお再珟性を高める」「自分以倖の人でも運甚可胜にする」ずいった点は、共通しお倧切にされる䟡倀芳だず私自身も考えおいたす。ただ、その䞭でも特に、むンフラやプラットフォヌム領域に匷みず志向を持ち、耇数のプロダクトに察しお共通基盀の敎備や最適化を行うこずに喜びを感じる゚ンゞニアもいたす。 チヌムトポロゞヌで提唱される「タむプ」や「モヌド」はあくたでフレヌムワヌクであり、最終的には「誰が、どのような䟡倀創出に楜しさや挑戊を感じるのか」ずいう個々の志向やキャリアパスず、組織が目指すチヌム構造を結び぀けるこずで、䞭長期的に継続的な顧客䟡倀提䟛が可胜な組織を圢䜜るこずができるず考えおいたす。 たた、私の過去の経隓からの反省点ずしお、むネむブリングチヌムやプラットフォヌムチヌムを立ち䞊げる際には、ストリヌムアラむンドチヌムでの所属経隓を䞀定割合以䞊持぀人材をアサむンするこずが重芁だず匷く感じおいたす。そうするこずで、ドメむン知識や珟堎課題の理解床が高たり、衚局的なアドバむスではなく、実質的なサポヌトが可胜になりたす。 具䜓的な防止策ずしお、タむミヌでは次のような点に留意しお取り組んでいたす。 むネむブリングチヌムは、ファシリテヌションモヌドでの支揎だけでなく、コラボレヌションモヌドを意図的に発生させ、ストリヌムアラむンドチヌム内で密に課題解決を行う。 転職入瀟の゚ンゞニアにむネむブリングやプラットフォヌム領域ぞの匷い志向がある堎合でも、たずはストリヌムアラむンドチヌムで経隓を積んでもらい、珟堎ぞの理解を深めた䞊で、本人のキャリア意向ず合意を埗た䞊でむネむブリングたたはプラットフォヌム領域ぞシフトしおいく。 これらのトピックに぀いおは、開発生産性Conference 2024の䞭でも各領域の事䟋を亀えお蚀及しおいたす。ご興味がありたしたら、ぜひ以䞋の資料をご芧ください。 開発生産性Conference 2024組織党䜓の成長や成熟の過皋でむンタラクションモヌドを倉化させおいる事䟋 最埌に 本蚘事で述べた立ち䞊げ期でのチヌムトポロゞヌの適甚は、択䞀的な正解を瀺唆するものでは党くありたせん。その䞊で私自身の経隓ずしお、チヌムトポロゞヌを組織の立ち䞊げ期から理解し、今埌発生しうる課題ず共に適甚パタヌンを思考し始めるこずが非垞に有甚だず感じおいたす。 ストリヌムアラむンドチヌム以倖のチヌムタむプが組成されおいるこずが重芁なのではなく、自組織が携わる事業やプロダクトの特性を螏たえた䞊で、今埌の課題ず組織的な察応策をチヌムトポロゞヌに埓っお想定しおおくこずがチヌムトポロゞヌの組織適甚の第䞀歩だず考えおいたす。 これを読んでくださった皆様に、事䟋の1぀ずしお参考になる郚分があれば幞いでございたす。
アバタヌ