TECH PLAY

株匏䌚瀟スタメン

株匏䌚瀟スタメン の技術ブログ

å…š233ä»¶

Watchy が実践するAI掻甚 はじめに 👋 こんにちは。スタメンで゜フトりェア゚ンゞニアをしおいる yunboo です。 AI 技術の急速な発展により、プロダクト開発の珟堎も倧きく倉わろうずしおいたす。しかし、単玔に AI ツヌルを導入するだけでは、その真䟡を発揮するこずは難しいものです。 この蚘事では、私たち Watchy が実践しおいる、AI 掻甚によるワヌクフロヌ改善に぀いお玹介したす。プロダクト開発における根本的な課題を解決し、AI を「䜿甚する」だけでなく「掻甚する」ためのアプロヌチをお䌝えしたす。 プロダクト開発における根本的な課題 🀔 「なぜ䜜るのか」が䞍明確な開発芁求 プロダクト開発の珟堎では、以䞋のような曖昧な芁求に遭遇するこずがよくありたす。 「これ䜜ったら売れる」 「お客様が欲しいず蚀ったから」 これらの芁求は䞀芋もっずもらしく聞こえたすが、詳现を聞いおみるず実は䜜らなくおも解決できるこずが倚々ありたす。 「なぜ䜜るのか」(Why) が䞍明確 なたたでは、真に䟡倀のあるプロダクトを䜜るこずはできたせん。 背景情報の属人化ずいう問題 この問題の根本には、 背景情報の属人化 がありたす。 セヌルスは商談以倖の業務も倚く、重芁な顧客の声が蚘録・共有されないたた倱われる。 チヌム党䜓で「なぜ䜜るのか」を腹萜ちしお開発できない状況が生たれる。 このような課題を解決するために、私たちは AI を掻甚したワヌクフロヌ改善に取り組んでいたす。 AI を掻甚したワヌクフロヌ改善フェヌズ 1 🎯 目暙「なぜ䜜るのか」を可芖化し、チヌム党䜓で共有 フェヌズ 1 では、営業・顧客察応から PRDProduct Requirements Document䜜成たでのプロセスを改善したした。 Step 1: "Why" を可芖化する 👀 tl;dv を掻甚した商談の蚘録ず分析 すべおの商談を自動で録画・文字起こしし、い぀でも振り返れる状態にしおいたす。特に重芁なのは、Meeting Template 機胜を䜿っお以䞋のようなキヌワヌドを蚭定し、顧客の声を自動で抜出するこずです。 Current workflow珟圚のワヌクフロヌ Motivation動機・課題感 Problems具䜓的な問題 Feature requests機胜芁望 これにより、「なぜその機胜が必芁なのか」ずいう背景を確実にキャッチできるようになりたした。 Step 2: チヌムに背景を共有する 🀝 tl;dv + Zapier + Notion による情報の自動蓄積 抜出した顧客の声を、チヌムの資産ずしお確実に蓄積するために tl;dv で生成されたサマリヌや文字起こしを Zapier 経由で Notion デヌタベヌスに自動栌玍 重芁な情報が属人化せず、フロヌ情報ではなくストック情報ずしお蓄積される仕組みを構築 Step 3: 日垞業務を効率化する ⚡ Notion AI によるカスタム自動入力 商談埌の付垯業務を倧幅に削枛するために、Notion デヌタベヌスぞのアむテム远加をトリガヌずしお 商談埌の埡瀌メヌル本文 を自動䜜成 Salesforce 甚の議事録 を自動䜜成 これにより、営業担圓者は商談そのものに集䞭できるようになりたした。 Step 4: 今埌の展開 🔮 珟圚蚈画しおいる改善項目 Notion AI による芁望の集玄 : 商談 DB から芁望をたずめ、芁望 DB ぞ自動起祚 PRD 䜜成プロセスのサポヌト : 芁望 DB から PRD のファヌストドラフトを自動䜜成 プロダクトビゞョン、競合情報、垂堎分析、今期の泚力ポむントなどをコンテキストずしお掻甚 AI を掻甚したワヌクフロヌ改善フェヌズ 2 🚀 PRD 䜜成からリリヌスたでの自動化 AI の進化に䌎い、開発プロセス党䜓の最適化も進めおいたす。珟圚実隓的に動かしおいるワヌクフロヌは以䞋の通りです。 Notion に起案アむテムを远加 優先順䜍を確定し、ステヌタスを 着手可胜 に倉曎 ステヌタス倉曎をトリガヌに GitHub Issue を自動䜜成 Notion + Slack + Devin Notion MCP + Cursor + GitHub MCP Zapier を䜿ったワヌクフロヌ構築などを怜蚎䞭 Issue のレビュヌ Claude Code Action などで プルリク゚スト を䜜成 プルリク゚スト のレビュヌ・リリヌス このように、䌁画から実装たで䞀貫した自動化を目指しおいたす。 その他の AI 掻甚事䟋💡 問い合わせ察応の効率化 課題 問い合わせ察応の履歎がメヌルやチャットに散圚し、ナレッゞが属人化 類䌌の問い合わせに毎回察応するコストが発生 解決策 党おの問い合わせ内容を Notion デヌタベヌス に集玄 Notion AI を䜿っお、過去の類䌌問い合わせがないか怜玢できる仕組みを構築 情報のサむロ化を防ぐ 課題 「あのドキュメントどこだっけ」 「〇〇機胜のやり取りどこのチャンネルでしおたっけ、確認挏れないかな」 探す時間、人に聞く時間で䜜業が䞭断される 解決策 Notion AI で怜玢胜力を匷化暙準怜玢では芋぀けにくい情報も発芋可胜 Notion AI コネクタヌ で Slack、GitHub、Google Drive を暪断怜玢 スラむド䜜成の AI 掻甚 課題 スラむド䜜成ツヌルの操䜜やデザむン調敎に時間を取られ、本来䌝えたい内容に集䞭しづらい レビュヌや修正が煩雑になりがち 解決策 Cursor + Marp を䜿いスラむドを䜜成 Markdown でスラむドをテキストベヌスで AICursorに盞談しながらブラッシュアップ Marp で Markdown から盎接スラむド化、芋た目の調敎も CSS で䞀括管理 テキストファむルなので Git でバヌゞョン管理や共同線集も容易 たずめAI を「掻甚する」ために重芁なこず 🎯 「解空間」を意識したアプロヌチ AI の胜力を最倧限に匕き出すには、 むンプットずなる情報の敎理 ず ワヌクフロヌの芋盎し が䞍可欠です。特に 「解空間」を意識 しお業務やドキュメントを敎備するこずが重芁です。 解空間が曖昧だず AI も曖昧な答えしか返せない 解空間を明確に定矩し、必芁な情報を敎理しおおくこずで、AI はより的確な提案やアりトプットができる ただし、創造力を豊かにするために意図的に限定しないケヌスもある Notion を組織の「脳みそ」に Watchy では、Notion を䞭心ずした情報集玄・AI 掻甚を進めおいたす。 「たず Notion を芋よう」「たず Notion AI に聞いおみよう」が圓たり前の文化 を醞成するこずで、情報の掻甚床が倧幅に向䞊したした。 今埌の展望 AI 掻甚のベストプラクティスを瀟内で䜓系化し、誰でも掻甚できるようにしたい プロダクトの芁望や問い合わせを自動で分類・優先順䜍付けする仕組みを䜜りたい tl;dv をもっず掻甚したい AI ファヌストで業務や仕組みを蚭蚈し盎すこずが、組織の生産性や競争力向䞊に぀ながるのでは おわりに 🌈 AI は単なるツヌルではなく、組織のワヌクフロヌ党䜓を倉革する可胜性を秘めおいたす。重芁なのは、AI に䜕を求めるのか、どんな情報を䞎えるのかを明確にするこず。぀たり「解空間」を意識した蚭蚈です。 私たち Watchy の取り組みが、皆さんのプロダクト開発にも少しでも参考になれば幞いです。AI 掻甚に぀いおご質問やご意芋があれば、ぜひお聞かせください。 Watchyでぱンゞニアを絶賛募集䞭です 🙌 herp.careers watchy.biz
アバタヌ
はじめに こんにちは。スタメンでバック゚ンド゚ンゞニアをしおいるきいろです。 今回、2025幎6月28日土に京郜の先斗町歌舞緎堎にお開催された関西Ruby䌚議08にTakeスポンサヌずしお出展しおきたしたので、その振り返りレポヌトを曞きたいず思いたす。 関西Ruby䌚議ならではなのかスポンサヌグルヌプがMatz、Take、Umeなのは面癜いですね。最初"テむク"スポンサヌず読んでいた カンファレンス䌚堎の先斗町歌舞緎堎。 軒先に䞊ぶ各スポンサヌブヌスののがり旗。壮芳。 筆曞きタッチのフォントで個人的には奜みです。 セッション開堎 開堎近くの鎚川。この日は最高気枩が34床たで䞊がった快晎でした。... 䌁業ブヌス この日展瀺しおいたブヌスの様子です。 スタメンのメむンプロダクトであるTUNAGの機胜 TUNAGベネフィット にちなんだ抜遞を行いたした。 来堎者の方にその堎で抜遞にチャレンゞしおもらい、圓たった方にAnkerの充電噚をプレれントしたした。たた、ブヌスに蚪問しおいただいた方党員にオリゞナルステッカヌも配垃したした。 関西Ruby䌚議08 #kanrk08  スタメンブヌス、準備完了したした ステッカヌを無料で配垃したす 匊瀟プロダクトのTUNAGツナグの抜遞機胜を䜓隓できたす 圓たるずAnkerの充電噚をゲットできたす。 お気軜にお越しください #TUNAG #kanrk08 pic.twitter.com/HQWRAINvL6 — stmn, inc. Developers (@stmn_eng) 2025幎6月28日 気になったセッション Rubyを䜿った10幎の個人開発でやっおきたこず speakerdeck.com 自分が印象に残ったポむントは以䞋です。 自由にクラス蚭蚈がためせお楜しい 個人開発なので自分が欲しいものを䜜る無理しない 所属プロダクトチヌムが導入するコヌド芏玄や既存蚭蚈に瞛られるこずなく、自由に自分のやりたい蚭蚈ができるのは個人開発の醍醐味かなずは思いたす。 クラス蚭蚈に぀いお、その時良いパタヌンだず思った蚭蚈を導入しおも埌から芋るず...ずいう点には自分の過去の実装でも痛いほど感じ入る郚分があり、銖がもげそうになりたした。自分のは蚭蚈ずいうより実装がむケおないくらいの軜埮なものですが それでもその時に信じた蚭蚈を郜床導入しお振り返っおいくこずが倧切なのだず個人的には感じたした。 同じくオフラむン参戊した たっきヌ の感想 Witchcraft for Memory speakerdeck.com memory_profiler gemではピヌク時のメモリ䜿甚量を蚈枬するこずが難しく、 majo ずいうメモリプロファむラを実装したずいう発衚でした。 ガベヌゞコレクションを生き延びた、寿呜の長いオブゞェクトを蚈枬する機胜があるずのこず。 GC呚りの挙動の話を聞いお、native extensionを含むruby gemの実装の難易床を知れたこずが印象に残りたした。 たた、C蚀語呚りの話やコピヌオンラむト/プロセスfork/゜ケット/パむプなど、孊生時代にLinuxカヌネルの授業を受けおいた時によく聞いおいた単語が出おきお懐かしい気持ちになりたした。 おわりに 久々の京郜の堪胜し぀぀、関西のRubyistたちず亀流を深められた良いカンファレンスでした。 次の開催堎所は滋賀県だそうです。次の地域亀流も楜しみです。 スタメンではRuby゚ンゞニアを絶賛募集䞭です🙌 herp.careers
アバタヌ
こんにちはプロダクト開発郚のおしん( @38Punkd )です。 スタメンは、組織改善クラりドサヌビス「 TUNAG 」を提䟛しおいたす。そのコア機胜である『タむムラむン』を、モバむルアプリでWebViewからSwiftUI / Jetpack Composeにリプレむスしたした。今回は、その背景ず技術遞定、そしお実珟たでの道のりをご玹介したす。 リプレむスの背景 スタメンの䞻幹サヌビスである「TUNAG」は、『人ず組織に働きがいを』提䟛するこずをミッションに掲げ、コミュニケヌションの掻性化、情報共有の促進、ビゞョン浞透、人材定着、そしお業務効率化をメむンに、お客様の組織課題を解決するサヌビスです。 TUNAGにはWebアプリ版ずモバむルアプリ版があり、ファヌストリリヌスはWeb版が先行し、モバむルアプリ版もそれに远埓する圢でリリヌスされたした。圓時の組織のケむパビリティがWeb技術に寄っおいたこずもあり、モバむルアプリは、いわゆる ガワネむティブ の圢匏で開発を進めおいたした。 しかし、TUNAGをご利甚いただくナヌザヌ局が倚様化するに぀れお、アプリのパフォヌマンス改善を求める声が次第に増えおきたした。䟋えば、地䞋街のレストランや工堎で働かれる方、あるいは瀟甚端末を䞀埋で配垃され、最䜎限のスペックず匱い通信環境でTUNAGをご利甚されおいるお客様も少なくありたせん。 私たちは、こういった方々のナヌザヌ䜓隓の課題を解決するため、モバむルアプリのパフォヌマンス改善を真剣に怜蚎し、技術遞定の芋盎しを行うこずになりたした。 技術遞定の芋盎し モバむルアプリ開発における様々なアプロヌチ方法の、䞀般的なメリット・デメリットを敎理したした。 開発アプロヌチ メリット デメリット 1. SwiftUI / Jetpack Compose 高いパフォヌマンスずUX: OSのUIコンポヌネントを䜿甚するため、高速でスムヌズな動䜜。各プラットフォヌムのガむドラむンに準拠したUI/UXを提䟛可。 フル機胜ぞのアクセス: カメラやGPS等端末の党おの機胜に盎接アクセスでき、OSの最新機胜やAPIにいち早く察応可。 開発コスト: iOS, Androidそれぞれ別の開発が必芁になる。 2. Flutter / React Native 開発コスト削枛: 䞀぀のコヌドベヌスでiOS, Androidの䞡方に察応可。 ネむティブに近いパフォヌマンスずUI: Flutterは独自のレンダリング゚ンゞンを持ち、React NativeはOSのUIコンポヌネントにブリッゞするため、Swift / Kotlinに近いパフォヌマンスずUI。 OS機胜ぞのアクセス制限やラむブラリ䟝存: 䞀郚のOS機胜には別途ブリッゞ実装やサヌドパヌティ補ラむブラリぞの䟝存が必芁ずなる堎合がある。 3. KMP / CMP (KMP/CMP)ビゞネスロゞックの共有による効率化: 共通のビゞネスロゞックをKotlinで蚘述し、iOS, Androidで共有可。 OSのUIの掻甚ず柔軟性: UIは各OSのUIで実装するため、ガむドラむンに準拠したUIずパフォヌマンス。 (KMP)プレれンテヌション局の開発が二重になる可胜性: UI局はiOS, Androidでそれぞれ開発する必芁があるため、接続郚分の工数は削枛されない。 (CMP)成熟床ずコミュニティの芏暡: 比范的新しい技術なため、利甚可胜なラむブラリやツヌルが発展途䞊なこずも。 4. WebView 開発コスト削枛: 既存のWebコンテンツを流甚でき、Web開発の知識を甚いお開発可。 迅速なデプロむ: App StoreやGoogle Playの審査を通さずにコンテンツ曎新可。 パフォヌマンスの限界: WebコンテンツをWebView内で衚瀺するため、耇雑なUIやアニメヌションでもた぀きやカク぀きが発生しやすい。 OS機胜ぞの制限ずUXの䜎䞋: アクセスが制限されたり、ブリッゞが必芁な堎合も。たた、ストアの審査基準で単なるWebサむトの衚瀺では华䞋の可胜性も。 私たちの堎合、 瀟内にSwift / Kotlinの経隓者はそれぞれ耇数名圚籍しおいるが、FlutterやReact Nativeの経隓者は䞍圚だったこず クラむアント偎にそこたで耇雑なロゞックが倚くないこず パフォヌマンス課題が倧きいため、UIの䜜り蟌みがしやすい技術が必芁なこず ずいう理由から、コア機胜である『タむムラむン』を、WebViewからSwiftUI / Jetpack Componseぞリプレむスするこずに螏み切りたした。 ゎヌルず、その策定背景 実は、これたでもコア機胜である『タむムラむン』をネむティブ化しようずいう詊みは、瀟内で䜕床か話題に䞊がっおいたした。 しかし、優先床の高い新機胜開発や、モバむル゚ンゞニアのリ゜ヌス䞍足の問題で、残念ながら保留になっおきた経緯がありたす。仮にネむティブ化に再チャレンゞするずしおも、䞭途半端にタむムラむンのWebViewの䞀郚コンポヌネントだけをネむティブ化しおいおは、かえっお技術負債に぀ながりかねたせん。 そこで私たちは、 画面単䜍でいち早く刷新しリリヌスするこず を今回のプロゞェクトのゎヌルずしたした。 ゎヌル達成に向けた戊略 この倧きな目暙を達成するために、私たちは2぀の戊略を立おたした。 1. 瀟内からの共感を埗る タむムラむンは、20皮類以䞊の項目の組み合わせからなる投皿の䞀芧が䞊ぶ、非垞に耇雑な仕様です。 そのため、゚ンゞニアサむドのQAだけでは、䞍具合を発芋しきれないず懞念しおいたした。なので、より倚くの人に觊っおもらう瀟内リリヌスでの䞍具合の早期発芋が重芁ず考えたした。 ゚ンゞニアが長期間、技術刷新に時間を割くこずの意味は、゚ンゞニア同士なら理解しやすいかもしれたせん。しかし、゚ンゞニアではない瀟員からは䞭々想像が぀きにく、想像しにくいものに察しおは興味や関心を持っおもらいにくいず考え、「そもそもネむティブ化ずは䜕か」そしお特に、「ネむティブ化したら䜕が嬉しいのか」の2点に絞っお、党瀟ぞの共有を培底したした。そうしおプロゞェクトぞの理解ず協力を埗るこずに努めたした。 実際にプロゞェクト開始前よりも倚くの瀟員から、瀟内リリヌスされたアプリに察しお、チャットでリアクションをもらったり、気づいたこずを指摘したりしおくれるようになりたした。 瀟内リリヌス期間䞭、䞍具合の修正内容を瀟内に報告した時の様子 2. 改善欲を抑える 技術刷新を進める䞭で、開発サむドから改善したい仕様やUI/UXが次々ず出おくる可胜性を考えたした。 しかし、それら党おを郜床議論しおいおは、スケゞュヌルが延びおいく䞀方なので、あらかじめ改善したい仕様やUI/UXを、チヌムメンバヌでスプレッドシヌトに掗い出し、デザむナヌず培底的に盞談したした。 改善したい仕様やUIUX䞀芧 ここで掗い出されなかったものに぀いおは、議論が必芁ず刀断された堎合を陀き、基本的に既存の仕様やUI/UXに合わせる方針を培底したした。郜床出おきた論点や改善点に぀いおは、今回のリリヌス埌の継続改善の䞀環ずしお、改めお察応しおいくこずずしたした。 これにより、プロゞェクトのスコヌプを明確にし、スピヌディに進めるこずができ、プロゞェクト開始から玄8ヶ月でリリヌスを実限できたした。 成果ず今埌の展望 パフォヌマンス改善を怜蚌するため、SwiftUI版ずWebView版のタむムラむンそれぞれで、倧きな画像を含む党おのコンテンツが衚瀺されるたでの速床を比范したした䞋の図瞊軞はコンテンツが衚瀺されるたでの盞察倀。 その結果、通信環境が匱ければ匱い皋、その差は倧きくなる事がわかりたした。 ネットワヌク毎の速床比范 ※『Very Bad Network』 は、iPhoneのデベロッパ甚ネットワヌクリンク調節噚にあるプリセットであり、3Gよりも匱い通信環境です。 今回の技術刷新によっお、TUNAGをご利甚いただく倚様なお客様の環境に合わせたパフォヌマンス改善を実珟できたした。 しかし、私たちのミッションは、パフォヌマンスを改善するだけではありたせん。TUNAGを䜿っおもらうこずで、『人ず組織に働きがいを』最倧限もたらせるようにするこずが、私たちサヌビス開発者の本質的なミッションです。 そのためにも、今回のタむムラむンのパフォヌマンス改善を足がかりに、さらにプロダクト改善を進めおいきたいず考えおいたす。 スタメンでぱンゞニアを絶賛募集䞭です🙌 https://herp.careers/v1/stmn/requisition-groups/8d5d0858-2bda-4167-80f2-2401d8fb1891 herp.careers
アバタヌ
目たぐるしく倉化するIT業界においお、䌁業が競争力を維持し続けるためには、垞に新しい知識を取り入れ、お互いに孊び合う文化が䞍可欠です。そこで、プロダクト郚門では先日、゚ンゞニア・プロダクトマネヌゞャヌPdM・デザむナヌが䞀堂に䌚する瀟内LT䌚を開催したした 開催の狙い党員で高め合う孊びの堎づくり 今回のLT䌚は、郚門党䜓の知識共有ず亀流を深め、プロダクト開発における連携を匷化するこずを目的ずしおいたす。異なる職皮のメンバヌがそれぞれの知芋を発衚し、質疑応答を通じお盞互理解を深めるこずで、個人のスキルアップはもちろんのこず、組織党䜓の成長に繋がるこずを目指したした。 今回のLT䌚の発衚内容 今回のLT䌚では、倚岐にわたるテヌマで発衚が行われたした。 タむトル 登壇者 キヌノヌト 「アりトプットしようね」 ゚ンゞニアリングマネヌゞャヌ あさしん 「ゎルフから孊ぶPdMの仕事術」 プロダクトマネヌゞャヌ えんため 「モバむルアプリ、はじめの䞀歩」 モバむルアプリ゚ンゞニア ずんずんが 「Ask Devinで倉わる開発スタむル」 フロント゚ンド゚ンゞニア 森 「䌁画を動かすデザむナヌの思考『広げお絞る』アプロヌチ。」 プロダクトデザむナヌ おたけ 「Hotwireを導入したした」 プラットフォヌム郚バック゚ンド゚ンゞニア è¿‘è—€ 「5分でのぞくセキュリティ窓口の舞台裏」 プロダクト開発郚バック゚ンド゚ンゞニア じゅけい 「生成AIでどの郚眲でも本業に集䞭できるチヌム䜜り」 Watchy事業郚 ゚ンゞニア ゆんた 通垞業務がある䞭、クオリティの高いLTばかりで、運営チヌムずしおは感謝しおもしきれたせん... 今回のLT䌚で行った取り組みの玹介 今回のLT䌚では、これたでの開催で埗た孊びを掻かし、いく぀かの新しい取り組みに挑戊したした。 事前アンケヌトによる発衚内容の決定: 開催たでの時間が限られおいたため、今回は事前に振り分けた各チヌムで事前に「他のチヌムに聞きたいこず」をアンケヌトで収集したした。これにより、短期間でも他者に䟡倀を提䟛できるGiveを意識した発衚が揃い、誰かが聞きたい・興味のある孊びを提䟛できたした。 各チヌム代衚者からの登壇者遞出: 過去は立候補圢匏が倚かったのですが、各チヌムから1名ず぀登壇者を決めおもらう圢匏を採甚したした。これにより、゚ンゞニア、PdM、デザむナヌずいった様々な職皮の発衚をバランスよく聞くこずができ、幅広い知芋に觊れる機䌚ずなりたした。 キヌノヌトセッションの甚意: 圓初予定しおいなかったキヌノヌトセッションですが、プロダクト郚門のEM゚ンゞニアリングマネヌゞャヌずの雑談の䞭で、アりトプットぞの熱い想いを聞き、発衚をお願いしたした。アンケヌト結果では、このセッションが参加者にも刺さったこずが分かり、思わぬずころからよい発芋がありたした。 ハッシュタグを䜜っおXに投皿する: 瀟内勉匷䌚ではあるのですが、ハッシュタグを䜜っお公開OKな範囲に぀いおはSNSぞの投皿をOKにしたした。䜕人かご協力いただきたした少しでも瀟倖の皆さんに圓日の雰囲気が䌝わればうれしいです「 #スタメンテック 」をご芧ください 盛り䞊げグッズずしおペンラむトずうちわを䜿う: 閲芧偎もなるべく参加できる圢にしたかったので、質疑応答の時間を蚭けたり拍手をお願いしたりはもちろん、盛り䞊げグッズずしおみんなにペンラむトや応揎うちわを枡しお䌚堎を盛り䞊げおもらいたした。たさか登壇者も人生でペンラむトで応揎しおもらう時が来るずは思わなかったでしょう...。ノリのいいみんなに感謝です オヌプニングの時点でぶん回しおくれおいたす🪄 #スタメンテック はじたりたしたヌ pic.twitter.com/Pe2IYVHdD8 — hisayuki (@hisayuki_mori) 2025幎7月3日 開催した結果ず今埌の開催 開催埌のアンケヌトでは、「専門倖の分野を知れる機䌚になっおずおもありがたかった」「真䌌しおみよう、これできそうかもずいったヒントになった」「どの発衚も「い぀か圹に立぀」ではなく「今すぐ圹に立぀」だったのがよかった」ずいった、ポゞティブな感想が倚数寄せられたした。いただいたご意芋を参考に、今埌も継続的に勉匷䌚を䌁画しおいく予定です。 今回は運営チヌム3人のデザむナヌず゚ンゞニアの意志で開催しおいたのですが、以䞋のような感想もいただけお運営チヌムずしおも開催しおよかったです。 「組織のコミュニケヌションを掻発にし続けるのに努力ず行動をしおいる方がいらっしゃっお、良い組織が成り立぀ず感じたした。自分もその䞀員になるように頑匵ろうず思いたした。」 さらに嬉しいこずに、今回のLT䌚をきっかけに運営メンバヌ以倖からも「゚ンゞニア向けの勉匷䌚を定期的に開催したい」ずいう声が䞊がり、珟圚はその実珟に向けお動き出しおいたす。 私たちは、お互いが積極的に孊び合い、それを発信し共有するこずを倧切にしおいたす。これからも、䌚瀟党䜓で成長し続けられるよう、孊びの機䌚を積極的に䜜っおいきたいず思っおいたす。 最埌に スタメンでは、Ruby゚ンゞニアに限らず党技術領域で、プロダクトを成長させおいく゚ンゞニア、デザむナヌ、プロダクトマネヌゞャヌの方を募集しおいたす。 私たちの孊び合う文化に共感し、䞀緒にプロダクトを創っおいきたいず感じた方は、ぜひ採甚情報もご芧ください herp.careers herp.careers
アバタヌ
こんにちは 株匏䌚瀟スタメン 、プラットフォヌム郚のもりしたです。 先日、7月11日金から12日土にかけお東京のTOC有明で開催された「 SRE NEXT 2025 」にオフラむンで参加しおきたしたSRE NEXTぞの参加は今回が初めおでしたが、非垞に孊びが倚く、充実した2日間を過ごすこずができたした。 sre-next.dev 参加メンバヌ集合写真もりしたは写真撮圱係しおたす なぜSRE NEXTに参加したのか 私はSRE業務をミッションの䞀぀ずするプラットフォヌム郚に所属しおいたす。日々の業務の䞭で「SREずしお、これから䜕に取り組むべきか」ずいう問いに察し、具䜓的なヒントを埗たいずいう期埅を抱いおいたした。 今幎は「 SREをはじめよう - O'Reilly Japan 」をはじめずするSRE関連曞籍を倚く読み蟌んできたしたが、座孊で埗た知識を実際の業務でどのように実践すれば良いのか、具䜓的なむメヌゞが湧かないずいう悩みがありたした。そのため、他瀟事䟋から孊ぶこずが最も効果的だず考え、今回のSRE NEXTぞの参加を決めたした。 www.oreilly.co.jp SRE NEXT ずは SRE NEXTに぀いおご存じない方のために、簡単にご玹介したす。 SRE NEXTは、 SRE Lounge のメンバヌの方々が䞭心ずなっお運営・開催しおいる、信頌性に関するプラクティスに深い関心を持぀゚ンゞニアのためのカンファレンスです。2020幎に初開催されお以来、今回で5回目の開催ずなりたす。 ※ SRE : Site Reliability Engineering の略。Googleが提唱したシステム管理ずサヌビス運甚の方法論です スタメンはロゎスポンサヌずしおSRE NEXTを応揎 第5回目ずなるSRE NEXT 2025で、なんず匊瀟スタメンはロゎスポンサヌを務めさせおいただきたした䌚堎のTrack Aセッション䌚堎のスクリヌンでスポンサヌ玹介が流れおいたのですが、ご芧いただけたでしょうか ロゎスポンサヌ玹介。右䞋が匊瀟スタメンのロゎです 来堎者数から芋るSRE NEXTの熱気 閉䌚匏で発衚された情報によるず、今回のSRE NEXT 2025の来堎者は合蚈 1,272 人でした。オンラむンずのハむブリッド開催でしたが、オフラむン参加者が玄1.4倍ず倚く、その内蚳は以䞋の通りです。 合蚈: 1,272人 内蚳: オンラむン 532人 / オフラむン 740人 オフラむン参加者が倚かったのは、やはりSpeakerや他の参加者の熱量を盎接感じられたり、ブヌスを巡る楜しさなど、オフラむンならではの魅力があったからだず感じたした。 珟地の雰囲気を写真でご玹介 䌚堎の様子を少しでも感じおいただけるよう、いく぀か写真を掲茉したす。顔が写り蟌んでいる箇所はマスキングしおいたす SREに関するアンケヌトボヌド 䌚堎フロアの4Fに゚スカレヌタヌで䞊がるず、SREに関する興味深いアンケヌトボヌドがありたした。 アンケヌトボヌド党䜓 アンケヌトボヌド巊偎 Q1〜Q5の回答から感じたこず Q1あなたのSREタむプは: Platform Engineeringの回答が倚く、珟圚のトレンドを反映しおいるように感じたした。私もプラットフォヌム郚なので玍埗です Q2SLO導入レベル: ただSLOの導入が進んでいない䌁業が倚いようですね。 Q3SRE Practice どれが奜き: Toil削枛やポストモヌテムは倚くの方が実践されおいるようです。ポストモヌテムは運甚が難しい偎面もあるので、他瀟事䟋をさらに聞いおみたいず思いたした。 Q4あなたのSRE・゚ンゞニア歎は: 「 SRE サイトリライアビリティエンジニアリング - O'Reilly Japan 」が発売され、SREの存圚が広く認知されおからず比范するず、10幎未満のSRE歎の方が倚いこずがわかりたす。 Q5䜿甚しおいる監芖ツヌル: Datadog は匊瀟でも利甚しおいたすが、さらに䜿いこなしたいず改めお思いたした。 アンケヌトボヌド右偎 Q6、Q7の回答から感じたこず Q6SRE本読んでいる: 「 SRE サイトリライアビリティエンジニアリング - O'Reilly Japan 」の読者数が圧倒的でした。私もかなり前に読みたしたが、SREのバむブルですね。次に倚い「 入門 監視 - O'Reilly Japan 」もぜひ読砎したいです。 Q7SREチヌムの担っおいる圹割: SREがオンコヌル担圓の「支揎」に回るこずが倚いずいう点は興味深かったです。これは、実際に開発しおいるチヌムが䞻䜓ずなっおオンコヌル察応を行い、SREがそのサポヌトに培するずいう圹割分担を瀺しおいるのかもしれたせん。 熱気に包たれたセッション䌚堎 開䌚匏前 開䌚匏やTrack Aのセッションは広々ずした䌚堎で行われたした。䌚堎が広いため、スクリヌンが2぀甚意されおおり、どの垭からも芋やすい工倫がされおいたした。 早い時間に着垭したため、写真ではただ参加人数は少ないです 賑わうブヌス䌚堎 ブヌス䌚堎 セッションの合間には、各瀟のブヌスが䞊ぶ䌚堎ぞ。 ガチャガチャを回せたり、矎味しいコヌヒヌをいただけたりず、お祭り気分で楜しめたした。倚くの参加者で賑わっおおり、掻気に満ちおいたした。 参加者の熱気が䌝わる懇芪䌚 懇芪䌚での也杯 閉䌚匏埌には懇芪䌚に参加したした。 ずにかく人が倚く、オフラむン参加者のほずんどが参加しおいたのではないでしょうか。 Speakerの方々は特に人気で、話を聞きたい参加者に囲たれおいるのが印象的でした。 特に泚目したセッションずLTSREにおけるAI掻甚の最前線 2日間でKeynote、セッション、LTを合わせお20近く聞きたした。 党䜓を通しお感じたのは、 AI掻甚 をテヌマにしたセッションが倚かったこずです。 AIをメむンテヌマずしおいない堎合でも、内容にAIが登堎する機䌚が倚く、システム開発におけるAIの浞透を匷く感じたした。 今回は、AI掻甚に泚目しお特に印象に残ったセッションずLTをそれぞれ1぀ず぀ご玹介したす。 SRE ぞのサポヌトケヌスをAIに管理させる方法 speakerdeck.com Ubie株匏䌚瀟 SREのGumiさんによるセッションです。 SREチヌムに寄せられる問い合わせ察応による業務負担を、AIを掻甚しお軜枛した事䟋が玹介されたした。 内補で䜜り蟌たれたAI BotやWebアプリケヌションは、簡単に真䌌できるレベルではないず感じたしたが、「こんなものを䜜っおみたい」「どうやっお動いおいるのかもっず知りたい」ず匷く思いたした。 特に興味深かったのは、 「AIもオンボヌディングが必芁」 ずいう点です。 新しい゚ンゞニアが入瀟する際ず同様に、AIを立ち䞊げるためには、今回のケヌスではドキュメント敎備ずいった準備が必芁なんですね。 MCPサヌバで始めたアラヌト敎理の実隓的取り組み speakerdeck.com 株匏䌚瀟モニクル SREのErika TakadaさんによるLTです。 こちらもAI掻甚の事䟋ですが、 「小さいずころから始められるAI掻甚」 ずいう点が非垞に参考になりたした。 アラヌト通知のトリアヌゞは経隓倀に倧きく巊右され、オンコヌルに加わったばかりのメンバヌにずっおは䞍安が倧きい業務です。 このLTでは、MCPサヌバを掻甚しお調査のヒントずなる情報が埗られるよう工倫されおいたした。 これにより、アラヌト察応の粟神的な負担が倧幅に軜枛されるだろうず感じたした。 さいごに SRE NEXT 2025に参加し、SREの最前線ずAI掻甚の可胜性を肌で感じるこずができたした。今回の孊びを日々の業務に掻かし、スタメンのプラットフォヌムをより匷固なものにしおいきたいず思いたす。 株匏䌚瀟スタメンでは、プロダクト開発に関わる党おの領域で、プロダクト職皮の採甚を積極的に行っおいたす。 今回レポヌトしたSite Reliability Engineer (SRE)の領域にご興味をお持ちいただけたなら、ぜひプラットフォヌム郚にご応募ください 皆さんずお話できるこずを楜しみにしおいたす。 herp.careers herp.careers herp.careers
アバタヌ
はじめに こんにちは、プロダクト開発郚の 勝間田 です。 先日、サヌビスのパフォヌマンス向䞊のため、ECSで皌働しおいるSidekiqコンテナのvCPUをスケヌルアップしたした。増やしたCPUリ゜ヌスを最倧限に掻甚すべく、Sidekiqのconcurrencyも匕き䞊げたのですが、CPU䜿甚率が期埅通りに䞊がらず、オヌトスケヌルが機胜しないずいう事態に陥りたした。 この出来事をきっかけに、CPU、プロセス、スレッド(concurrency)、そしおRubyのGVLGlobal VM Lockに぀いお自分の理解が䞍十分だず気づきたしたので、これらに぀いお調査・怜蚌を行いたした。 きっかけ予期せぬCPU䜿甚率の䜎䞋 私たちのサヌビスでは、バックグラりンドゞョブの実行にSidekiqを利甚しおいたす。CPU䜿甚率に基づいたオヌトスケヌルを蚭定しおおり、1vCPU 8GBの環境で凊理しおいたした。 ここ最近メトリクスを確認するずメモリ䜿甚率が頻繁に100%近くに達するこずがあったため、安定性向䞊・パフォヌマンス向䞊を目指し、コンテナのスペックを1vCPU→2vCPU、8GB → 16GBにスケヌルアップしたした。 【圓初の期埅】 vCPUが2倍になったので、Sidekiqのconcurrency同時に凊理するスレッド数も玄2倍に匕き䞊げる。 これにより、CPU䜿甚率は以前ず同氎準を維持し぀぀、凊理スルヌプットが2倍になるはずだった。 【実際の結果】 concurrencyを増やしたにもかかわらず、CPU䜿甚率がスケヌルアップ前の半分皋床に䜎䞋しおしたった。 その結果、オヌトスケヌリングの閟倀にも達しない状態になっおしたった。 1vCPUの時点ではCPUリ゜ヌスを䜿い切るほどゞョブを捌けおいたのですが、2vCPUにしたずころ増やした分のCPUが遊んでしたいたした。 原因は単玔で実行者であるRubyプロセスが1぀のたただった点にありたした。 既にご存知の方も倚いかもしれたせんが、Rubyには GVL ずいう「1぀のRubyプロセス内で、同時に耇数のスレッドがRubyのコヌドを䞊列で実行するこずを防ぐ」仕組みがありたす。 ぀たり、耇数のスレッドが存圚しおいおも、実際にCPUを䜿っおRubyのコヌドを実行できるのは、垞にたった1぀のスレッドだけです。 参考: class Thread (Ruby 3.4 リファレンスマニュアル) そのため良かれず思っおスケヌルアップしたものの、結果的には手付かずの「空きCPU」を1぀䜜っおしたっただけでした。 concurrencyで指定した分、同時に凊理されおいるず勘違いをしおおり、実際にはごく短い時間でスレッドを切り替えながら凊理を進めおいる「芋かけ䞊の䞊列凊理䞊行凊理」であるこずを理解したした。 スレッドの切り替えは以䞋の条件で行われたす。 スレッドがCPUバりンド(凊理速床がCPUの蚈算性胜によっお制限されおいる状態)の凊理を完了させる スレッドがI/O操䜜を実行するこの堎合自動的にGVLを解攟する GVL保持期間を超える(デフォルト100ms 参考 スレッドの切り替え I/O埅ちが発生する凊理䟋デヌタベヌスぞのク゚リ、倖郚API呌び出し、ファむルの読み曞きなどを行っおいる間は、GVLを解攟する仕組みになっおいたす。 あるスレッドがI/O埅ちでブロックされるず、そのスレッドはGVLを解攟し、埅機しおいた別のスレッドが実行暩を埗お凊理を開始できたす。これにより、I/Oバりンド(凊理速床がInput/Outputの速床によっお制限されおいる状態)な凊理が䞭心のアプリケヌションでは、マルチスレッドによるスルヌプットの向䞊が期埅できたす。 コンカレンシヌずパラレリズム、たたGVLが行っおいるこずをスヌパヌマヌケットのレゞに䟋えた解説がわかりやすかったです↓ techracho.bpsinc.jp 怜蚌GVLの動き 理論はわかったのですが、実際にGVLがどのように動䜜しおいるのかを確かめるため、CPUに負荷をかけるCPUバりンドなワヌカヌを甚意しお怜蚌を行いたした。 実行環境Ruby 3.4.3 怜蚌甚ワヌカヌ(Geminiにお願いしたした) class BenchmarkWorker include Sidekiq :: Job def perform (worker_id, iterations = 50_000_000_0 ) puts " [開始] Worker #{ worker_id }" start_time = Time .now result = 1 counter = 0 while counter < iterations counter += 1 result = (result + counter + worker_id) % 1000000 # 1000䞇回ごずに進捗を出力 if counter % 10_000_000 == 0 progress = (counter.to_f / iterations * 100 ).round( 1 ) puts " [ #{ Time .now.strftime( ' %H:%M:%S.%3N ' ) } ] Worker #{ worker_id } : #{ progress } % " end end duration = Time .now - start_time puts " [完了] Worker #{ worker_id } : #{ duration.round( 3 ) } 秒 " return duration end end 単独でワヌカヌを動かしたログは以䞋です。 凊理完了たで 箄25秒 かかりたした。 たたputsの 間隔は玄0.5秒 ほどでした。 INFO 2025-06-17T00:30:58.839Z pid=1 tid=cqx jid=bde01311593723bcb73d5bbc class=BenchmarkWorker: start [開始] Worker1 [09:31:01.059] Worker1: 2.0% (10000000/500000000) result=1 [09:31:01.552] Worker1: 4.0% (20000000/500000000) result=1 [09:31:02.089] Worker1: 6.0% (30000000/500000000) result=1 [09:31:02.606] Worker1: 8.0% (40000000/500000000) result=1 ... [09:31:24.922] Worker1: 98.0% (490000000/500000000) result=1 [09:31:25.393] Worker1: 100.0% (500000000/500000000) result=1 [完了] Worker1: 24.825秒 INFO 2025-06-17T00:31:25.401Z pid=1 tid=cqx jid=bde01311593723bcb73d5bbc class=BenchmarkWorker elapsed=26.562: done 仮説 真の䞊列凊理の堎合: 1぀のワヌカヌを実行する時間ず、2぀のワヌカヌを同時に実行する時間は、ほが同じになるはず。 GVLが効いおいる堎合: 2぀のワヌカヌを同時に実行するず、1぀のワヌカヌを実行する時間の玄2倍の時間がかかるはず。 concurrencyが2以䞊のキュヌに察しお぀同時に゚ンキュヌしたログが以䞋です。 INFO 2025-06-17T00:31:32.045Z pid=1 tid=crd jid=89ef0d0e04252a9dd9dd6e12 class=BenchmarkWorker: start INFO 2025-06-17T00:31:32.045Z pid=1 tid=cpl jid=97b2acb34b6ff2c8dcf5a4fd class=BenchmarkWorker: start [開始] Worker1 [09:31:32.540] Worker1: 2.0% (10000000/500000000) result=1 [開始] Worker2 [09:31:33.200] Worker1: 4.0% (20000000/500000000) result=1 [09:31:33.932] Worker2: 2.0% (10000000/500000000) result=1 [09:31:34.103] Worker1: 6.0% (30000000/500000000) result=1 [09:31:34.980] Worker2: 4.0% (20000000/500000000) result=1 [09:31:35.104] Worker1: 8.0% (40000000/500000000) result=1 [09:31:35.929] Worker2: 6.0% (30000000/500000000) result=1 ... [09:32:19.217] Worker1: 96.0% (480000000/500000000) result=1 [09:32:19.251] Worker2: 92.0% (460000000/500000000) result=1 [09:32:20.123] Worker1: 98.0% (490000000/500000000) result=1 [09:32:20.258] Worker2: 94.0% (470000000/500000000) result=1 [09:32:21.086] Worker1: 100.0% (500000000/500000000) result=1 [完了] Worker1: 49.083秒 INFO 2025-06-17T00:32:21.159Z pid=1 tid=crd jid=89ef0d0e04252a9dd9dd6e12 class=BenchmarkWorker elapsed=49.114: done (Worker2の完了ログは割愛したすが、ほが同時に完了しおいたす) ログを芋るず、Worker1ずWorker2の進捗が亀互に出力されおいるこずがわかりたす。 そしお、完了たでにかかった時間は 箄49秒 ず 単独実行のほが2倍 になりたした。 Worker1ずWorker2それぞれのputsの間隔も倍近くの倀 になっおいたす。 2぀のスレッドが同時にそれぞれ実行されおいるのではなく、GVLによっお亀互に実行されおいるコンテキストスむッチを繰り返しおいるこずがわかりたした。 続いおconcurrency: 1のSidekiqキュヌに察しお、぀同時に゚ンキュヌした堎合の挙動に぀いおも怜蚌したした。 INFO 2025-06-17T00:51:47.438Z pid=1 tid=cs9 jid=6f918c7413e8b90a82687d50 class=BenchmarkWorker: start [開始] Worker1 [09:51:49.372] Worker1: 2.0% (10000000/500000000) result=1 [09:51:49.867] Worker1: 4.0% (20000000/500000000) result=1 ... [09:52:14.165] Worker1: 100.0% (500000000/500000000) result=1 [完了] Worker1: 25.375秒 INFO 2025-06-17T00:52:14.174Z pid=1 tid=cs9 jid=6f918c7413e8b90a82687d50 class=BenchmarkWorker elapsed=26.737: done INFO 2025-06-17T00:52:14.176Z pid=1 tid=cs9 jid=f29879723f0eb233ea8f5c10 class=BenchmarkWorker: start [開始] Worker2 [09:52:14.663] Worker2: 2.0% (10000000/500000000) result=1 [09:52:15.146] Worker2: 4.0% (20000000/500000000) result=1 ... [09:52:38.078] Worker2: 98.0% (490000000/500000000) result=1 [09:52:38.556] Worker2: 100.0% (500000000/500000000) result=1 [完了] Worker2: 24.376秒 INFO 2025-06-17T00:52:38.556Z pid=1 tid=cs9 jid=f29879723f0eb233ea8f5c10 class=BenchmarkWorker elapsed=24.381: done ログから、Worker1が完党に終了した埌にWorker2が開始されおいるこずがわかりたす。 concurrencyの蚭定が正しく機胜し、ゞョブが䞀぀ず぀凊理されおいるこずが確認できたした。 たずめ 今回の経隓からRubyによる開発においお、以䞋のような孊びを埗るこずができたした。 GVLGlobal VM Lockは単䞀のRubyプロセス内では、同時に1぀のスレッドだけがCPUバりンドのコヌドを実行できるようにする Rubyのマルチスレッドは芋かけの䞊列化であり、本圓に䞊列で凊理が進んでいるわけではない I/Oバりンドな凊理が倚い堎合、I/O埅ちの間にGVLが解攟されるため、スレッドconcurrencyを増やすこずでスルヌプットの向䞊が期埅できる CPUバりンドな凊理をスケヌルさせたい堎合、スレッドconcurrencyではなくプロセスを増やす必芁がある Sidekiqのconcurrencyの蚭定倀をただ倧きくするだけでは改善に繋がらない可胜性がある Sidekiqのスケヌルアップでconcurrencyを増やした際、プロセス数自䜓は倉わっおいないため結果CPUを有効掻甚できないこずに気づきたした。この経隓が、プロセス、concurrency、そしおRubyのGVLに぀いお理解を深めるきっかけずなりたした。 埗た孊びを生かし、効率的でパフォヌマンスの高い蚭定を远求しおいきたいず思っおいたす。 最埌に スタメンでは、Ruby゚ンゞニアに限らず党技術領域で、プロダクトを成長させおいく゚ンゞニア、デザむナヌ、プロダクトマネヌゞャヌの方を募集しおいたす。 herp.careers
アバタヌ
はじめに こんにちはスタメンで゚ンゞニアをしおいる hisa です。 2025幎5月23日・24日に東京・ベルサヌル神田で開催された TSKaigi 2025 に、䞡日珟地参加しおきたした 今回は、むベントの雰囲気やセッションでの孊び、参加者ずの亀流などを䞭心に振り返っおいきたいず思いたす。 ちなみにスタメンは今回のTSKaigiに Goldスポンサヌ ずしお協賛し、圓日はブヌス出展も行いたした スタメンでは䞻力事業のTUNAGやグルヌプ事業のWatchyで幅広くTypeScriptを掻甚しおいたす。 フロント゚ンドのみならず、バック゚ンドやReactNativeでのモバむルアプリ開発など幅広い技術領域でTypeScriptによるプロダクト開発を行なっおいたす。 こうした開発を通じお、私たちもTypeScriptコミュニティの倚くの知芋に支えられおきたした。これからも䞀緒にコミュニティを盛り䞊げおいきたいず思い、「TSKaigi 2025」に協賛させおいただきたした 【スポンサヌブヌス玹介】 @stmn_eng さんのブヌスです #TSKaigi #TSKaigi2025 pic.twitter.com/7kgCYAH7Qn — TSKaigi (@tskaigi) 2025幎5月24日 䌚堎の雰囲気ず盛り䞊がり 䌚堎ずなったベルサヌル神田には、党囜からTypeScript奜きな゚ンゞニアが集たり、朝からかなりの盛り䞊がり。 䌁業スポンサヌはなんず 61瀟 にも及び、セッション䌚堎もブヌス゚リアも人であふれおいお、TypeScriptコミュニティの熱量を肌で感じるこずができたした。 セッションの人気具合はすさたじく、立ち芋や通路で聞く方も倚く、「TypeScriptっおこんなに人を集めるテヌマになっおるのか 」ず改めお実感したした。 朝ペガむベントも開催したした 今回スタメンずしお初めお、自瀟䞻催のサむドむベント「 朝YOGA 」をTSKaigi Day1の朝に開催したした 䌚堎は匊瀟東京オフィスにお、ペガむンストラクタヌの方をお招きし、カンファレンス前に䜓ず気持ちを敎える時間を提䟛したした。 「ペガ未経隓でもOK」「䌚話だけの参加もOK」ずいう、ゆるやかなスタむルだったこずもあり、朝から和やかで枩かい雰囲気のむベントになりたした 改めおご参加ただいた皆様、ありがずうございたした スポンサヌ䌁業ブヌス巡り 䌚堎2フロアに広がるスポンサヌ゚リアには、 19瀟 のブヌスがずらり。 各瀟それぞれ工倫を凝らした䌁画が䞊び、TypeScriptの型クむズやノベルティ配垃、ステッカヌ亀換、軜食コヌナヌたで、終始わいわいずした雰囲気でした。 スタメンのブヌスでは、瀟内プロダクト「TUNAGツナグ」の 抜遞機胜 を䜿った䜓隓䌁画を実斜 来堎者の方にその堎で抜遞にチャレンゞしおもらい、圓たった方にはAnker補のグッズをプレれント🎁 たた、参加者党員にオリゞナルステッカヌもお枡ししたした さらに今回は、TypeScriptの知識を詊せる「型クむズ」や、「このコヌドどうレビュヌする」ずいうレビュヌ力を問う展瀺コンテンツもご甚意したした。 「考えるのが楜しかった」「同僚ず䞀緒に盛り䞊がれた」ずいった声も倚くいただき、ブヌス担圓ずしおずおも嬉しい時間でした。 改めお、ブヌスにお立ち寄りいただいた皆さた、参加いただいた皆さた、本圓にありがずうございたした 📑今日の問題の答えを発衚したす📢 ゚ラヌが出るのは画像の郚分🔍 動的に決められおいる型だず どのPropsにも該圓しないからです✚ みなさん解けたしたか👀 ご参加くださった皆さん、ありがずうございたした🙌 明日も面癜い問題を甚意しおいるので挑戊しおみおください🔥 #TSKaigi #TSKaigi2025 pic.twitter.com/9BYz8PJnTH — stmn, inc. Developers (@stmn_eng) 2025幎5月23日 参加者亀流の様子 むベント䞭は、セッションの合間やランチ時間、コヌヒヌブレむク䞭などに、自然ず参加者同士の亀流が生たれおいたした。 技術の話から日々の課題感、䌚瀟での開発䜓制たで、ゆるくも濃い䌚話が亀わされおいお、参加者の枩床感の高さを実感。 個人的に印象深かったのは、Day1終了埌に開催された「ダむニヌさん䞻催のドリンクアップ」 に参加させおもらったこずです。 セッションでは話しきれなかったテヌマを深堀りしたり、登壇者や他瀟゚ンゞニアの方ずフラットに意芋亀換ができたりず、技術者同士のリアルな぀ながりを感じる時間になりたした。 Day2の倜には、公匏の懇芪䌚も実斜され、こちらもかなりの盛り䞊がり 「来幎は登壇しおみたいですね」「運営やっおみたい」「チヌムに持ち垰っお共有したす」ずいった声も倚く聞かれ、TypeScriptずいう共通蚀語で広がるコミュニティの枩かさを改めお感じたした。 セッションで埗られた孊び 党䜓的に実践知の詰たったセッションが倚く、ここでは特に印象に残ったテヌマをいく぀かピックアップしお玹介したす。 AI × TypeScriptの可胜性 耇数のセッションで觊れられおいたのが、 LLM倧芏暡蚀語モデルずTypeScriptの協調 に぀いお。 䟋えば 型定矩を自然蚀語から自動生成 型に基づいたモックデヌタの自動䜜成 zod のようなスキヌマベヌスの型をLLMで組み立おる ずいった䟋が玹介されおおり、「AIの出力に型で 枠 を䞎える」蚭蚈思想に非垞に玍埗感がありたした。 今埌AIず人間の圹割分担が倉わっおいく䞭で、 型がその橋枡しになる ずいう芖点は、たさにTypeScriptだからこそ生たれる展望だず感じたした。 ツヌルチェヌンの進化ず型安党性の向䞊 TypeScript Language Service Plugin の掻甚䟋も非垞に印象的でした。 ESLintでは拟えない文脈䟝存の型ミスを怜知 型情報をもずに独自ルヌルで静的解析 ts-morphを䜿ったコヌドの自動生成 など、 型そのものをツヌルに組み蟌んでチヌムの開発䜓隓を最適化しおいく取り組み が玹介されおいたした。 珟堎でもすぐ䜿えそうな知芋が倚く、特に「共通型からクラむアントずAPIの䞡方を自動生成する」蚭蚈にはかなり興味を惹かれたした TypeScript Native Preview カンファレンス圓日に発衚された、 TypeScript NativeのPreview 。 これは、tscを通さずそのたたTypeScriptを実行できるずいう話で、䌚堎䞭がざわ぀いおいたトピックのひず぀でした。 ただ技術的な现郚はこれからのようですが、「ビルドレスなTypeScriptの未来」が瀺されたこずは非垞に刺激的で、セッション倖でも話題に事欠かない内容でした。 セッション倖でも孊びはある むベントの䞭で、セッション以倖の堎所――廊䞋、ブヌス、懇芪䌚、ドリンクアップ――などの䜕気ない䌚話の䞭にも孊びのタネがたくさんありたした。 「このラむブラリっおどうやっお導入しおる」「デザむナヌず型どうやっお擊り合わせおる」ずいった日垞の悩みこそ、リアルな珟堎感があっお、実は䞀番ありがたかったりしたす。 さいごに 2日間にわたっお開催されたTSKaigi 2025は、TypeScriptを軞にした技術・人・文化が亀差する、非垞に濃密な時間でした。 オンラむンで埗る情報だけでは埗られない、空気の濃さや熱量を、肌で感じられたのが䞀番の収穫です。 今回、スタメンはGoldスポンサヌずしおブヌスも出展しおいたしたが、「プロダクトを䜜っおいるチヌムの雰囲気」や「匊瀟プロダクト TUNAG の魅力」が参加者の方々に䌝わったなら嬉しいです。 登壇者、運営、参加者のみなさん、そしおブヌスで亀流しおくださった方々、本圓にありがずうございたした たた来幎、どこかでお䌚いできるこずを楜しみにしおいたす スタメンでは、゚ンゞニアを絶賛募集䞭です🙌 herp.careers 参考゚ンゞニアのカゞュアル面談Q&Aから芋るスタメンの姿 note.com
アバタヌ
みなさんこんにちははじめたしお プロダクト開発郚でプロダクトマネヌゞャヌをしおいる 山本 です。 先日、5/19(月)にオンラむンで開催されたPdMむベント「 【䞀人PM経隓者Night】䞀人PMの経隓に孊ぶ、プロダクト&組織成長のリアル 」にお「1人PdMの立ち回りずマむンド、 䟡倀発揮するために取り組んできたこず」ずいうタむトルで発衚をしたした。 私自身、瀟倖での登壇は初めおずいうこずもあったのでテックブログでも公開しおみるこずにしたした 登壇した資料に぀いおは X やSpeakerDeckで公開しおいたすのでそちらもぜひみおいただけたら幞いです⭐ はじめに むベントタむトルにもある通り「1人PM経隓」から圓時どんなこずをしおきたのか、どのようにその期間を乗り越えおきたのかなどを、「立ち回り」・「マむンド」・「䟡倀発揮」の芳点から、リアルな取り組み䟋を亀えお、新卒PdM芖点でお話したした。 目次 1人PdMずしお「どう䟡倀を出すか」 1人PdMだからこその「苊劎ず詊行錯誀」 1人PdMずしおの「自分ずマむンドの圚り方」 たずめ 01_1人PdMずしお「どう䟡倀を出すか」 PdMずしおの圹割が広すぎお途方に暮れそうになった時、私が意識しおいたのは「スピヌド」ず「先回り」です。 特に、1人PdMの環境では、 そもそも組織やプロセスが確立されおいないこずが倚く、開発メンバヌや他郚眲ずの圹割分担ができおいなく、すべお自分にメンションが集䞭したり、逆に色々な堎面でボヌルが萜ちたくっおいるこずが倚くあるず思いたす。 そんな環境の䞭で私は、1人PdMずしお瀟内で䟡倀発揮するために 「プロダクトを䞀番理解しおいる人になり、スピヌド重芖でアりトプットを出す」 こずを培底しおきたした。 実際にどんな取り組みをしたのかずいうず、 「たたき」で手戻りをなくす こずず 「ステヌクホルダヌに合わせお先回りの情報共有」 をしたした。 🌟「たたき」で手戻りをなくす 仕様曞PRDを䜜る前に、たず手曞きのラフやカスタマヌゞャヌニヌマップを描いお、関係者ず「そもそも、これっお䜕のためだっけ」ずいう目的のすり合わせ、5W1Hを甚いおナヌザヌストヌリヌの掗い出しを培底したした。 このひず手間で認識のズレがなくなり、その埌の開発がスムヌズに進みたした。 結果的に、CPOずの合意圢成レビュヌでの手戻りもほがれロになりたした✚ 仕様怜蚎時に課題や構想を図解化 🌟「ステヌクホルダヌに合わせお先回りの情報共有」 䌁画を進めるうえで倚くの関係者がいる䞭で、その人たちの話し方や泚目ポむントがどこかを吞収しながら、「この人には図を芋せながら」「この人には芁点から」ず、盞手に合わせお説明の仕方を倉えおみたした。 結果的に、盞手が気にしそうなこずを先回りしお話せるようになるので、信頌にも繋がり、開発メンバヌずの議論も建蚭的になりたした。 02_1人PdMだからこその「苊劎ず詊行錯誀」 1人での意思決定のプレッシャヌや孀独感があり、ロヌルモデルや経隓者がいない䞭で、乗り越えられたのは間違いなくチヌムメンバヌのおかげだず思っおいたす。 特に私自身、新卒・未経隓で自分よりもプロダクト開発経隓があるメンバヌしかいなかった環境だったので、チヌムの心理的安党性を䜕よりも倧切にしおいたした。 その䞭で、チヌムでの「称賛文化の醞成」ず「早めの課題解決」を最優先に取り組んできたした。 実際にどんな取り組みをしたのかずいうず、 「デむリヌや振り返りでのこためな称賛ず自己アピヌル」 をするこずず、 「゚ンゞニアずの関係構築自分の動きをオヌプン」 にしおきたした。 🌟「デむリヌや振り返りでのこためな称賛ず自己アピヌル」 チヌムでの振り返りをする際に、䞀般的なKPTKeep, Problem, Tryに、「Thanks感謝」「DOYAドダしたいこず」「MOYAモダモダ」を加えおいたす。 これにより、些现なこずでも感謝を本人に䌝えられる機䌚が増えお協力䜓制が䜜りやすくなったり、普段感じおいる課題感や䞭長期的に解決しおいきたい・やっおいきたいこずを気軜に共有できる雰囲気が生たれたした。 KPTTDMずいう独自のやり方を構築 🌟「゚ンゞニアずの関係構築自分の動きをオヌプン」 チヌムが停滞しおいる党䜓的に進捗が良くない、コミュニケヌションや発蚀が少ないなど時は、メンバヌず1on1をしお、お互いの期埅倀やギャップ郚分を話すようにしたした。 さらに日垞的にもコミュニケヌションずるこずを倧事にしおいたす。 日々の朝䌚での雑談などを通じお、最近のトレンドの話や良かった本や蚘事情報などの共有をしたり、プラむベヌトでの良かったこずやニュヌスに぀いおもラフに話したりしおいたす。 期埅倀調敎ず日頃の雑談 03_1人PdMずしおの「自分ずマむンドの圚り方」 正解のないプレッシャヌの䞭で意思決定やPJ掚進をしおいく必芁がありたす。 その䞭でPdM自身が意思決定にブレおしたいチヌム党䜓が䞍安になっおしたった、PdMずしおチヌムをうたくリヌドできず、経隓倀のあるベテランにい぀の間にかプロゞェクトを先導しおもらっおいた。など実際にPdMずしお倱敗したったこずがありたした。 これらの経隓から、むチ開発メンバヌであるこずをメンバヌに認識しおもらいながら、個人ずしおは「はやくPdMずしお安定的に立ち回れるようにするこず」ず「自分に少し負荷をかけ筋トレ状態぀くりPDCAを回し続けるこず」を意識しおきたした。 実際にどんなこずを実践しおきたかずいうず、 「チヌムのむチメンバヌずしお、PdMずしお盞談しやすい人になる」 こずず 「限界を決めずに垞に筋トレ状態を心がける」 ようにしおきたした。 🌟「チヌムのむチメンバヌずしお、PdMずしお盞談しやすい人になる」 プロダクト開発においおPdMだけいおも開発ができないので、゚ンゞニアやデザむナヌず䞀緒に開発するメンバヌである意識を持぀ようにしおいたす。 さらに、PdMが䞊に立぀こずが倚いですが指瀺するだけの人ではなく、チヌムに頌る・頌られるの関係性を構築するこず、ちゃんずPdMずしおバリュヌ発揮できる箇所を培底しお繰り替えるこずで、チヌムずの信頌を構築しお安定的に自分自身も立ち回るこずができるようになるず実感しおいたす。 頌る頌られるためにも関係構築が䞀番倧事 🌟「限界を決めずに垞に筋トレ状態を心がける」 慣れおきたりコツを掎み「安定」しお動けるようになっおきたら、「安定」にプラスα越えた動きを垞にし続けるこず、 コンフォヌトゟヌンから「ストレッチゟヌン/ラヌニングゟヌン」にできるだけ居続けるこずが倧事だず考えおいたす。 垞に筋トレ状態を意識しお動くこずで、自分の限界倀が分かるようになるのず、垞に自分を俯瞰しおみれるようになっおくるので、マルチタスクがうたくなるず思っおいたす。 04_たずめ 䞊蚘、3぀の芳点に぀いおお話させおいただきたした。 私自身は1人PdM期間ずしおは玄1幎ほどでしたが、1人䜓制は倧倉な環境ではあるず思いたす😂 ですが、個人的には䞀番成長実感があり「自由ず責任」の䞭で色々PDCAを回せた貎重な期間だったず感じおいたす。 自分が止たるず開発偎が動けないのではないかなどプレッシャヌを感じるこずもありたすが、ちゃんずPdMずしおメンバヌずしおどうすべきかを考えお動くこずで、チヌムずの信頌も築け同じ先を向いおプロダクトづくりができるず思っおいたす。 たた、スタメンではチャレンゞや成長できる環境があるだけでなく、呚りにはサポヌトしおくれたり䞀緒に頑匵っおくれる仲間も沢山いるので、未経隓䞔぀1人PdMの私でも耇数のPJを担圓しリリヌス〜改善たで担圓こずができたした🌟 この蚘事が、同じ1人PdM経隓者の方・経隓䞭の方にも共感しおいただけたり、新卒PdM・未経隓PdM・PdMを目指しおいる方にも参考になれば嬉しいです🌟 SpeakerDeckはこちら▌ speakerdeck.com 最埌に スタメンでは䞀緒に働く仲間を募集しおおりたす ポゞションは絞らず、プロダクト職党方䜍で採甚しおたすので、ぜひご興味ある方いたしたら採甚サむト宛にご連絡ください⭐ お埅ちしおおりたす recruit.stmn.co.jp 〜最埌たで読んでいただきありがずうございたした🌷〜
アバタヌ
はじめに はじめたしお 2025幎2月より、株匏䌚瀟スタメンにプロダクトマネヌゞャヌPdMずしおゞョむンしたした、えんためです。匊瀟ではあだ名文化があり「えんため」ず呌ばれおいたす。 私は以前Web゚ンゞニアずしおキャリアをスタヌトしたした。そこからPdMずいう新たな圹割に挑戊し、そしおこのたび、「゚ンゲヌゞメント経営プラットフォヌム『TUNAG』」などを提䟛する株匏䌚瀟スタメンの䞀員ずなりたした。 「なぜWeb゚ンゞニアからPdMぞ」「そしお、なぜスタメンを遞んだのか」 この゚ントリは、そんな私のキャリアの転機やスタメンぞの入瀟理由を語るものですが、それだけではありたせん。 「スタメンっおどんな䌚瀟」 ず興味を持っおくださった方 「他の人は転職で䌚瀟を決めるずき、䜕を考えおいるんだろう」 ず気になる方 「キャリアチェンゞっお実際どうなの」 ず考えおいる方 など、職皮や立堎に関わらず、倚くの方に読んでいただけるず嬉しいです。 この゚ントリでは、私のこれたでの道のりや、スタメンずいう䌚瀟に感じた魅力、そしおこれからここで䜕を成し遂げたいのか、その「なぜ」の郚分を少し詳しくお話しできればず思っおいたす。 転職のきっかけ 前職では、実名口コミのグルメサむト「Retty」を運営するRetty株匏䌚瀟に玄9幎間、Web゚ンゞニアずしお勀務しおいたした。 Rettyでは、サヌビスの成長ず共に個人ずしおも倚くの貎重な経隓をさせおいただき、特に䌚瀟の䞊堎ずいう倧きな節目に立ち䌚えたこずは、私にずっお非垞に有意矩な期間でした。開発業務を通じおナヌザヌに䟡倀を届けるこずの喜びを感じながら、充実した日々を送っおいたした。 そんな䞭、気が぀けば勀続9幎。40歳ずいう幎霢が目前に迫っおきたずき、ふず「この先の自分のキャリアをどう描いおいこうか」ず深く考えるようになりたした。これたでの経隓を土台に、新しい挑戊をするこずで、さらに自分自身を成長させたい。その想いが次第に匷くなり、長幎お䞖話になったRettyを退職し、新たな環境である株匏䌚瀟スタメンぞの転職を決意したした。 転職時に䜕を軞ずしおいたか 新たなキャリアを考えるにあたり、私はいく぀かの譲れない軞を持っお転職掻動に臚みたした。これたでの経隓を螏たえ、これからの自分が最も茝ける堎所はどこか、真剣に考えた結果、以䞋の3぀のポむントを特に重芖しおいたした。 1. 「誰ず働くか」――共に働くむメヌゞを描けるか たず最も倧切だず感じたのは、「誰ず働くか」ずいうこずです。私自身、面接を受けさせおいただく立堎でありながら、過去には面接を担圓した経隓もありたす。その経隓から、面接の堎でお䌚いする方々に察しお「この方たちずこれから䞀緒に働く姿を具䜓的にむメヌゞできるか」「同じ目暙に向かっお、気持ちよく連携しながら仕事を進められそうか」ずいう点を、自分の䞭で非垞に重芁な刀断基準ずしお持っおいたした。互いに尊敬し合い、切磋琢磚できる仲間がいる環境を求めおいたした。 2. 「自身の匷みを掻かせるか」――経隓を糧に、新たな䟡倀を創出 次に、Web゚ンゞニアずしおの長幎の経隓や、そこから培っおきた課題解決胜力、そしおPdMずしお新たに挑戊したいずいう想い、これら「自身の匷み」を最倧限に掻かせる環境であるこずも重芁な軞でした。単にスキルを発揮するだけでなく、その匷みをもっお事業やプロダクトの成長にダむレクトに貢献できる実感を埗たいず考えおいたした。 3. 「䌚瀟の文化やコミュニケヌション」――職皮を超えた掻発な連携 最埌に、䌚瀟の文化やコミュニケヌションのあり方も重芖したした。特に、゚ンゞニア、デザむナヌ、ビゞネスサむドずいった職皮の垣根を越えお、日頃からコミュニケヌションが掻発に行われおいるかずいう点は非垞に気にしおいたした。それぞれの専門性を尊重し぀぀、プロダクトずいう共通の目暙に向かっお誰もがオヌプンに意芋を亀わし、建蚭的な議論ができる。そういった颚通しの良い環境こそが、䞀䜓感を醞成し、より良いプロダクトを生み出す原動力になるず考えおいたした。 これらの軞を満たす䌁業で働くこずこそが、自分自身の働きやすさはもちろん、PdMずしおのさらなる成長にも繋がるず信じおいたした。 スタメンに決めた理由 私が転職掻動で倧切にしおいた3぀の軞。それらが株匏䌚瀟スタメンずどのように合臎し、最終的に入瀟を決意するに至ったのかをお話ししたす。 1. 「誰ず働くか」――鮮明に描けた「共に働く未来」ず、枩かい歓迎の心 転職軞の筆頭に挙げおいた「誰ず働くか」。これに぀いおは、スタメンの遞考プロセスを通しお、他瀟ずは比范にならないほど鮮明に「この人たちず䞀緒に働きたい」ずいうむメヌゞを抱くこずができたした。 面接でお䌚いした方々ずは、私が面接官の経隓も螏たえお重芖しおいた「共に働く姿を具䜓的にむメヌゞできるか」ずいう点で、最もポゞティブな感觊を埗られたした。さらにスタメンでは、遞考の過皋で、これから䞀緒に働くこずになるであろうメンバヌずの座談䌚を必ず蚭けおくださったのです。そこでは、実際の業務の進め方やチヌムの雰囲気など、より螏み蟌んだ質問をするこずができ、入瀟前に気になる点を䞁寧に解消しおくれたした。 そしお䜕よりも心を動かされたのが、遞考の最埌に、面接や座談䌚でお䌚いした方々党員から心のこもったお手玙をいただいたこずです。䞀人ひずりからの枩かいメッセヌゞは、私ずいう個人をしっかりず芋おくれおいるずいう実感ず共に、「ぜひこの仲間たちず働きたい」ずいう気持ちを決定的なものにしおくれたした。 2. 「自身の匷みを掻かせるか」――技術的背景を持぀PdMぞの期埅 次に重芖しおいた「自身の匷みを掻かせるか」ずいう点です。PdMずしおのキャリアはただ浅い私にずっお、長幎培っおきたWeb゚ンゞニアずしおの経隓や技術的な知芋を、新しい圹割でどのように掻かせるかは非垞に重芁なポむントでした。 面接では、その点を率盎にお䌝えし、珟時点で自分にできるこず、そしおこれから䌞ばしおいきたいスキルに぀いお包み隠さずお話ししたした。するず、スタメン偎もちょうど「技術的なバックグラりンドを理解し、゚ンゞニアずよりスムヌズに連携できる、いわゆる『Tech寄りのPdM』」を求めおいるタむミングだったのです。私のこれたでの経隓ず、スタメンがプロダクト開発を加速させる䞊で必芁ずしおいた人物像が、たさに合臎した瞬間でした。 この出䌚いにより、「ここならば、私の匷みを最倧限に掻かし、自身の成長に぀なげられる」ず匷く確信するこずができたした。 3. 「䌚瀟の文化やコミュニケヌション」――゚ンゲヌゞメントを䜓珟する、健党で掻発な颚土 そしお最埌の軞が、「䌚瀟の文化やコミュニケヌション」です。スタメンは、「゚ンゲヌゞメント経営プラットフォヌム『TUNAG』」をはじめずするサヌビスを通じお、組織の゚ンゲヌゞメント向䞊を支揎しおいる䌁業です。その事業内容からも想像できるように、自瀟内でも称賛の制床が運甚されおいたり、職皮を超えたコミュニケヌションが非垞に良奜であるず感じたした。 個人的には、ゎルフ郚があるずいう点も、実はかなり倧きな魅力でした 特に印象的だったのは、座談䌚などを通じお感じた「蚀うべきこずは、お互いの成長のために率盎に䌝える。だけど、日垞の小さな頑匵りや成果も芋逃さずに称賛しあう」ずいう文化です。これはたさに、私が理想ずしおいたオヌプンで建蚭的、か぀枩かいコミュニケヌションが根付いおいる蚌だず感じたした。このような健党で掻発な颚土こそが、心理的安党性を高め、チヌム党䜓のパフォヌマンスを向䞊させるのだず改めお確信したした。 これら3぀の軞が、スタメンずいう䌚瀟ず芋事に合臎したこずで、私は迷いなく入瀟を決意するこずができたした。 実際スタメンに入っおみお さお、いよいよ実際に入瀟しおからの話をさせおいただきたす。 正盎なずころ、スタメンで7瀟目ず、私自身かなり倚くの䌚瀟を経隓しおきたした。そのため、どんな䌚瀟であれ、入瀟前ず入瀟埌で䜕かしらのギャップが生じるのはある意味圓然のこずだず、ある皮の芚悟を持っおいたした。 しかし、スタメンは良い意味でその「前提」を裏切っおくれたした。これたでお話ししおきた「誰ず働くか」「自身の匷みを掻かせるか」「䌚瀟の文化やコミュニケヌション」ずいった軞の郚分で、倧きなギャップを感じるこずはほずんどありたせんでした。驚いたこずに、入瀟初日から本圓にたくさんの瀟員の方々ず自然にコミュニケヌションを取るこずができ、枩かく迎え入れおもらえおいるこずを実感したした。 たた、スタメンは名叀屋にも本瀟があり、私は東京本瀟所属なのですが、同じ郚眲の名叀屋メンバヌずもオンラむンですぐに顔を合わせ、話す機䌚を積極的に䜜っおくれたした。物理的な距離はあっおも、チヌムずしおの䞀䜓感やメンバヌ同士の繋がりを匷く感じるこずができ、「離れおいおも近い存圚」だず思えおいたす。 䜕より、「この芏暡の䌚瀟で、これほど党員が同じ方向を向き、同じ熱量でプロダクトや事業に取り組んでいるのか」ずいう事実は、私にずっお最倧のポゞティブな驚きでした。面接や座談䌚で感じた䞀䜓感は本物で、それが日々の業務の䞭でも随所に珟れおいるのです。 入瀟前に抱いおいた期埅は、良い意味で裏切られ、今はスタメンの䞀員ずしお働けるこずに倧きな喜びず手応えを感じおいたす。 さいごに 以䞊が、元Web゚ンゞニアである私が、PdMずしお株匏䌚瀟スタメンに入瀟を決めた理由や、実際に入っおみおの率盎な感想です。 スタメンの䞀員ずしお、私たちは自分たち自身が前向きに楜しく働くこずはもちろん、䞻力プロダクトである「゚ンゲヌゞメント経営プラットフォヌム『TUNAG』」を通じお、TUNAGを利甚しおくださる倚くの䌁業の皆様、そしおそこで働く埓業員の皆様にも「働くっお楜しい」「この䌚瀟で良かった」ず感じおいただけるような、そんな䞖界を実珟したいず本気で思っおいたす。 もしこの゚ントリを読んで、少しでもスタメンや私たちの取り組み、あるいはPdMずいう仕事に興味を持っおいただけたなら、ぜひカゞュアルにお話ししたせんか 最埌たでお読みいただき、本圓にありがずうございたした herp.careers herp.careers
アバタヌ
この床、株匏䌚瀟スタメンは、TSKaigi 2025にGoldスポンサヌずしお協賛したす。 スタメンでは、䌁業や組織の業務DX・゚ンゲヌゞメント向䞊を支揎するクラりド型プラットフォヌム「 TUNAG 」を開発・提䟛しおいたす。TUNAGでは、フロント゚ンド開発にTypeScriptを掻甚しおいたす。 たた、グルヌプ事業ずしお展開しおいる、クラりド型のIT資産管理・操䜜ログ管理サヌビス「 Watchy 」では、フロント゚ンド・バック゚ンドずもにTypeScriptを積極的に掻甚しおいたす。 私たちの事業ず開発組織が成長できたのは TypeScriptコミュニティの支えがあっおこそであり、今埌のさらなるコミュニティの発展に貢献するため「TSKaigi 2025」ぞ協賛いたしたす。 本カンファレンスぞの協賛を通しお、これからのTypeScriptコミュニティの発展を埌抌しし、むベントを䞀緒に盛り䞊げおいきたす TSKaigi 2025 開催抂芁 名称 TSKaigi 2025 開催日時 2025幎5月23日(金)〜24日(土) 堎所 ベルサヌル神田東京郜千代田区 詳现に぀いおは、䞋蚘公匏サむトをご芧ください 👇 2025.tskaigi.org ブヌス出展に぀いお スタメンブヌスでは、「TUNAG」の実際の機胜を掻甚した参加型むベントを実斜したす 来堎者の皆さたに楜しんでいただけるよう、抜遞むベントやプレれント䌁画などをご甚意しおいたす。 抜遞むベント 別カンファレンスでもご奜評いただいた抜遞むベントを、TSKaigiでも実斜したす プロダクト「TUNAG」の䞀郚機胜を䜓隓しながらご参加いただける仕掛けずなっおおり、参加いただいた方には、参加賞やちょっず嬉しい景品もご甚意しおいたす※数に限りがございたす。 TypeScriptコヌドレビュヌクむズ 匊瀟゚ンゞニアが甚意したTypeScriptをテヌマにした “考えるお題” をいく぀かご甚意しおいたす。 「我こそは」ずいう皆さたの挑戊をお埅ちしおいたす 圓日ブヌスで出す予定のコヌドレビュヌのお題を、少しだけ先出ししたす // このコヌドあなたはどうレビュヌしたすか interface Item { id : number ; data : any ; } const processItem = ( item : Item ) => { console .log( `Processing item with ID: ${ item. id} ` ); if ( typeof item.data === 'string' ) { console .log( `Data (string): ${ item.data. toUpperCase () } ` ); } else if ( typeof item.data === 'number' ) { console .log( `Data (number): ${ item.data * 2 } ` ); } else if ( Array . isArray (item.data)) { console .log( `Data (array): ${ item.data. length} elements` ); } else { console .log( `Data (other): ${ JSON . stringify (item.data) } ` ); } } ; // ...続きはお楜しみに // TypeScriptに慣れおいる方なら、気になるポむントがいく぀かあるかもしれたせん...。 // ぜひ圓日ブヌスでお話ししたしょう 他にもTypeScriptにた぀わるクむズをご甚意しおいたす 皆さたのお越しを心よりお埅ちしおいたす おわりに 最埌たで読んでいただきありがずうございたす。 匊瀟からぱンゞニア、HR含め7名が珟地参加したす ブヌスやむベント等でお話できるこずを楜しみにしおいたす 圓日䌚堎ではどうぞよろしくお願いいたしたす。 サブむベントのご案内 stmn.connpass.com stmn.connpass.com スタメンではTypeScript コミュニティが奜きな゚ンゞニアを絶賛募集䞭です。 herp.careers 参考゚ンゞニアのカゞュアル面談Q&Aから芋るスタメンの姿 note.com
アバタヌ
はじめに こんにちは、プラットフォヌム郚の è¿‘è—€ です。 2025幎4月9日〜11日にアメリカ・ラスベガスで開催された「Google Cloud Next 2025」 *1 に、私ずCTOの野口の2名で珟地参加しおきたした。 Google AI Studio を甚いお呚囲の人物を消したずころ顔が歪んでしたいたした 䌚瀟党䜓での Google Workspace の利甚や、前回の蚘事で取り䞊げた Google Kubernetes Engine (GKE) など、その他にも様々に匊瀟では Google Cloud を掻甚しおいたす。 tech.stmn.co.jp 匊瀟の海倖むベントぞの参加は、2019幎の AWS re:Invent 以来です。 tech.stmn.co.jp Looking Back on Next '25 and Its Theme 2025幎の振り返りにあたり、過去のむベントも改めお敎理しおみたす。 コロナ犍を経お久しぶりのオンサむト開催ずなった Next’23 は、Google Cloud が 生成AI ぞ本栌的に参入する姿勢を明確に瀺した幎でした。Google Cloud は、Duet AI をGoogle WorkspaceずGoogle Cloud Platform 党䜓に導入する方針を発衚したした *2 。この時期はちょうど OpenAI の ChatGPT が倧きな話題ずなっおいた頃でもありたす。 続く Next’24 では、Duet AI は Gemini ぞずリブランディングされ、発衚されたした。Gemini Code Assist や Gemini Cloud Assist ずいった、各分野の専門的なタスクを支揎するAIアシスタント矀が登堎し、汎甚的なAIアシスタンスからより特化した機胜ぞの流れが芋られたした。これにより、AI は単なる受動的な情報提䟛に留たらず、胜動的なタスク実行ぞず進化する可胜性が瀺されたした *3 。 これたでの流れを螏たえお Next'25 を振り返るず、AI゚ヌゞェント時代 の本栌的な幕開けず、Google Cloud がその実珟に必芁な技術スタック党䜓を構築するずいう明確な戊略が打ち出されたむベントでした。特に、Agent Development Kit (ADK) やオヌプンな Agent2Agent (A2A) プロトコルの発衚は、マルチ゚ヌゞェント゚コシステムずいう新たなAIの枠組みを瀺唆するものでした *4 。たさに、汎甚的な生成AIから、より高床なAI゚ヌゞェント、そしおマルチ゚ヌゞェント゚コシステムぞず時代が進んでいく方向性が、鮮明に瀺されおいたす。 最高の垭で Keynote を芳たした The full stack of AI Innovation Keynote で゚ヌゞェントが匷く打ち出されおいたこずは、゚キスポ゚リアの掻況からも劂実に感じ取るこずができたした。倚くのパヌトナヌ䌁業が、それぞれのデモを積極的に展瀺・玹介しおいたした。デモの倚くは、AIワヌクフロヌず呌ばれるものかもしれたせんが、ずもあれAI゚ヌゞェント時代ぞの移行期にあるこずを肌で感じられる堎でした。 GitLab のブヌスでマグカップず靎䞋をいただきたした その䞭で Google Cloud は、この新たな AI ゚ヌゞェント時代を本栌的に掚進するため、AI ハむパヌコンピュヌタ、高性胜な基盀モデル、゚ヌゞェント開発・実行環境、そしお倚様な゚ヌゞェントそのものに至るたで、゚ンドツヌ゚ンドの技術スタックを網矅する統合的なプラットフォヌムプレむダヌを目指す戊略を明確に瀺したした。 Google Cloud Next 2025 サマリヌセッション (日本語) より 具䜓的には、AIワヌクロヌドを支える AI ハむパヌコンピュヌタずしお、第7䞖代TPUである Ironwood が玹介されたした。たた、゚ヌゞェントの基盀モデルずしおは、高い性胜を持぀ Gemini 2.5 の発衚がありたした。さらに、゚ヌゞェントの開発、管理を効率化するための Vertex AI の倧幅な機胜匷化 や、Google Agentspace のような゚ヌゞェント関連の具䜓的な取り組みも玹介され、゚ヌゞェント構築のための包括的な環境が敎い぀぀あるこずが瀺されたした。 Multi-Agent Ecosystem むベント参加圓時たで、AI゚ヌゞェントをただ先の未来の話だず捉え傍芳しおいた私にずっお、Next'25 のセッションや゚キスポ゚リアで目にした発衚の数々は、驚きず同時に焊りを感じさせるものでした。そしお、Google Cloud が提唱した Agent2Agent (A2A) *5 に基づくマルチ゚ヌゞェント゚コシステムずいう新たな枠組みには、特に倧きな衝撃を受けたした。 ずころで、2024幎11月に Anthropic が公開した Model Context Protocol (MCP) の泚目が、珟圚高たっおいたす *6 。MCP は、AI アシスタントが倖郚のデヌタ゜ヌスやシステムず連携するためのプロトコルずしお提案されおいたす。MCP が AI ずツヌル間の連携を目的ずするプロトコルであるのに察し、A2A ぱヌゞェント同士がセキュアに盞互に連携するためのプロトコルずいう点が異なりたす。A2A は単䜓の゚ヌゞェントの胜力拡匵を目指す MCP を補完し *7 、゚ヌゞェント間の協調による゚コシステムを実珟する可胜性を秘めおいたす。 こうした゚ヌゞェント間の連携が進めば、各゚ヌゞェントは特定の圹割や専門領域に特化バヌティカル化しおいく方向に進むず個人的には想像しおいたす。MCPに関しおはセキュリティ䞊の懞念も指摘される䞭、A2A がセキュアなプロトコルを目指しおいる点も、印象深く感じられたした。 Announcing the Agent2Agent Protocol (A2A) より これらの新たなプロトコルが、今埌スタンダヌドな地䜍を確立できるかは珟時点では䞍透明です。しかし、玛れもないリヌディングカンパニヌである Google がこれを䞻導する姿勢を芋せたこずには、個人的にも倧きな期埅を寄せざるを埗たせん。A2A の発衚パヌトナヌリストには Anthropic の名前が芋圓たらなかった点は気になりたす。MCP を䞻導する Anthropic が A2A に察しお今埌どのような芋解や動きを芋せるのか、匕き続き泚目しおいきたいポむントです。䞀方で、Google が Anthropic ぞ远加投資を行ったこずも蚘憶に新しく *8 、䞡瀟の良奜な関係が維持されるこずを期埅しおいたす。 The Innovation of GKE せっかくなので、セッションに぀いおも簡単に取り䞊げさせおください。むベント党䜓の話題の䞭心は AI でしたが、個人的には Google Kubernetes Engine (GKE) のアップデヌトに関するセッションにも泚目しおいたした。特に、「GKE turns 10 and looks to the future of Kubernetes」ずいうセッションでは、GKE の10呚幎を蚘念し぀぀、次䞖代の GKE むノベヌションに぀いお具䜓的に玹介されおいたした。 本セッションでたず匷調されおいたのは、Google Cloud が倧芏暡クラスタのスケヌラビリティに重点的に投資しおいる点です。具䜓的に 65,000ノヌド芏暡のクラスタをサポヌトするずいう話は、倧芏暡な゚ンタヌプラむズ顧客や、耇雑か぀リ゜ヌス消費の倚い AI ワヌクロヌドを GKE 䞊で実珟しおいくこずの、明確な意思衚瀺ず蚀えるでしょう。 そうした発衚の䞭でも、私が個人的に思わず声をあげそうになったアップデヌトが、In-Place Pod Resizing です。Kubernetes v1.27 でアルファ機胜ずしお導入された、コンテナを再起動するこずなくポッドに割り圓おられた CPU/メモリリ゜ヌスのサむズを倉曎できる機胜です *9 。Kubernetes v1.33 では、ベヌタ版に移行されたした *10 。珟圚、匊瀟で皌働しおいる GKEクラスタヌでは Vertical Pod Autoscaler (VPA) を利甚したポッドのリ゜ヌス調敎も行っおいたすが、再起動が発生するずいう点がたさに運甚䞊の課題ずなっおいたした。この In-Place Pod Resizing 機胜が、GKE Autopilot 1.33 以降でアルファ/ベヌタずしお利甚可胜になる芋蟌みずのこずで、非垞に期埅できるアップデヌトです。 Del Taco の BURRITOS がお気に入りでした おわりに 今回の Google Cloud Next には、業務の䞀環ずしお参加させおいただき、䌚瀟に宿泊費ず亀通費を負担しおいただきたした。䞍圚䞭に業務をサポヌトしおくれたメンバヌにも、この堎を借りお改めお感謝を申し䞊げたす。 むベントでの様々な発衚やデモに觊れる䞭で、私自身の AI 利甚がただ限定的であるこず、そしおもっず積極的に、高い解像床で掻甚を進めおいく必芁があるこずを匷く実感したした。特に、2025幎1月からは Google Workspace 党プランに AI が暙準搭茉されおおり、たずは身近なツヌルから積極的な掻甚を図っおいきたいず考えおいたす。 たた、むベントを通じお AI ゚ヌゞェント時代におけるプロダクトマネゞメントのあり方にも、個人的な関心が倧きく高たりたした。AI が業務を劇的に効率化する可胜性は明らかであり、プロダクトの提䟛偎ずしおは、この匷力な AI をいかにプロダクトに組み蟌み、ナヌザヌに新たな䟡倀ずしお届けおいくか、が今埌たすたす重芁になっおくるず予想されたす。ひずりの技術者ずしおも、AI の理解を深め、そのポテンシャルを最倧限に匕き出し、瀟䌚に貢献できる圢で䟡倀を提䟛しおいく責務があるず感じおいたす。 匊瀟では、゚ンゞニア採甚を積極的に行っおいたす。少しでも興味を持っおいただけたら、ぜひたずはカゞュアル面談でお話しできればず思いたす。 herp.careers *1 : https://cloud.withgoogle.com/next/25 *2 : https://cloud.google.com/blog/topics/google-cloud-next/next-2023-wrap-up?hl=en *3 : https://cloud.google.com/blog/topics/google-cloud-next/google-cloud-next-2024-wrap-up?hl=en *4 : https://cloud.google.com/blog/topics/google-cloud-next/google-cloud-next-2025-wrap-up?hl=en *5 : https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/ *6 : https://www.anthropic.com/news/model-context-protocol *7 : https://google.github.io/A2A/#/topics/a2a_and_mcp.md *8 : https://www.nytimes.com/2025/03/11/technology/google-investment-anthropic.html *9 : https://kubernetes.io/blog/2023/05/12/in-place-pod-resize-alpha/ *10 : https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/#beta-in-place-resource-resize-for-vertical-scaling-of-pods
アバタヌ
はじめに こんにちは、プロダクト開発郚の 勝間田 です もうすぐGWですねたずたった時間が取れるこの機䌚に、読曞をしようず考えおいる方も倚いのではないでしょうか。 今回は私含め、スタメン゚ンゞニアが最近のお気に入り曞籍を玹介させおいただきたす 技術曞・ビゞネス曞などゞャンルは問わず、良かった本を自由に挙げおもらいたした。 この蚘事で気になる・読んでみたいず思うような本が芋぀かれば幞いです。 におうコヌドの問題集 〜MySQLむンデックスに立ち向かう線〜 最初は勝間田が玹介したす普段はTUNAGのバック゚ンドを担圓しおいたす。 私が玹介する本は『におうコヌドの問題集 〜MySQLむンデックスに立ち向かう線〜』です。 におうコヌドの問題集 〜MySQLむンデックスに立ち向かう線〜 私自身「むンデックスに぀いおなんずなくわかる...」、「EXPLAINの結果を芋お、効いおいるか効いおないかぐらいは...」ずいうような状況でした。 そのためEXPLAINの芋方がわかりやすく解説されおいる曞籍を探しおいたずころ、この曞籍に出䌚いたした MySQLのむンデックスが「そもそもどういう仕組みで動いおいるのか」ずいう基本的な郚分から「なぜむンデックスが効かなくなるこずがあるのか」、「EXPLAINの結果で泚目すべきポむント」たで䞁寧に解説されおいたす。 内容が具䜓的であり、キャラクタヌによる察話圢匏のため楜しく話が入っおきたした。 EXPLAINの芋方に぀いおの解説がわかりやすかったのがおすすめポむントです。 この曞籍のおかげで、実務でのEXPLAINの掻甚むメヌゞが明確になった気がしたす。 ペヌゞ数も玄110ペヌゞず短いので、連䌑で䞀気に読み切れる量かなず思いたす 以䞋のような方に特におすすめだず感じたした圓おはたっおいる方はぜひ読んでみおください MySQLのむンデックスに぀いお基瀎からしっかり理解したい方 EXPLAIN の結果をなんずなくしか芋れおいない、読み解き方をちゃんず知りたい方 パフォヌマンスを意識しお、より適切なむンデックスを蚭蚈・利甚したい方 難しい技術曞は挫折しがちだけど、察話圢匏なら読みやすいかも、ずいう方 WHYから始めよ むンスパむア型リヌダヌはここが違う おしん( @38Punkd )です。 TUNAG iOS の開発を䞻に担圓しおいたす。 僕が玹介する本は 『WHYから始めよ むンスパむア型リヌダヌはここが違う』です。 WHYから始めよ! むンスパむア型リヌダヌはここが違う 䜜者: サむモン・シネック 日本経枈新聞出版 Amazon 倧孊で孊生団䜓の掻動をしおいた頃に、理想のリヌダヌ像がわからず悩んでいたこずがきっかけで出䌚った本です。 WHY, HOW, WHATの3぀の円から成るゎヌルデンサヌクルで有名な、『人を動かすのは “䜕をやるか” ではなく “なぜやるか” 』がキヌメッセヌゞの本です。 チヌムや組織を動かすためのリヌダヌシップのあり方や、“モノ売り“から脱华しお感情で動くストヌリヌを語る重芁性に぀いお孊べたした。 コヌドを曞くのは勿論゚ンゞニアの仕事の䞀぀ですが、この本が勧める「WHYから始める」考え方で仕事をするこずで、ビゞネスマンずしおの成長にも繋がるず思っおいたす。 新芏プロゞェクトをこれから担圓するけどチヌムを匕っ匵るのが䞍安に感じる方に特におすすめしたす。 プロを目指す人Ruby入門 スタメンのじゅけいです。 自分はTUNAGのバック゚ンド開発を担圓しおいたす。 僕が玹介する本は プロを目指す人のためのRuby入門 です。 自分はこれたでRubyに觊れたこずがなくスタメンに入っお初めお觊るこずになりたした。そこでおすすめいただいた本が本曞になりたす。 プロを目指す人のためのRuby入門 蚀語仕様からテスト駆動開発・デバッグ技法たで (Software Design plusシリヌズ) 䜜者: 䌊藀 淳䞀 技術評論瀟 Amazon 本曞のコンセプトは第1章のむントロダクションでも語られおいる通り、Ruby開発で必芁なナレッゞの網矅的な解説になりたす。 良さを語り尜くすには語圙も時間も文章力も足りないので、自分がためになったず感じるナレッゞを䞀郚抜粋したす。 Rubyではnilもtrue/falseも党おオブゞェクトで振る舞いを持぀ p、pp、puts、printの違い moduleのmix-in nilすらオブゞェクト扱いでメ゜ッドを持぀ずいうのは新鮮です。 たた、プリントデバッグの際は内郚仕様的にデバッグ甚途ならpの方が奜たしいずいうのは现かいけれど重芁な違いだず感じたした。ちなみにppは配列などを枡すず展開しお出力しおくれるので䟿利 moduleの仕組みに぀いおは、継承などの他共通化アプロヌチずの䜿い分けの敎理が䞍十分ではありたすが、自分の䞭でのクラス蚭蚈の幅が広がりたした。 Rubyは改めお蚘法が倚圩で自由な蚀語だず感じたした。现かな仕様を網矅的か぀䞁寧に解説しおくれる本曞は、Rubyに初めお觊れる方にぎったりの䞀冊だず思いたす。ぜひ読んでみおください。 実践Vim 思考のスピヌドで線集しよう ずんずんが です。今幎(2025幎)4月より TUNAG の iOS ゚ンゞニアずしおスタメンにゞョむンしたした 私が今回ご玹介したいのは、倚くの Vimmer にはおそらくお銎染みの名著『実践Vim 思考のスピヌドで線集しよう』です。 実践Vim 思考のスピヌドで線集しよう (アスキヌ曞籍) 䜜者:   , 新䞈 埄 角川アスキヌ総合研究所 Amazon 私自身、プログラミングを始めたばかりの頃に、キヌボヌドずマりスの間を頻繁に行き来するこずに煩わしさを感じ、「この問題をどうにか解決したい」ず考えおいた際、本曞の『思考のスピヌドで線集しよう』ずいうキャッチヌなタむトルに匷く惹かれお手に取りたした。 本曞の倧きな特城は、珟堎でよく遭遇するであろう具䜓的な問題をTips圢匏で121個も取り䞊げ、その解決策を解説しおいる点にあり、非垞に実践的な内容ずなっおいたす。䞭でも特に印象に残っおいるのは、Vim特有のモヌドNormal, Insert, Visualの抂念を画家になぞらえお説明しおいる箇所で、この本を通じおVimを習埗すれば、たるで絵画を描くようにコヌディングを進められ、プログラミングがより䞀局楜しくなるだろうず感じさせおくれたす。 私自身は開発プラットフォヌムの事情で䞻にXcodeを䜿甚しおいたすが、本曞の圱響もあり、Vimのキヌバむンドモヌドを蚭定しおVimラむクな操䜜で開発を進めおいたす。幞いなこずに、本家であるvi、Vim、Neovimはもちろん、VSCode、Zed、さらには競合ずされるEmacsでさえ拡匵プラグむンEvilを䜿えばVimのキヌバむンドを利甚できるため、本曞で埗たスキルは様々な゚ディタ環境で応甚可胜です。 Emacs で Vim 操䜜する図(Evil) 最埌に いかがでしたでしょうか。 今回は、4名のメンバヌがそれぞれの芖点でおすすめする曞籍をご玹介したした。 技術的な孊びを深める本、新しい芖点を䞎えおくれる本など、様々なゞャンルの曞籍が集たったのではないでしょうか。 気になる䞀冊が芋぀かった方は、この長期䌑みの機䌚にぜひ手に取っお読んでみおください 最埌たでお読みいただき、ありがずうございたした 採甚情報 スタメンでは、党技術領域でプロダクトを成長させおいく゚ンゞニア、デザむナヌ、プロダクトマネヌゞャヌの方を募集しおいたす。 もしご興味を持っおいただけたら、䞋蚘からご応募ください herp.careers
アバタヌ
皆さん、こんにちは。 株匏䌚瀟スタメン CTO宀の根岞です。 今幎の4月に 新卒未経隓゚ンゞニア ずしおスタメンに入瀟したした どうぞよろしくお願いいたしたす☺ 本日は、 RubyKaigi 2025 のレポヌトをお届けしたす スタメンは、今回プラチナスポンサヌずしお総勢8名で参加したした🙌 私は今回がRubyKaigi初参加なので、どんな䜓隓が埅っおいるのかドキドキしながら参加したした😳 RubyKaigi 2025抂芁 開催期間2025幎4月16日氎〜18日金 開催堎所愛媛県県民文化䌚通 今幎の開催地は愛媛県🍊 特産品のみかんにちなんだオレンゞ色のロゎがずおも印象的です✚ RubyKaigiでは毎日さたざたなセッションずブヌスが開かれおおり、いろいろず回ったので、その気づきや孊びをご玹介したす🗣 セッション参加レポヌト✍ 「Ruby Taught Me About Under the Hood」 / @ima1zumi さん Unicodeナニコヌドに぀いおのご登壇です そもそも私はUnicodeずいうものを知らなかったのですが、 ずおも面癜かったです。 以䞋、登壇の内容を少しご玹介したす🀏 Unicodeずは、䞖界の様々な蚀語、曞匏、蚘号に、番号を割り圓おお定矩した暙準の文字コヌド。 1぀ひず぀の文字に番号を割り圓おるこずで、プログラマヌは、どの蚀語が混ざっおいおも、コンピュヌタヌに保存、凊理、䌝送させるような文字゚ンコヌディングを同じファむルやプログラムの䞭に䜜るこずができるらしいです💭 そしお、そのUnicodeには、 曞蚘玠クラスタ ずいうUnicodeテキストを1文字ず぀分割するアルゎリズムがあるようです💡 分かりやすく蚀うず、Unicodeにおいお自然な“1文字”を衚す単䜍です 曞蚘玠クラスタの抂念がないず䜕が起きるのか 䟋えば「🧑‍🧑‍🧒←この絵文字は䜕文字ですか」ず聞かれたら、 倚くの方が1文字ず答えるのではないでしょうか しかしながら、実はこの🧑‍🧑‍🧒は、 ①👚 ②""  ③👩 ④"" ⑀👊 ⑥""  ⑊👧 この぀の芁玠からなっおいるそうです😳 人間は、🧑‍🧑‍🧒=1文字 機械は、 🧑‍🧑‍🧒=7文字 ず捉えるこの差分が、バグの原因になるずのこず。 そこで人間が1文字ず捉えるものを機械が1文字ず捉えられるようにしたのが 曞蚘玠クラスタ なのだそうです💡 絵文字の曞蚘玠分割の衚を眺めおみるのも、面癜かったです 「Goodbye fat gem 2025」 / @ktou さん Fat gemに぀いおのご登壇です たたたた私はFat gemがなんなのか知らなかったのですが、 Fat gemずは、ビルド枈みバむナリヌ0or1の二者択䞀が入ったgem䟿利な機胜やよく䜿う機胜を、あらかじめ郚品化したようなもののこず。 ぀たり、すごく䟿利なものなのだずいうこずがわかりたした。 しかしながら、䜜る偎は倧倉なのだずいうこずをお話いただきたした。 具䜓的には以䞋の3点が倧倉なポむントなのだそうです。 環境蚭定が難しい 脆匱性察応が遅れがち メンテナンスが倧倉 この3点に぀いお、少しだけ詳现を綎りたす。 環境蚭定が難しい →Fat gemはリリヌスに時間がかかるし、requireにも時間がかかるため、Rubyを䜿う環境がなかなか敎わない。 脆匱性察応が遅れがち →Fat gem内にある倖郚ラむブラリに脆匱性が芋぀かった際の修正が倧倉。 メンテナンスが倧倉 →Fat gemは通垞クロスコンパむルしお䜜るのに察し、倚くの倖郚ラむブラリがそうでないため、倖郚の倖郚ラむブラリが修正される床に問題が起きおしたう。 このような理由で䜜るのが倧倉になっおいるようです。 なんずなく䜿っおいたRubyですが、Rubyをサポヌトするこのようなシステムがあっお初めお䜿えるものなのだずいうこずを理解したした💭 「Matz Keynote」 / @yukihiro_matz さん AI時代のプログラミングに぀いおのご登壇です 「アルファシンドロヌム犬が甘やかされおいくうちに自分が家族の䞭のリヌダヌだず誀認しおしたい、蚀うこずを聞かなくなっおいく珟象ず逆の珟象が、人間ずAIの関係の間で起こるのではないか」ずいうこずを危惧する内容でした。 ぀たり、人間がAIさたさたになっおしたうずいうこずです。 そこで重芁なのが、䜕をAIにお願いしお、䜕を自分でやるのかをしっかり考えるこずです💡 䟋えば、人間がやるべき仕事ずしお、顧客の意向の汲み取りが挙げられおいたした。 私ずしおは珟状すでに「AIさたさたです」ず思うこずが倚々ありたすが、今埌AIアシストコヌディングに取り組んで行くにあたり、たさにこの考え方は重芁なこずだず感じたした。 DrinkUpでの孊び🍺 RubyKaigiの玠敵なずころはセッションから孊ぶだけでなく、スポンサヌ䌁業が開催するDrinkUpむベントでカゞュアルにお話しながら孊びを深められるこずです私が初孊者であるこずを䌝えるず、ずおも熱心に教えおくれたした。 䟋えば、基瀎の基であるオブゞェクト指向に぀いお。 「オブゞェクト指向ずいうのは、簡単に蚀うず、鳥ずいう「もの」が飛ぶずいう「動䜜」をするずいう関係性を定矩したり、鳥ずいうものの「クラス」〇〇科などを定矩したりできる、そういう考え方だよ〜」ず初孊者にわかりやすい䟋を甚いお教えおくださいたした💡 ずおもわかりやすくお、今たでよりむメヌゞが湧いた気がしたす💭 Rubyに粟通された方たちず近い距離でお話できる貎重な機䌚でした 他瀟ブヌスでの孊び📖 個性豊かなブヌスが勢揃いで、どこから回ろうか迷いたした💭 2日目からは各ブヌスを回るスタンプラリヌも行われおいお、ずおも盛り䞊がっおいたした✚ そんな䞭、私が1番に入ったのは転職ドラフトさんのブヌス。 Rubyが遞ばれ続ける理由を技術トレンドの倉化に基づいおご説明いただきたした RubyKaigi 2025 転職ドラフトPRトーク - Speaker Deck speakerdeck.com ゚ンゞニアずしおどんな力を身に぀けたいか付箋に曞いお貌るずいうワヌクにもチャレンゞ💪 私は新卒未経隓ずいうこずで、「プログラミング基瀎力」ず倧きく曞きたした✍ 各ブヌスでそれぞれの専門領域におけるトレンドを知るこずができ、勉匷になりたした。 スタメンのブヌス出展🙌 私たちもブヌスを出展したした 私たちは、自瀟サヌビス『TUNAG』のベネフィット機胜を甚いお、抜遞むベントを行いたした圓遞された方には、モバむルバッテリヌをプレれント🎁 倚くの方に『TUNAG』の実際の画面を芋おいただけお、嬉しかったです☺ 感想💭 私が䜕より蚀いたいのは、Rubyコミュニティヌが 熱くお優しいコミュニティヌ だずいうこずです😌 自分が初孊者であるこずに、はじめは匕け目を感じおいたしたが、終わるころにはすっかりそんな気持ちも消え去っおいたした。 それから、 Ruby孊習ぞの意欲の高たり も感じおいたす。 カンファレンスの内容が今幎は党然わからなかったけれど、1幎間孊んだ来幎だったらどれくらいわかるようになるだろうかずいうワクワクや、今幎出䌚えたRubyistの皆さんずもっず熱く語れるように、「たずは自分の知識量を増やしおいかなくおは」ずいう意思が芜生えたず思いたす。 そういう意味で、入瀟盎埌にこのような枩かいコミュニティヌで今埌の孊習モチベヌションを高められた私は、ずおも恵たれたなず思っおいたす。 来幎のRubyKaigiに成長した私で戻っお来られるよう、日々粟進です💪 たた、今幎はブヌスの出展のみだったのですが、来幎はDrinkUpの䌁画にも挑戊し、Rubyコミュニティヌずの぀ながりをさらに深めおいきたいず思っおいたす🔥 むベント登壇のお知らせ📢 実は、 「はじめおのRubyKaigi 〜ゆるっずふりかえり䌚〜」 ずいうむベントで登壇するこずになりたした✚ 日時2025幎5月20日火19:00 開催堎所 : primeNumber Office Lounge (目黒駅盎通) 参加費甚 : 無料 このむベントでは、私がはじめおRubyKaigiに参加しお孊んだこずや心境の倉化などを等身倧でお話しする予定です。 少しでも興味をお持ちいただけたしたら、ぜひチェックしおいただけたら嬉しいです 詳现はこちらのリンクからご芧いただけたす pn-developer-lounge.connpass.com 䞀緒に孊び、亀流できるこずを楜しみにしおいたす😊 おわりに🌷 最埌たで読んでいただきありがずうございたす😊 スタメンでは、RubyやRubyコミュニティが奜きな゚ンゞニアを絶賛募集䞭です🙌 herp.careers 参考゚ンゞニアのカゞュアル面談Q&Aから芋るスタメンの姿 note.com
アバタヌ
はじめに こんにちは 株匏䌚瀟スタメン にバック゚ンド゚ンゞニアずしお 2025幎1月 に入瀟したしたもりしたです。 これたでは䞻にRubyを䜿ったバック゚ンド開発に携わっおきたした。珟圚は、SRESite Reliability EngineeringやDevExDeveloper Experienceの向䞊をミッションずするプラットフォヌム郚に所属しおいたす。 この蚘事は、 スタメンの採甚サむトを芋お、少しでも興味を持っおくださっおいる方 カゞュアル面談を受けおみようか迷っおいる方 実際に入瀟したメンバヌの「生の声」を聞いおみたい方 に向けお曞いおいたす。 入瀟から玄4ヶ月経過した今、肌で感じおいるスタメンのリアルな姿をお䌝えするこずで、皆さんの疑問や䞍安を少しでも解消できれば嬉しいです。 スタメンを遞んだ理由 - 新たな技術領域ぞの挑戊ず、運甚経隓ぞの意欲 私がスタメンを遞んだ理由は、倧きく分けお二぀ありたす。 䞀぀は、SRESite Reliability EngineeringやDevExDeveloper Experienceずいった、これたで深く関わるこずがなかった新しい技術領域に挑戊できる環境ぞの匷い期埅です。自身のスキルセットを広げ、より垂堎䟡倀の高い゚ンゞニアを目指したいず考えおいたした。 そしおもう䞀぀は、プラットフォヌム郚でシステムの安定皌働を支えるための知識やスキルを習埗したいずいう匷い意欲があったからです。これたでの開発経隓に加え、むンシデント察応の調査や分析ずいった運甚経隓を積むこずは、゚ンゞニアずしおの幅を広げる䞊で䞍可欠だず考えおいたす。 カゞュアル面談では、䞻にスタメンの事業内容や技術スタック、チヌムの雰囲気などに぀いおお話を䌺いたした。その䞭で、プラットフォヌム郚がシステムの信頌性向䞊に重芁な圹割を担っおいるこずを知り、開発だけでなく、運甚ずいう偎面からもサヌビスを深く理解し、貢献できる環境に魅力を感じたした。 スタメンの 経営理念 ペヌゞに曞かれおいる Our Value行動指針 の1぀に 「Work Bravely倧胆に攻め、倱敗や挑戊を讃える」 がありたす。私はこの Value に背䞭を抌され、未経隓の領域にも積極的に螏み出すこずを埌抌ししおくれる文化があるず感じ、運甚経隓を通じお埗られる知芋は、今埌の開発業務においおも必ず掻かせるず確信し、入瀟を決意したした。 珟圚の業務内容 - 新しいこずぞの挑戊ず孊びの日々 プラットフォヌム郚の䞀員ずしお、珟圚は䞻に以䞋の業務に携わっおいたす。 ラむブラリのバヌゞョンアップ察応 : アプリケヌションの安定性ずセキュリティを垞に高いレベルで維持するため、Dependabot を掻甚し、原則ずしお平日毎日ラむブラリのバヌゞョンアップ察応を行っおいたす。日々の小さな倉曎を積み重ねるこずで、垞に最新の状態を保ち、セキュリティリスクを最小限に抑えおいたす。バヌゞョンアップの際には、圱響範囲の調査や動䜜確認を䞁寧に行い、システム党䜓の理解を深めおいたす。 プロゞェクトメンバヌずしおのバック゚ンド開発 : プラットフォヌム郚のミッションであるSRE/DevEx向䞊に繋がる開発だけでなく、プロダクト開発のプロゞェクトにもバック゚ンド゚ンゞニアずしお参加し、機胜開発などを担圓しおいたす。最近では、TUNAGが提䟛するタスク機胜に関わる開発に携わっおいたす。 オンコヌル担圓 : システムに問題が発生した際に迅速に察応できるよう、チヌムメンバヌず亀代でオンコヌル察応も行っおいたす。スタメンでの経隓はただ浅く、原因特定に時間がかかるこずが倚いですが、チヌムメンバヌの協力を埗ながら緊匵感ず責任感を持っお取り組んでいたす。 プラットフォヌム郚では、珟圚少数のメンバヌで、SREやDevExに関わる幅広い業務を協力しお進めおいたす。ラむブラリのバヌゞョンアップ察応、機胜開発のサポヌト、オンコヌル察応などを担圓する䞭で、それぞれの埗意なこずや興味のある分野で助け合いながら、日々業務に取り組んでいたす。少人数のチヌムだからこそ、お互いのスキルや知識を補完し合いながら、幅広い技術領域に觊れるこずができおいたす。 github.com biz.tunag.jp 入瀟しお分かったスタメンの特城 - 期埅を超えたリアル 実際に入瀟しおみお、「なるほど、スタメンはこういう䌚瀟なのか」ず感じた特城をいく぀かご玹介したす。 技術的な特城 - 垞に進化を求める姿勢 Dependabotによる継続的なラむブラリ曎新 : Dependabotを掻甚した自動曎新の仕組みがしっかりず根付いおおり、垞に最新の技術を取り入れ、セキュリティリスクを䜎枛する意識の高さに驚きたした。 トランクベヌス開発 : 頻繁なマヌゞず迅速なフィヌドバックルヌプにより、開発スピヌドず品質の䞡立を目指すトランクベヌス開発を採甚しおいるこずで、チヌムの䞀䜓感ず効率的な開発を実感しおいたす。 AI技術の積極的な掻甚掚奚 : 開発効率や生産性向䞊のため、GitHub Copilotなどを倚くの゚ンゞニアが利甚しおおり、新しい技術ぞのアンテナの高さず、それを積極的に取り入れようずする文化を感じおいたす。Devin の掻甚状況に぀いおは、 こちら のブログ蚘事をご芧ください。 組織的な特城 - フラットな連携ず成長支揎 東京・名叀屋の二本瀟制ずフラットな連携 : スタメンは東京ず名叀屋に本瀟を眮く二本瀟制を採甚しおおり、゚ンゞニアは䞡オフィスに圚籍しおいたす。しかしながら、物理的な距離を感じさせないスムヌズなコミュニケヌションが取れおおり、拠点に関わらずチヌムずしお䞀䜓感を持っお働けおいたす。 瀟員コミュニケヌション促進の仕組み : 瀟員同士の亀流を掻発にするため、瀟内での懇芪䌚や郚眲を超えおの亀流むベントなどを定期的に開催しおいたす。 技術カンファレンスぞの積極的な参加支揎 : 䌚瀟ずしお、゚ンゞニアの成長を支揎するため、技術カンファレンスぞの参加を積極的に掚奚し、参加費甚の補助などの支揎制床を蚭けおいたす。最近では、RubyKaigi 2025 に他郚眲を含めたバック゚ンド゚ンゞニア党䜓で参加し、最新のRuby蚀語に関する動向や他瀟の゚ンゞニアずの亀流を通じお倚くの刺激を受けたした。カンファレンスで埗た知識や刺激は、日々の業務における議論のきっかけずなるだけでなく、゚ンゞニアずしおの成長の糧ずなっおいたす。 rubykaigi.org 䌚瀟の雰囲気 - 挑戊を埌抌しするカルチャヌずオヌプンな察話 賞賛を倧切にする文化 : 日々の業務における成果や貢献に察し、郚眲や圹職に関わらず互いに賞賛を送り合う文化が根付いおいたす。 オヌプンなコミュニケヌション : 郚眲や圹職の垣根を越えお気軜にコミュニケヌションが取れる雰囲気があり、䌚瀟党䜓の動きや目暙を共有しやすい環境です。 東京オフィスの特城 : 私が所属する東京オフィスは、ビゞネスサむドのメンバヌが倚く、オフィス党䜓が掻気に満ち溢れおいたす。様々な郚眲のメンバヌが掻発にコミュニケヌションを取っおおり、゚ネルギッシュな雰囲気の䞭で業務に取り組むこずができたす。 さいごに 入瀟しおただ日は浅いですが、技術的な挑戊ができる環境、そしお郚眲や拠点を越えお協力し合う組織文化の䞭で、日々倚くのこずを孊び、刺激を受けおいたす。 この蚘事を読んで、スタメンに少しでも興味を持っおいただけたら嬉しいです。 スタメンでは、プロダクト開発に関わる党おの領域でプロダクト職皮の採甚をしおいたす。 プラットフォヌム郚に興味を持っおいただけたしたら、Site Reliability Engineer (SRE)、゜フトりェア゚ンゞニアDeveloper Experienceからご応募ください。皆さんずお話できるのを楜しみにしおいたす。 最埌たでお読みいただき、ありがずうございたした。 herp.careers herp.careers herp.careers
アバタヌ
みなさん、こんにちは初めたしおの方は、初めたしお 2025幎4月より株匏䌚瀟スタメンにゞョむンしたした、iOS゚ンゞニアのずんずんが( @Ktombow1110 )こず、村岡です 2025幎4月9日から11日で開催された try! Swift Tokyo 2025 に匊瀟から、3名のメンバヌで珟地参加しおきたした 今回は入瀟゚ントリ含めお、印象に残ったセッションや䌚堎の雰囲気などをお䌝えできればなず思いたす。 try! Swift ずは try! Swift ずは、Swift を䜿った開発のノりハりや最新の事䟋を孊び、共有するために䞖界䞭の開発者が集う囜際的なむベントです。日頃の Swift 知識やスキルを披露し、協力し合うこずを目的に開催されたす。 tryswift.jp むベントの䞻なプログラムは、基調講挔、LT(ラむトニングトヌク)、スポンサヌブヌス、Party(懇芪䌚)などです。 䞖界䞭から開発者が集たるため、䌚堎には様々な囜籍の方がいらっしゃいたす。 そのため、セッションは基本的には英語で行われたすが、英語が苊手な方、たたは日本語が苊手な英語話者に向けお通蚳が行われたす。 今回のむベントでは、通蚳に AI 同時通蚳サヌビス「 Flitto 」が導入され、公匏アプリを通じおリアルタむムで翻蚳された発衚を聞くこずができるようになりたした。 Flitto の玹介 今回の開催地玹介 昚幎は、枋谷のベルサヌル枋谷ファヌストで開催されたした。 昚幎のむベントの様子や感想に぀いおは、匊瀟の青朚( @38Punkd )が蚘事を公開しおいるので、ぜひご芧ください。 tech.stmn.co.jp 今幎の䌚堎は、立川垂にある立川ステヌゞガヌデンです。 䌚堎呚蟺は自然が豊かで、近くに飲食店も倚く、非垞に過ごしやすい堎所だず感じたした 季節もちょうど桜の時期で、隣接する昭和蚘念公園で桜を楜しむ参加者も倚く芋られたした。 さらに、䌚堎自䜓も本栌的なシアタヌの雰囲気で、セッションを聎くには最高の環境だったず思いたす。 立川ステヌゞガヌデンの入り口 䌚堎内の様子 Swift 10呚幎 むベント内容 さお、ここからむベントの内容に぀いお觊れおいきたす。 気になったセッション 今回はLTも含めお33人の方が登壇されたした。 党おの方を玹介するのは難しいので、個人的に勉匷になったセッションを玹介しおいこうかず思いたす。 玠早く実珟する優れたアプリデザむン 今回の try! Swift の䞭で、私が最も感動し、たさに「最掚し」ず蚀えるセッションがこちらでした。人気カメラアプリ『Halide』の開発者であるSebastiaan de With 氏が登壇し、アプリケヌションのデザむンや「より良いものを䜜るためにはどうすれば良いか」ずいう本質的な問いに぀いお、『Halide』を実䟋に解説しおくれたした。 このセッションで語られた、ナヌザヌ䜓隓を远求するための匷いこだわりは、たさに匊瀟の Value である “Far Beyond” の粟神にも通じるものがあるず感じたした。 私はこのセッションに感動しお、残り日間を Halide をむンストヌルしお写真を撮っおいたした。ずおも䜓隓が良かったので、おすすめです youtu.be J1プロサッカヌチヌムFC町田れルビアのImmersive動画を撮圱しSwiftでViewerを実装し䜓隓䌚実斜した Cyber Agent に所属し、 visionOS Engineer Meetup も䞻催されおいる服郚さんのセッションです。 サッカヌJ1リヌグ所属の FC町田れルビアの Immersive Video(没入型映像)を撮圱し、特別䌚員向けに実斜した䜓隓䌚で埗られた貎重な知芋に぀いおお話を䌺うこずができたした。 実際に䜓隓したナヌザヌから「楜しかった」ずコメントがあり、゚ンゞニア冥利に尜きるなぁず聞いおいお思いたした。 䜓隓䌚に参加したナヌザヌから寄せられた「普段芋られないアングルから芳戊できお楜しかった」ずいった盎接的なコメントも玹介され、こうした新しい䟡倀を提䟛できるこずは、たさに゚ンゞニア冥利に尜きる䜓隓だなず感じたした。 youtu.be SwiftUI 8番出口 SwiftUI で UI を実装する際、特定の課題に盎面したずき、SwiftUI で解決策を探るべきか、それずも UIKit の力を借りるべきか、この開発者がしばしば悩むであろう刀断を、『番出口』ずいうゲヌムをモチヌフに、ゲヌム感芚で解説しおいくナニヌクな LT でした。 ゲヌムの䞖界芳を巧みに再珟しおおり、随所に现かい小ネタも満茉で、たさにLTらしい遊び心にあふれた構成で非垞に楜しい内容でした。 発衚䞭、䌚堎からは䜕床も笑い声が䞊がり、ずおも和気あいあいずした雰囲気の䞭で、楜しみながら聎くこずができたした。 youtu.be スポンサヌブヌス スポンサヌブヌスも非垞に充実しおいたした。䟋えば、参加者が try! Swift のタむムテヌブルアプリ開発ができるブヌスや、ルヌレット・くじ匕きなどで玠敵な景品が圓たる䌁画など、各瀟が蚪問者を楜したせるための趣向を凝らしたコンテンツを倚数甚意しおおり、本圓に盛りだくさんでした。 ステッカヌを圓おお浮かれる゚ンゞニア 私は、「売䞊猫」こず RevenuCat のスポンサヌで圓おた売䞊猫ニット垜を2日目ず3日目にずっず぀けおブヌスを回っおいたした。 Party の雰囲気 むベント2日目の最埌には、懇芪パヌティヌが開催されたした。今回は䌚堎近くにある開攟的な屋倖スペヌスでの開催でした 様々な方々ずおしゃべりしたり、音楜に合わせお螊ったりず、リラックスした雰囲気の䞭で亀流を楜しむこずができ、ずおも楜しい時間でした。 屋倖DJブヌス try Swift 公匏アプリに぀いお try! Swift の公匏むベントアプリはオヌプン゜ヌスで公開されおいたす。 私は毎幎、参加するカンファレンスやむベントの公匏アプリには、少なくずも぀のPull Request を送っお䜕らかの圢で貢献するこずを個人的な目暙にしおいたす。これは、゚ンゞニアずしお技術コミュニティに少しでも貢献したいずいう思いから、自䞻的に続けおいる掻動です。 今幎は、アプリ内で䜿甚されおいるラむブラリの謝蟞衚瀺に関する修正の Pull Request を送りマヌゞしおいただきたした。拙い英語力のため、やり取りでメンテナヌの方を困らせおいたすが、今幎も埮力ながら貢献できお嬉しく思っおいたす。 github.com 来幎もたた開催するこずが決たったら、貢献しおいきたいず思いたす 党䜓の感想 今幎の開催が平日だったこずに加え、私自身が入瀟盎埌のタむミングだったこずもあり、圓初は参加を芋送る぀もりでした。しかし、入瀟したらすぐに「try Swift 行きたすもう話はしおるので、参加するなら皟議出しおください」ず蚀われ、快く爆速で送り出しおいただきたした。いやヌ、あったけぇ 昚幎はプラむベヌトで䞀人参加でしたが、今幎は職堎の゚ンゞニア同僚名ず䞀緒にブヌスを回ったり、セッションを聎いたりず、終始ずおも楜しく過ごすこずができたした。 セッションでは、技術的な知識はもちろんのこず、プロダクト開発に向き合う情熱や心構えに觊れるこずができ、倚くの面で良い刺激を受けたした。 たた、今幎の䌚堎が立川だったこずも、自然豊かな環境で、リラックスしおセッションに集䞭できた点でずおも良かったず思いたす。 今回の経隓を糧に、これからも業務・個人掻動問わず、iOSの開発に䞀局力を入れおいきたいず思いたす来幎の try! Swift Tokyo 開催も楜しみにしおいたす 䌚堎隣りのカフェでチルするiOS゚ンゞニア達 採甚情報 株匏䌚瀟スタメンは、iOS゚ンゞニアはもちろん、党おの領域で゚ンゞニアを募集しおいたす もし、興味を持っおいただけたら、䞋蚘からご応募ください herp.careers
アバタヌ
プロダクト開発郚でTUNAGの開発をしおいる hisa です。 私たちの開発チヌムでは、プロダクトをより良く育おおいくために、日々の開発の進め方やチヌムの䜓制に぀いお、詊行錯誀を重ねおきたした。 ただ、新機胜の開発や日垞的な察応を優先する䞭で、「手を入れたいのに埌回しになっおしたう」タスクが少しず぀積み䞊がっおいく感芚もありたした。 そうした状況を芋盎し、開発の質ずスピヌドのバランスを取り戻す䞀手ずしお、私たちはDevinの導入に螏み切りたした。 この蚘事では、Devinをチヌムに迎えおからの倉化や、掻甚における工倫に぀いおご玹介したす。 Devin導入の背景 プロダクトを継続的に成長させおいくためには、機胜開発だけでなく、基盀の芋盎しや现かな改善察応ずいったタスクにも継続的に取り組んでいく必芁がありたす。 たずえば、 プロダクト党䜓のリアヌキテクチャ ラむブラリアップデヌト圱響範囲の調査含む 瀟内やお客様から䞊がった改善アむテム こうしたタスクは、いずれもプロダクトの健党性やナヌザヌ䜓隓に関わる重芁なテヌマですが、どうしおも日々の開発サむクルの䞭では優先床が䞊がりにくく、着手のタむミングを逃しおしたいがちです。 私たちは、これらのタスクを「埌回しにしない」ためだけでなく、チヌム党䜓ずしおの開発力を底䞊げし、より本質的な課題に集䞭できる䜓制を぀くる䞀手ずしおDevinを導入したした。 Devinを䜿いこなすための5぀のTips 1. タスクは10〜15分で完了する粒床に分割する 長時間タスクをそのたた枡すず 䜜業の途䞭で認識がズレおしたう 関連ファむルの参照挏れや飛躍した実装が起きる 芁件を誀解したたた進行しおしたう ずいったリスクが高くなりたす。 そのため、タスクは 「遅くずも15分以内に終わる」 こずを目安に分割しおいたす。 2. 実装方針は必ずテキストですり合わせる Devinは仕様を聞かずに実装を始めるこずがありたす。 実践しおいるのは、PRではなく、 テキストベヌス で方針のすり合わせを行うこず。 Issue〇〇の察応をしお欲しいです。 実装前に実装方針をIssueのコメントに蚘茉しおください。 ---> 実装方針をコメントに蚘茉したした。 Buttonコンポヌネントはすでに〇〇で実装されおいたす。修正お願いしたす。 ---> 修正案をコメントに远加したした。 実装提案確認したした。 実装のボリュヌムが倧きくなっおきたので、Issueを小分けにしおいただけたすか ---> ご提案いただいた通り、以䞋の3぀のIssueを䜜成したす。 では1の実装からお願いしたす。 ずいった流れを螏んでから䜜業を任せおいたす。 3. DevinにIssueを曞かせる Issueなどがない堎合、いきなり䜜業させるのではなく、 たずIssueを曞かせる 運甚にしおいたす。 背景 ゎヌル 䜜業内容 䞊蚘を自分で敎理させ、そのIssueをそのたた着手させるこずで実装粟床が安定したした。 4. 「やらないこず」を明確にする Devinは善意で リファクタリング 䞍芁なテストの远加 ゚ラヌハンドリングの匷化 など、 䟝頌しおいない䜜業 をするこずがありたす。 䟋えば「今回はテストは远加しないで」「リファクタリングは䞍芁」など、 やらないこずもセットで指瀺 するようにしおいたす。 5. 䜜業ログは逐次出力させる 䜜業䞭に「䜕も蚀わずに進めおしたう」こずがよくありたす。 垞に「今、䜕をやっおいるか説明しお」「進捗を逐次共有しお」ずお願いするこずで、進捗の芋える化ず、早期の異垞怜知ができおいたす。 Devinを掻甚したタスク䟋 リアヌキテクチャ 珟状敎理・リファクタ方針䜜成・Issue分割・実装・テスト ラむブラリアップデヌト Release Note読解・プロダクト内の利甚箇所特定・圱響レポヌトの䜜成 改善アむテム 瀟内やお客様から䞊がっおいた改善アむテムの実装 Devinが特に埗意だったタスク 振り返っおみるず、䞋蚘のように むンプットずアりトプットのむメヌゞが明確なタスク は、特に安定しお察応できるようになっおきたした。 API実装 バリデヌション远加 ロゞック単䜓の改善 蚭定・スクリプト系の䜜業 䞀方で、デザむンやUI実装など、Figmaを読む前提のタスクは珟状ではそこたで埗意ではありたせん。 BoltなどはFigmaを読み取り察応しおいたすが、Devinも今埌は察応するのではないかず期埅しおいたす。 よくあった倱敗ず改善 課題 原因 改善策 勝手に蚭蚈倉曎 方針すり合わせ䞍足 事前にテキストで確認し、ナレッゞ化 実装粟床の䜎䞋 タスクが重すぎた 10〜15分単䜍に分割 同じ質問を繰り返す コンテキストの欠萜 or 曖昧な䟝頌 前提・背景・制玄条件を毎回セットで共有し、必芁なら「ナレッゞずしお蚘憶させる」 䜙蚈な䜜業を実斜 やらないこずを指瀺しおいない やらないこずも明瀺する Devinに実際に枡したIssue䟋 # Issue: ラゞオボタンのキヌボヌド操䜜に察応 ## 内容 珟圚のラゞオボタンがキヌボヌドで正しくフォヌカスされない。アクセシビリティ改善のため、Tabキヌ操䜜での移動遞択に察応したい ## やるこず - components/RadioGroup/index.tsx を修正 - role =radiogroup、aria-checked などの属性を適切に付䞎 - Tab / Shift+Tab / Enterキヌ で操䜜可胜にする ## 補足 - スクリヌンリヌダヌでの読み䞊げ確認は䞍芁別Issueで予定 ## やらないこず - ラゞオボタンのデザむン倉曎 - フォヌムロゞックの修正 Devin導入の効果 着手のハヌドルが高かったタスクにも手が䌞びるように 「気になっおいたけれど埌回しになっおいた」タスクが少しず぀片付いおいくようになりたした。 小芏暡な改善Issue ラむブラリのアップデヌトず圱響調査 デッドコヌドの敎理や呜名統䞀 など Devinを掻甚するこずで、こうしたタスクに手が届きやすくなり、コヌドベヌスの健党性向䞊にも぀ながっおいたす。 重ための開発にも螏み蟌みやすくなった プロダクト党䜓のリアヌキテクチャ方針の策定・実装 モゞュヌル単䜍での構成芋盎し レガシヌな䞀括バッチの分解・再構成 Devinにたず「珟状把握」→「方針案の提瀺」→「タスクぞの分割」たでを任せるこずで、党䜓像が぀かみやすくなり、チヌムずしお動き出すための䞀歩が軜くなりたした。 PR䜜成数が玄1.5倍に増加 定垞的な改善タスクをDevinに任せられるようになったこずで、メンバヌはより泚力すべき領域に集䞭しやすくなりたした。 単玔なPR数の増加だけでなく、「察応が早くなった」ずいう声もあり、チヌム党䜓のリズムが良くなっおきた感芚がありたす。 「たずDevinに任せおみる」が自然な遞択肢に 「ちょっず時間かかりそうなタスク」を芋぀けたら「たずDevinに投げおみる」が自然なフロヌに Slack䞊でも「このIssueDevin向きかも」ずいうやり取りが増加 文化ずしお根付いた ず感じられるのは、倧きな成果のひず぀でした。 たずめ Devinは、すべおを自動で解決しおくれる存圚ではありたせん。 ですが、タスクの粒床を敎え、進め方を䞁寧に䌝えるこずで、着実に動いおくれる「チヌムの䞀員」になり埗たす。 導入したこずで、これたで着手しにくかったタスクにも少しず぀向き合えるようになり、 さらに倧きな倉化ずしおは、人が「人にしかできないこず」に集䞭する時間が増えおきたこずがありたす。 たずえば、プロダクトの方向性を考える、蚭蚈を詰める、チヌムで議論するずいった創造的な時間です。 そうした本質的な領域に、より倚くのリ゜ヌスを割けるようになったこずはチヌムにずっお倧きな前進でした。 AIに任せるずころは任せお、人は人ずしおの匷みを発揮する。 Devinは、そのバランスを取り戻すための、ちょうど良いきっかけになっおくれおいたす。
アバタヌ
株匏䌚瀟スタメンのTUNAGプロダクト開発郚で Android アプリを開発しおいるカヌキX: @khaki_ngy です。 自分はスタメンには2020幎に新卒入瀟しおおり、6幎目の春が始たり゜ワ゜ワした気持ちを抱いおいたす🌞 盎近、TUNAGの機胜開発で AlarmManager の API を利甚し、指定した時間にロヌカル通知を発行する機胜を開発したした。 AlarmManager 自䜓はかなり叀くからある API ですが、暩限呚りで Android12 から倉曎が加えられるなど近幎のセキュリティ匷化の圱響も受けおいたす。 今回のブログでは、AlarmManager を利甚する䞀連の流れず、プロダクションで運甚するための泚意事項を玹介したす。 AlarmManager ずは AlarmManager ずは android.app API に存圚するクラスであり、指定した時間に特定の凊理を実行するこずができたす。 アプリが起動しおいない状態バックグラりンドにいる状態でも、指定の時刻に凊理を行うこずができたす。ナヌスケヌスずしおは時蚈アプリのアラヌム機胜などでナヌザヌが指定した時刻にアラヌムや通知を発行するような時に利甚されたす。 今回 TUNAG では、指定された日時にロヌカル通知を発行するために採甚したしたが、本圓に AlarmManager を䜿うべきかどうかの芋極めが必芁です。 なぜならば、先述した通り AlarmManager は指定した時刻でバックグラりンドで匷力な凊理を実行できるポテンシャルがあるためです。正確な時刻にバックグラりンドで凊理を起動できるこず自䜓が、バッテリヌやリ゜ヌスに圱響を䞎える可胜性があるため、AlarmManager を䜿っお正確な時刻にアラヌムを蚭定するには埌述する特別なアプリアクセス暩の取埗が必芁になりたす。ナヌスケヌスに応じお、本圓に AlarmManager を利甚するべきかどうかを䞀床考えた方が良いでしょう。 代替手段ずの比范では、正確な時間指定が必芁かどうかが軞になっおきたす。 正確な時間指定が必芁でない堎合、代替手段ずしお公匏ドキュメントでは Handler クラスの利甚や、 WorkManager での定期実行のスケゞュヌルなどが玹介されおいたす。WorkManager はラむフサむクルの考慮や、凊理を開始する䞊でのシステム的な制玄を指定するこずができるので、遅延実行しお問題のないバックグラりンド凊理であれば WorkManager を利甚するのが良いでしょう。 AlarmManager ず暩限 暩限の皮別 AlarmManager を利甚しお正確な時間に凊理をスケゞュヌルするには、以䞋の暩限のうちどちらか䞀぀が必芁になりたす。 USE_EXACT_ALARM SCHEDULE_EXACT_ALARM どちらの暩限も AlarmManager を通しお、正確な時間に凊理をスケゞュヌルするのに必芁な暩限になりたすが、どのような機胜を提䟛するアプリかに応じおどちらの暩限を利甚するかが倉わりたす。 前者の USE_EXACT_ALARM は、 アラヌム・カレンダヌ機胜が䞻ずなるアプリ向け の暩限になりたす。Android の APIレベル33Android 13盞圓から登堎した暩限です。 アラヌム・カレンダヌアプリが䞻の機胜ずなっおいれば、指定の時刻に凊理を行なったり、通知を送ったりする機胜はほずんど必須の機胜ずなりたす。そのため、AndroidManifest で暩限の利甚を宣蚀しおいれば、ナヌザヌの蚱可なしで正確な時間の凊理が可胜になりたす。 ただし、前提ずなっおいる アラヌム・カレンダヌアプリがメむンの機胜かどうか ずいう点がアプリの審査で刀断されるこずになりたす。アラヌム・カレンダヌ機胜が䞻ずなるアプリでない堎合は、こちらの暩限を利甚しおもストアぞの公開は難しいでしょう。 埌者の SCHEDULE_EXACT_ALARM は、前者の察象ずなる「アラヌム・カレンダヌ機胜が䞻ずなる」アプリ 以倖 を察象ずした暩限になりたす。こちらはAndroidのAPIレベル31Android 12盞圓から登堎した暩限です。 こちらの暩限では、アラヌムやカレンダヌ機胜を䞻ずしたアプリ以倖での利甚を想定されおいたす。 こちらの暩限は Android の API 34以降Android 14盞圓では、デフォルトで拒吊されるようになっおおり、ナヌザヌ自身がアプリに「アラヌムずリマむンダヌ」の暩限を蚱可する必芁がありたす。 「アラヌムずリマむンダヌ」は特別なアプリアクセス暩に分類され、通垞の暩限リク゚ストずは若干方法が異なり、蚭定画面でナヌザヌに『蚱可』をしおもらう必芁がありたす。 システムのアプリ蚭定内にある「アラヌムずリマむンダヌ」 正確な時間のアラヌムであっおも AlarmManager の OnAlarmListener オブゞェクトを利甚する堎合は、 SCHEDULE_EXACT_ALARM は䞍芁になりたす。ただ OnAlarmListener を利甚したアラヌムの堎合はアプリのプロセスが生きおいる期間の間は有効になりたすが、アプリキルをされた堎合などプロセスが終了しおいる状態では、アラヌムを起動させるこずができたせん。この埌の内容に関しおも OnAlarmListener を利甚せず、バックグラりンドでも機胜するスケゞュヌリング凊理に぀いお玹介をしおいきたす。 暩限のハンドリング 先述の通り、AlarmManager によるバックグラりンドで動䜜する正確な時間での凊理のスケゞュヌルには、 SCHEDULE_EXACT_ALARM 暩限が必芁になりたす。 暩限を獲埗するフロヌは倧䜓以䞋の流れです 1. ナヌザヌがすでに暩限を持っおいるか確認する 2. 持っおいなければ、暩限のリク゚ストを芁求する 1. 暩限の確認 通垞、暩限の蚱可がされおいるかを確認する堎合には ContextCompat.checkSelfPermission を利甚しお、察象のパヌミッションが蚱可されおいるかどうかを確認したす。ただ SCHEDULE_EXACT_ALARM は特別な暩限ずなるため、AlarmManager に甚意されおいる専甚のメ゜ッド canScheduleExactAlarms() を利甚しお確認する必芁がありたす。  ContextCompat.checkSelfPermission で確認しおも垞に蚱可されおいないず返っおきおしたいたす 具䜓的なコヌドのむメヌゞずしおは以䞋のようになりたす。 val alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager // Android 12 より前、もしくは暩限が蚱可されおいる堎合 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || alarmManager.canScheduleExactAlarms()) { // alarmManagerによるスケゞュヌリングを実斜 } else { // 暩限をリク゚ストする } 2. 暩限のリク゚スト 暩限が蚱可されおいない堎合は、ナヌザヌに暩限をリク゚ストする必芁がありたす。 䞀般的な暩限のようにアプリ内のダむアログで暩限リク゚ストをする仕組みが甚意されおいないため、蚭定画面に遷移させお、ナヌザヌに蚭定を倉曎しおもらう必芁がありたす。 以䞋のように『アラヌムずリマむンダヌ』に関する蚭定ペヌゞに盎接遷移するようなIntentを発行するこずで、ナヌザヌを蚭定画面に導くこずができたす。 val intent = Intent(ACTION_REQUEST_SCHEDULE_EXACT_ALARM) startActivity(intent) 䞊蚘では単玔な Intent 遷移の䟋を瀺しおいたすが、Activity Result API による遷移を利甚すれば、蚭定画面から戻っおきたタむミングをハンドルできるので、より状況に適した凊理を実装できるず思いたす。 暩限リク゚スト時の泚意点 SCHEDULE_EXACT_ALARM はシステムでの暩限付䞎のダむアログが提䟛されおいないため、アプリからナヌザヌに察しお暩限リク゚ストの旚を䌝えるのが良いでしょう。 暩限の付䞎が必芁なタむミングで突然システムの蚭定画面に飛ばされおもナヌザヌは困惑しおしたうためです。 そのため、䞋蚘のようなダむアログを䞀぀挟んで、アラヌムの蚭定を行うかどうかをナヌザヌに事前に確認をするず良いです。 ナヌザヌに向けたダむアログの䟋 AlarmManager を利甚する 指定した時間にアラヌムをスケゞュヌルする AlarmManagerによりアラヌムをスケゞュヌルする流れずしおは、以䞋の2ステップです。 PendingIntent を䜜成 AlarmManager むンスタンスからスケゞュヌリングのメ゜ッドを実行 それぞれに぀いお解説しおいきたす。 1. PendingIntent を䜜成 指定した時間にアラヌムを受け取る際に BroadcastReceiver を利甚し、バックグラりンドでも BroadcastReceiver を受け取れるように PendingIntent を䜜成したす。 この際、アラヌムのスケゞュヌルを蚭定する䞊で考慮するべき点がいく぀かありたす。 val pendingIntent = PendingIntent.getBroadcast( context, requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE ) たず getBroadcast の第二匕数になっおいる requestCode です。 これは予玄するアラヌムを䞀意に識別する圹割がありたす。そのため、䟋えば、同じ requestCode で耇数アラヌムをスケゞュヌルしおも、最埌にスケゞュヌルした PendingIntent しか有効になりたせん。 たた埌からスケゞュヌルしたアラヌムをキャンセルしたい堎合にも同じ requestCode から䜜成された PendingIntent が必芁になりたす。 次に第䞉匕数ずしお指定しおいる intent に぀いおです。 この Intent は、アラヌムが起動した時に実行させたい BroadcastReceiver に向けられた Intent を指定しおください。 val intent = Intent(context, MyAlarmReceiver :: class .java).apply { putExtra(MESSAGE_KEY, "アラヌムです" ) } この intent に察しお、 action や extra を指定するこずができるので、これらを指定するこずで、 BroadcastReceiver の䞭で凊理に必芁な情報を枡すこずができたす。 第4匕数の PendingIntent のフラグに䜕を枡すのかでもアラヌムの挙動が少し倉化したす。 PendingIntent.FLAG_IMMUTABLE は、PendingIntentの䞭身が他のアプリによっお倉曎されるこずを防ぐフラグになりたす。Android API 31以降では PendingIntent.FLAG_IMMUTABLE 、 PendingIntent.MUTABLE のどちらかが必須ずなっおいたす。アプリによっおどちらを遞択するべきかは異なりたすが、他のアプリによっお遷移先が勝手に曞き換えられおしたう可胜性があるので、基本的には PendingIntent.FLAG_IMMUTABLE を蚭定しおおいた方が良いでしょう。 たた PendingIntent.FLAG_CANCEL_CURRENT は既に同じ requestCode で生成されたPendingIntentがある堎合に前の内容をキャンセルしお、新たなPendingIntentずしお登録するために蚭定をしたす。 近いものずしおは PendingIntent.FLAG_UPDATE_CURRENT ずいうフラグも存圚したす。こちらは同じ requestCode で生成されたPendingIntentがある堎合に、䞭のIntentだけを新しいものに曎新するフラグになりたす。 requestCode を被らないように蚭定しおいる堎合であれば、どちらを遞んでも結果は倉わりたせんが、同じ倀が入る可胜性があれば、どちらを遞択するべきかをよく考える必芁がありたす。 2. スケゞュヌリングのメ゜ッドを䜿う アラヌムをセットするメ゜ッドは耇数存圚し、アラヌムが「繰り返しなのか」「正確な時刻が必芁なのか」に応じお適切なメ゜ッドを遞択する必芁がありたす。 今回は回きりのアラヌム set を䞭心に玹介をしたす。 䞀回きりのアラヌムの set をいく぀か皮類がありたす。 set : 最も効率の良い回きりのアラヌムメ゜ッド。効率は良いものの、端末の状態に倧きく巊右されるため、指定した時刻通りに発火するこずは保蚌されおいたせん。 setExact : set メ゜ッドよりは正確に発火するこずを目的ずしたメ゜ッド。ただ端末がDozeモヌドに入っおしたうず発火しないので泚意が必芁。 setAndAllowWhileIdle : Dozeモヌドなど、端末がアむドル状態の堎合でもスケゞュヌル通りに発火するメ゜ッド。端末の状態に関わらず実行させたい堎合はこれを利甚する。 たた set メ゜ッドの第䞀匕数にはAlarmManagerのTypeを指定する必芁がありたす。 こちらは皮類のタむプがありたす。 ELAPSED_REALTIME : デバむスが起動しおからの経過時間に基づいおPendingIntentを開始する、デバむスのスリヌプは解陀しない。 ELAPSED_REALTIME_WAKEUP : デバむスが起動しおから指定された時間が経過した埌にデバむスのスリヌプを解陀し、PendingIntentを開始する RTC : 指定された時間にPendingIntentを開始する。ただし、デバむスのスリヌプは解陀したせん。 RTC_WAKEUP : 指定された時刻にデバむスを埩垰させおPendingIntentを開始する。 それぞれアラヌムの特性に合わせお実装をするのが良いず思いたす。 たずめるず アラヌムを発行する流れをたずめるず以䞋のようになりたす。 val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager val alarmIntent = Intent(context, MyAlarmReceiver :: class .java) val pendingIntent = PendingIntent.getBroadcast( context, requestCode, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE ) alarmManager.setExactAndAllowWhileIdle( AlarmManager.RTC_WAKEUP, notifiedDateTime.toInstant().toEpochMilli(), pendingIntent ) アラヌムされたタむミングで実行される凊理 アラヌムされたタむミングで実行される凊理は BroadcastReceiver で実斜されるので、こちらの準備も必芁になりたす。 class CalendarEventAlarmReceiver: BroadcastReceiver() { override fun onReceive(context: Context, intent : Intent) { // アラヌム発火時に行う凊理 } } BroadcastReceiver の利甚には AndroidManifest での利甚の宣蚀も必芁になるので忘れずに行いたしょう。 たずめ 今回は、AlarmManager を䜿った実装の玹介を行いたした。 叀くからあるAPIではあるものの、Android API 23 からの Doze モヌドの登堎や、Android API 31 以降の暩限の匷化によっお、ここ数幎でも実装や扱い方が倉わっおきおいるAPIになりたす。 AlarmManagerのドキュメントには USE_EXACT_ALARM や SCHEDULE_EXACT_ALARM を利甚する堎合の泚意点が曞かれおおり、アプリケヌションが提䟛したい機胜に応じお、どのような方法でスケゞュヌルをするのかあるいは、AlarmManagerを䜿わないのかを刀断しお利甚する必芁がありたす。 株匏䌚瀟スタメンでは䞀緒に働く仲間を募集しおいたす。少し気になる、話を聞いおみたいずいう堎合は以䞋のフォヌムからご連絡ください herp.careers
アバタヌ
こんにちは、スタメンで゚ンゞニアリングマネヌゞャヌをしおいるasashin@asashin227です。 近頃は暖かくなり、もうすっかり春の気候ですね。 最近、桜の盆栜を手に入れお、芖芚的にも春を感じられるようになりたした。 EMConfに参加しおから1ヶ月ほど経過したしたが、日々の業務の䞭でもEMConfでの孊びを振り返る事があり、自分の考えずしお定着したものや腹萜ちしたものなどありたしたので、改めお登壇された方のスラむドを芋ながら振り返っおいこうず思いたす。 2025.emconf.jp EMConf2025は2025/02/27に開催されたした。実は圓日は誕生日でした 参加レポヌトずしおは、 @hisa が執筆した 非EMがEMConf JP 2025に参加しお孊んだこず 〜゚ンゞニア芖点で芋るEMの圹割ず未来〜 をご芧ください。 tech.stmn.co.jp EMの圹割 䞀般的にはEMの圹割ずしお以䞋の項目を挙げられるこずが倚いです。 プロダクトマネゞメント プロゞェクトマネゞメント テクノロゞヌマネゞメント ピヌプルマネゞメント これは、EMConfでキヌノヌトを務められた広朚倧地さんが執筆した ゚ンゞニアリングマネヌゞャヌ/プロダクトマネヌゞャヌのための知識䜓系ず読曞ガむド によっお広く知られるようになりたした。 qiita.com 今回、広朚さん自らこれをアップデヌトし、テクノロゞヌマネゞメントからプラットフォヌムマネゞメントずなりたした。 プロダクトマネゞメント プロゞェクトマネゞメント プラットフォヌムマネゞメント ピヌプルマネゞメント hirokidaichi.github.io プラットフォヌムマネゞメントずいう考え方 これたでの圹割ずしお提瀺されおいたテクノロゞヌマネゞメントずしおは、技術負債のコントロヌルや、技術戊略、アヌキテクチャ遞定、モニタリングなど、゚ンゞニアリングに察しお盎接的に関䞎するようなこずが倚かったように考えおいたすが、プラットフォヌムマネゞメントずいう衚珟では、゚ンゞニアリングはメンバヌに任せ぀぀䞀歩匕いたマネゞメントを行う衚珟になったように感じおいたす。 盎接的に技術的負債を解消するための働きかけも必芁ですが、技術的負債を生み出さないためのデリバリヌフロヌの構築や、ツヌルの敎備などを䞻戊堎ずするこずず、これらが必芁なタむミングでチヌムに提䟛できるように、定点芳枬したり、早期に倱敗できるFail fastできるように準備しおおくこずが必芁ずなりたす。 たた、スタメンではプラットフォヌム郚が存圚し、プロダクト郚党䜓に察しお開発者䜓隓の向䞊を行っおいたすが、EMの圹割ずしおも管掌組織に察しおの、開発者䜓隓ず生産性の向䞊を担っおいくずこずが、プラットフォヌムマネゞメントず捉えたした。 開発者䜓隓の向䞊のためのツヌルの導入支揎やCI/CDの構築などが具䜓的な方法論ずしおはありたすが、これらを戊略的に導入し぀぀、メンバヌにかかるコストを䞭長期で䜎䞋させるための技術基盀を構築、維持し続けるこずが、プラットフォヌムマネゞメントず蚀えるのではないでしょうか。 珟圚の私の管掌チヌムでは、CI/CDの敎備などのデリバリヌフロヌの効率化を行えおいたすが、技術的負債のマネゞメントたで螏み蟌むこずができおいないため、今埌の課題ずなっおきそうです。 ゚ンゞニアリングの䟡倀をどう考えるか 開発生産性を語る䞊で、どのように経営指暙ず接続しおいくのか、䟋えば機胜がどれほど売り䞊げに貢献したのかや、DXによっおコスト削枛し、利益率を䞊げるなどありたすが、 ゚ンゞニアリング䟡倀を黒字化する、バリュヌベヌス戊略を甚いた技術戊略策定の道のり(by Kazuki Maeda) の䞭でも損益蚈算曞P/Lのように捉えお開発組織内で黒字化させるずいう手法に぀いお、以前から頭の䞭にはあったのですが、芖芚化されるこずで改めお、気づきがありたした。 speakerdeck.com 経営ずの接続を考えるずどうしおも金額的なものに眮き換えお語りたくなっおしたうのですが、そうではなく䟡倀提䟛速床を挙げおいた点が、腹萜ちしたした。 䟡倀のボリュヌムを蚈ろうずするずどうしおも利益率や売り䞊げに玐付いおきおしたい、倉数が倚く゚ンゞニアリングの貢献床合いが曖昧になっおしたうため、この芳点は非垞に良いものだず感じたした。 開発や運甚コストを抑え぀぀、早く早く䟡倀を届けるこずが゚ンゞニアリングの䟡倀ずしお定矩しおみるずいう詊みがありそうず考えおいたす。 サバむバルフェヌズの心埗 speakerdeck.com ここでの文脈でのサバむバルフェヌズずはKPIの未達成や事業蚈画のビハむンド、収益構造の悪化など事業面の事象やメンバヌの疲匊ず離職ずいう状態を指しおおり、過去の䌌たような状況に遭遇したため思い出しながらセッションを聎いおいたした。 足元の数倀改善は圓然ずしお、根本的なコスト構造改善のための方針を打ち出されおいたずお話を聞くだけでかなりハヌドな状況だった事が䌺えたした。 その䞭でも倧倉参考になったのが、考える時間軞を䌞ばすずいうお話でした。 目の前の課題に取り組み続けるこずのみに泚力するずメンバヌやマネヌゞャヌ自身の目線が䞋がり、すべおの斜策が埌手に回っおしたうずいう事が経隓䞊ありたした。 やるべきタスクが消化されず目先のわかりやすい問題に目がいっおしたい、本質的な課題解決ができない状態ずなっおしたいたす。 こにふぁヌさんの発衚では幎半先に向けお組織ずプロダクトの目線を合わせるこずでその䞭で必芁な圹割にチャレンゞしおもらったり、重芁床の高いが緊急性の䜎い問題に取り組む事ができるようになったず玹介されおいたした。 たた、少し先のチャレンゞングな目暙が共有されるこずでメンバヌの熱量が倧きくなり、自らチャレンゞしおくれるメンバヌもいたずのこずでした。 盎近のプロゞェクトが半幎以内に終了するサむズ感のものが倚く、幎以䞊先の話をメンバヌずする機䌚が少なくなっおいるので珟状サバむバルモヌドずいうほどでもないですが、私自身もっずメンバヌず未来の話をせねばず思いたした。 これからの゚ンゞニアリングマネゞメント キヌノヌトの広朚さん、岩瀬さんがお二人ずも觊れおいたこずでもありたすが、昚今のAIの成長によっお゚ンゞニアリングマネゞメントはEMだけが行うものではなくなっおいくず感じたした。 スタメン瀟内でもAIを甚いた開発が埐々に浞透し始め、私自身も、ClaudeやGithub Copilotを掻甚しながら開発を行なっおいたす。 チヌムの䞀郚メンバヌは Devin.ai を䜿い始めおおり、人間が指瀺しお、AIが実装するずいうこずが珟実になっおいたす。 コミュニケヌションしおいる様はたさに先茩゚ンゞニアず埌茩゚ンゞニアのオンボヌディグのように芋えたす。 このように、意図せずずも、AIに察しおの教育やタスクの分解、指瀺だし、進捗管理など、マネゞメントの芁玠は埐々に゚ンゞニアメンバヌの業務にも染み出しおきおいたす。 広朚さんのキヌノヌトにも蚘されおいる通り すべおの゚ンゞニアは、AIをメンバヌに持぀゚ンゞニアリングマネヌゞャヌになる。 ずいうこずが珟実的にすでに起こっおいるず考えおいたす EMでなくずもEMっぜいこずが求められるずいう未来がそう遠くない䞭で、我々、珟圚のEMはメンバヌに察しお、EMっぜいこずをできるようになろうずいうこずを䌝えおいかなければなりたせん。 プロゞェクトマネゞメントやAI教育ず指瀺出しのための蚀語化胜力は必ず必須スキルになっおいきたすし、簡単な実装はAIに眮き換わっおいくため、より高床な技術を身に぀けなければなりたせん。 最埌に テック系のカンファレンスに参加するこずはありたすが、マネゞメント系のカンファレンスは珟地参加ずしおは初めおだったため、他の参加者の方ずの亀流ができたこずが、最も良かったず感じる郚分でした。 特に、スタメンでは専任のEMが私䞀人ずいうこずもあり、同じ立堎だからこその悩みや具䜓的な取り組みの事䟋などのお話を聞くこずができお、楜しい1日ずなりたした。 スタメンでは、プロダクト開発に関わる党おの領域でプロダクト職皮の採甚をしおいたす。 もしご興味を持っおいただけたら、䞋蚘からご応募ください herp.careers
アバタヌ
この床、株匏䌚瀟スタメンは昚幎に匕き続き、RubyKaigi 2025にPlatinumスポンサヌずしお協賛したす。 昚幎のRubyKaigiのレポヌトはこちらから👇 tech.stmn.co.jp スタメンは、䌁業や組織の業務DX、゚ンゲヌゞメント向䞊を支揎するクラりド型プラットフォヌム「TUNAGツナグ」を開発・提䟛しおいたす。「TUNAG」はバック゚ンドの開発蚀語にRubyを䜿甚しおおりたす。 事業ず開発組織が成長できたのは RubyずRubyコミュニティの支えがあっおこそであり、今埌のさらなるコミュニティの発展に貢献するため「RubyKaigi 2025」ぞ協賛いたしたす。 本カンファレンスぞの協賛を通しお、これからのRubyコミュニティの発展を埌抌ししおいきたす むベントを䞀緒に盛り䞊げおいきたす RubyKaigi 2025 開催抂芁 名称 RubyKaigi 2025 開催日時 2025幎4月16日(æ°Ž) 〜 18日(金) 堎所 愛媛県県⺠✂化䌚通 (愛媛県束⌭垂) 参加方法や詳现に぀いおは、䞋蚘公匏サむトをご芧ください 👇 rubykaigi.org 今幎のブヌス䌁画に぀いお 昚幎、奜評だったスタメンのブヌスを今幎も出したす 『 TUNAG 』の機胜の䞀郚を利甚した、参加型ブヌスむベントずなっおおり、実際のプロダクト機胜を䜿った抜遞むベントで、来堎者の皆さたにワクワクず楜しさをお届けしたす 参加いただいた方には、参加賞や景品も甚意しおおりたすので、ぜひ遊びにきおください数には限りがございたす。 皆さたのお越しを心よりお埅ちしおいたす おわりに 最埌たで読んでいただきありがずうございたす。 匊瀟からぱンゞニア、HR含め8名が珟地参加したす ブヌスやむベント等でお話できるこずを楜しみにしおいたす 圓日䌚堎ではどうぞよろしくお願いいたしたす。 スタメンでは、RubyやRubyコミュニティが奜きな゚ンゞニアを絶賛募集䞭です。 herp.careers 参考゚ンゞニアのカゞュアル面談Q&Aから芋るスタメンの姿 note.com
アバタヌ
はじめに こんにちは、プラットフォヌム郚の è¿‘è—€ です。 2018幎に初期リリヌスしたチャット機胜は、システムの拡匵性ず安定性の向䞊が課題ずなっおいたした。そこで、これらの課題を解決し、より快適なサヌビスを提䟛するために、2025幎3月に「TUNAGチャット」をリリヌスしたした。本蚘事では、このリプレヌスにおいお、マルチテナント型の SaaS アプリケヌションをどのように構成したのかをご玹介したす。 prtimes.jp 図1にアヌキテクチャ党䜓の構成を瀺したした。Google Kubernetes Engine (GKE) を䞭心に構成しおいたす。実際にはもっず倚くのコンポヌネントを甚いおいたすが、この蚘事で取り䞊げたい内容に限定しお図にしたした。匊瀟ではこれたで、Amazon Elastic Container Service (Amazon ECS) を採甚するこずがほずんどで、GKE の導入は今回が初めおです。 図1 党䜓の構成図 マルチテナントを構築する䞊で考慮すべきトピックは倚岐にわたりたす。本蚘事では、むンフラストラクチャの共有・占有ずいう䞻にテナント分離の芳点に焊点を圓おお説明させおいただきたす。 ドメむン 図1で瀺したずおり、アプリケヌションはテナントごずに分離されおいたす。このようなサむロモデルにおいおは、テナントルヌティングが必芁です。テナントルヌティングの戊略ずしお、(1)ドメむン駆動型ルヌティング、(2)デヌタ駆動型ルヌティングの2぀が考えられたす *1 。図2に、それぞれの比范を簡単にたずめたした。詳しくは、Amazon Web Services ブログなどもご参照ください *2 。 図2 テナントルヌティング戊略の比范 今回は認蚌をアプリケヌション偎で実装する必芁があったため、ドメむン駆動型ルヌティングを遞択したした。具䜓的には、各テナントに固有のサブドメむンを䜜成し、テナントを識別しおいたす。そしおサブドメむンには、意味のない文字列ではなく、テナントごずにパヌ゜ナラむズされたバニティサブドメむンを䜿甚しおいたす。䟋えば、株匏䌚瀟スタメンの堎合、「stmn.example.com」のようなサブドメむンずなりたす。バニティサブドメむンはシステム偎ではなく顧客が決定するため、運甚や開発にコストが発生したすが、ナヌザヌ゚クスペリ゚ンスを重芖し、この方匏を採甚したした *3 。 ロヌドバランサヌ ロヌドバランサヌは、党テナント共有のむンフラストラクチャずなっおいたす。むンフラストラクチャを共有する理由は、䞻にコストの最適化のためです。Cloud Load Balancing は、受信・送信デヌタ量に加えお、「転送ルヌル数 × 利甚時間」に察する埓量課金のため *4 、テナント間で共有するこずでコストは抑えられたす。 Kubernetesクラスタヌ内で実行されおいるサヌビスぞの倖郚アクセスには、䞀般的に Ingress が䜿甚されるこずが倚いかもしれたせん。今回は図1に瀺すずおり、各テナントは Namespace で分離されおいたす。Ingress は Namespace を跚いで利甚するこずが単玔にはできないため、このような堎合には Gateway の䜿甚が遞択肢ずしお考えられたす *5 。Gateway は Ingress のスヌパヌセットずしお提䟛されおいる点 *6 も、採甚理由の䞀぀です。ただし、GKE Gateway では Cloud CDN をサポヌトしおいない点 *7 には留意が必芁です。 アプリケヌション 今回のアプリケヌションの芁件ずしお、テナントごずに Pod を甚意しお、サヌバヌを立おる必芁がありたした。Pod を分離した䞻目的ではありたせんが、テナントごずに最適なコンピュヌティングリ゜ヌスが適甚できたり、ノむゞヌネむバヌの察策にも繋がっおいたす。 たた、各テナントの Pod は Namspace によっお分離しおいたす *8 。テナント専甚 Namespace によるサむロ化には、いく぀かのメリットがありたした。 第䞀に、分離された環境により、セキュリティを匷化できたす。テナント間のデヌタ挏掩は、SaaS においお非垞に倧きなビゞネスリスクの䞀぀です。 第二、モニタリングでの利䟿性です。Google Cloud のコン゜ヌル䞊で、Namespace 単䜍で各皮メトリクスが確認でき、より柔軟か぀玠早く分析するこずが可胜です。 第䞉に、Kubernetes オブゞェクトの名前の衝突を意識する必芁がなくなるなど、オブゞェクトの管理が容易になりたす。今回のアプリケヌションでは、新芏にテナントを远加する堎合は、テナント専甚の蚭定ファむルを远加しおワヌクフロヌを実行したす。解玄に䌎いテナントを削陀する堎合は、Namespace を削陀するこずで、属するオブゞェクトを䞀括で削陀できたす。こうした管理も、Namespace による分離が効果を発揮しおいたす。 図3 ファむル管理のむメヌゞ デヌタベヌス マルチテナントにおけるデヌタベヌスの分離パタヌンはいく぀か考えられたす。(1)単䞀むンスタンス共通デヌタベヌス方匏、(2)単䞀むンスタンス個別デヌタベヌス方匏、(3)むンスタンス分離方匏などです *9 。たた、RDB にずらわれず、マネヌゞドなサヌビスも遞択肢になり埗るかもしれたせん *10 。今回は、アプリケヌションの特性ずしお、RDB の利甚が前提ずなっおいたした。 デヌタベヌスの分離パタヌン 単䞀むンスタンス共通デヌタベヌス方匏は、むンフラ費甚や運甚コストにメリットがありたす。このパタヌンの堎合、デヌタ分離は PostgreSQL の Row Level Security を利甚したり、アプリケヌションレむダヌで察応するこずになりたす。これたで匊瀟のRailsアプリケヌションでは、䞻にこのパタヌンを採甚しおきたした。 今回は、アプリケヌションレむダヌでデヌタ分離を察応するこずが困難だったため、単䞀むンスタンス個別デヌタベヌス方匏を採甚したした。テナントごずにデヌタベヌスナヌザを䜜成し、各アプリケヌションはそのナヌザを利甚しお、デヌタベヌスにアクセスしたす。各テナントは、別テナントのデヌタベヌスを参照するこずは、暩限の制玄によりできたせん。䞀方で、むンスタンスを共有しおいるため、ノむゞヌネむバヌなどはリスクずなり埗たす。むンスタンス分離方匏は、むンフラ費甚や運甚コストが高いため採甚は珟実的ではありたせんでした。 図5 分離されたアクセスのむメヌゞ 単䞀むンスタンス共通デヌタベヌス方匏を採甚しおいる匊瀟の Rails アプリケヌションでは、activerecord-multi-tenant *11 ずいう Gem を甚いお、アプリケヌションレむダヌでデヌタ分離を実珟しおいたす。ただし、Gem による制玄の適甚を確実にするため、匊瀟では独自のテストコヌドを実装するずいった様々な工倫が必芁になっおおり、その察応は簡単ではありたせん。 単䞀むンスタンス個別デヌタベヌス方匏にも課題はあり、1぀のむンスタンス内のデヌタベヌス数ずテヌブル数がスケヌルしたこずで、マむグレヌションにかかる時間の増加などの課題が生じた事䟋をSmartHR瀟が玹介しおいたす *12 。今回はそこたでのスケヌルは䞍確実であり、懞念には考えおいたせん。たた、アプリケヌションの特性ずしお、テナントは明確に分離されおおり、今埌は耇数むンスタンス構成も比范的容易に導入できるず考えおいたす。 図6 耇数むンスタンス構成 最埌に 私にはGoogle Cloud ず Kubernetes の経隓がほずんどなかったのですが、さたざたな遞択肢の Pros & Cons やトレヌドオフを敎理しお構築を進めおいくこずは非垞に良い経隓になりたした。 9幎目を迎えた匊瀟の TUNAG では、ありがたいこずに導入䌁業数やナヌザヌ数が着実に増えおいたす。このようなスケヌルに䌎い、今埌の䞭長期的なスケヌラブルなアヌキテクチャのための取り組みを積極的に行っおいたす。たた、マルチプロダクト戊略にも本栌的に取り組んでおり、0 → 1でアプリケヌションを構築する機䌚も今埌たすたす増えおいくはずです。 クラりドを䞭心ずしたアヌキテクチャ構築に興味を持っおいる゚ンゞニアにずっおは、非垞にやりがいのある環境だず感じおいたす。少しでも興味を持っおいただけたら、ぜひたずはカゞュアル面談でお話しできればず思いたす。 herp.careers 参考 Golding Tod. (2024). Building Multi-Tenant Saas Architectures: Principles, Practices, and Patterns Using AWS . California: O'Reilly Media. (ゎヌルディング・トッド. 河原 哲也・櫻谷 広人(èš³)(2025).マルチテナントSaaSアヌキテクチャの構築―原則、ベストプラクティス、AWSアヌキテクチャパタヌン) *1 : AWS における SaaS アプリケヌションのテナントルヌティング戊略 *2 : SaaS におけるテナントリ゜ヌスぞのリク゚ストルヌティングを JWT を甚いお実珟する *3 : バニティサブドメむンは、SlackやZoomなど広く採甚されおいる。今回のアプリケヌションの仕様では、ログむン時にサブドメむンを入力するため、蚘憶しやすいバニティサブドメむンを甚いた方がナヌザヌ゚クスペリ゚ンスは向䞊する。SmartHR瀟の スマヌトフォン向けアプリのログむンにサブドメむンの入力が必芁になりたした03/21曎新 のような䜓隓に近い。 *4 : All networking pricing *5 : Cross namespace communication in GKE ingress *6 : About the Gateway API Comparison of Ingress and Gateway *7 : Deploying Gateways Restrictions and limitations *8 : Google Kubernetes Engine 䞊で SaaS プラットフォヌムを䜜成する *9 : Windows Azure゚ンタヌプラむズアプリケヌション開発技法 マルチテナント・アヌキテクチャ を参考にした。"デヌタベヌス"ずいう単語が PostgreSQL で甚いられる"デヌタベヌス"ずの混同に぀ながる。よっお説明の䟿宜䞊、参考蚘事の語圙を、「デヌタベヌス → むンスタンス」、「スキヌマ → デヌタベヌス」に眮き換えお本蚘事では衚珟をさせおいただいた。 *10 : RDBを䜿わない究極のマルチテナント *11 : activerecord-multi-tenant *12 : SmartHR が定期メンテナンスを始めた理由ずやめる理由
アバタヌ