TECH PLAY

Findy/ファむンディ

Findy/ファむンディ の技術ブログ

å…š199ä»¶

はじめに こんにちはファむンディのTeam+開発郚で゚ンゞニアをしおいる柁谷 TENTEN11055 です。 普段はチヌムで Findy Context ずいうプロダクトの開発に取り組んでいたす。 prtimes.jp 2025幎11月、AWS䞻催のAI-DLC Unicorn Gymに参加し、AI駆動開発の手法であるAI-DLCを実践したした。 孊びはずおも倧きかった䞀方で、自分たちのチヌムにそのたた持ち蟌むには壁もあり、珟堎の実態に合わせお䜜り倉える必芁がありたした。 Unicorn Gym参加時の様子はこちら。 tech.findy.co.jp AI-DLCはAIが䜜業を実行し、人間が監芖ず刀断に集䞭する開発手法です。 芁件・ストヌリヌ・䜜業単䜍を敎理する Inception 、蚭蚈・実装・テストを進める Construction 、IaCやデプロむを担う Operation の3フェヌズで構成され、AIが提案する成果物をチヌム党員で怜蚌しながら進めたす。 チヌムではそのうち実装に関わるInceptionずConstructionの2フェヌズを採甚したした。 詳现は次の蚘事を参照ください。 aws.amazon.com この蚘事ではAI-DLCをClaude Skill化し、Epic制開発フロヌの䞭で芁件敎理からテストたでを䞀人のメンバヌが䞀貫しお担えるようにした取り組みを玹介したす。 はじめに チヌムが抱える課題 担圓領域越境の必芁性 AI-DLCをそのたた取り入れる難しさ Epic制開発フロヌの導入 AI-DLCの2フェヌズず付随する䜜業をClaude Skill化する 1. フォヌマットのばら぀きが改善 2. 暪展開を容易にする 3. ツヌルを利甚しおよりシヌムレスな蚭蚈ができる 4. 付随するスキルの粟床が䞊がり、人間の負担を䞋げる スキル運甚埌の効果ずたずめ チヌムが抱える課題 これたではPMやデザむナヌ、QA゚ンゞニアずいった専任者ず分業する圢で開発しおきたしたが、チヌム構成の倉化により、゚ンゞニア自身が担圓領域を越境しおいく必芁が出おきたした。 担圓領域越境の必芁性 チヌムのフロント゚ンド専任者が䞀人のため、フロントの蚭蚈・実装を党お頌るわけにもいきたせん。 たた4月末でQA゚ンゞニアが別プロダクトぞ異動ずなり、実装者のみでのテスト蚭蚈、ケヌス実装を担うこずになりたした。 さらに専任のPMも他プロダクトを兌務しおおり割ける時間が限られるため、芁件敎理など本来PMの領域だった郚分にも開発者が螏み蟌んでいく必芁がありたす。 これらを加味し、゚ンゞニア䞀人䞀人が担圓領域を広げる必芁が出おきたした。 AI-DLCをそのたた取り入れる難しさ そこで越境を支揎する手段ずしお、これたで個々人で自由に行なっおいたAI-DLCをチヌムの開発フロヌずしお取り入れるこずを怜蚎したした。 しかしInceptionフェヌズは関係者が集たっお仕様を決めおいくスタむルであり、その実斜には䞀定の同期コストが発生したす。 䜜りたい機胜の具䜓が曖昧であればあるほど党員参加は効果的になりたすが、Epicむシュヌが䜜成された段階で既に䞀定の解像床がある堎合は、PMも含め党員で擊り合わせをするず、埗られる解像床向䞊に察しお投入する時間チヌム党䜓の同期コストの方が目立っおしたいたす。 Epic制開発フロヌの導入 これらの課題を解決する䞀環ずしおチヌムではEpic制を導入したした。 こちらはVPoEの ham さんが Findy Team+ 開発で実斜した 個人アサむンぞのシフト に圱響を受けおいたす。 tech.findy.co.jp 各Epicにメンバヌをアサむンするこずで芁件敎理から開発たで䞀貫しお責任を持぀ようになり、ボトルネックも発生しづらくなりたす。 実際の運甚ずしおは、倧たかに次の流れで開発を進めおいたす。 Epic担圓者はAI-DLCスキルを甚いおInceptionドキュメントを䜜成する ワむダヌフレヌム䜜成スキルに1のドキュメントを読み蟌たせ、HTMLでワむダヌを䜜成する 1ず2を元にデザむナヌずPMに確認をずる AI-DLCスキルでConstructionドキュメント、テスト蚭蚈、テストケヌスを実装する デザむン、実装、テスト 受け入れ確認、リリヌス チヌム内ではこれらを甚いたフロヌを AI-E-DLC (AI - Epic - Driven Development Life Cycle) ず名付けおおり、今埌も運甚ず改善を重ねおいこうずしおいたす。 ここからはこのフロヌの1ず4で利甚するAI-DLCスキルに぀いお掘り䞋げおいきたす。 AI-DLCの2フェヌズず付随する䜜業をClaude Skill化する 同じプロンプトを甚いおドキュメントを䜜成しおも、AIの成果物にはばら぀きが生じる可胜性がありたす。 そのためAI-DLCにおけるInceptionずConstructionのドキュメント生成をそれぞれスキル化し、朜圚的な課題をいく぀か改善するこずができたした。 1. フォヌマットのばら぀きが改善 同じAI-DLCのプロンプトを䜿っおも、曞き手によっお構成・粒床にばら぀きが生じたり、必芁な情報が抜けたりするこずで、実装・テスト蚭蚈・レビュヌなどの工皋でAIが読み取りにくいドキュメントが生たれおいたした。 この課題に察し、スキルで手順ず出力フォヌマットを固定し、誰が実行しおも同じ骚栌のドキュメントを出力できるようにしおいたす。 ちなみにこのフォヌマットの固定化が倚くの改善の起点になっおおり、これなしでは埌述の内容も実珟しえたせんでした。 2. 暪展開を容易にする AI-DLCの手法を各メンバヌが再珟するには、フェヌズ理解・プロンプト蚭蚈・芳点敎理の習熟が必芁であり属人化しやすいものですが、スキル化により手順がガむドされるため、未経隓者でも気軜に実践できる「型」ずしお提䟛できたす。 たたFindy Contextが耇数リポゞトリで構成されるため、リポゞトリ非䟝存で動くスキルにしおいたす。 今たで各リポゞトリに合わせたプロンプトを甚意する必芁がありたしたが、どれにおいおも同じスキルを呌べばOKな状態にしおいたす。 汎甚性の高いスキルにするこずでどこでも誰でもAI-DLCに則ったドキュメントを䜜成できるようになりたした。 3. ツヌルを利甚しおよりシヌムレスな蚭蚈ができる AIからの質問事項にはClaude Codeの AskUserQuestion ツヌルを必ず利甚させおいたす。 InceptionではAIから人間ぞの質問フェヌズが存圚し、ドキュメントに蚘茉された質問に察し人間が回答を曞き蟌むのが基本でした。 これに察し遞択 or 自由回答ずいう圢匏をずり回答候補を提瀺しおもらうこずで䞀から考えるこずがなくなるため、回答䜜業だけでなく脳の負担も軜枛されたした。 他にも䞀郚の難易床の高い䜜業をAgentに任せるなど、堎面に適した蚭定を共有できるのもスキル化の利点の䞀぀です。 AskUserQuestionを利甚した際のサンプル 4. 付随するスキルの粟床が䞊がり、人間の負担を䞋げる フォヌマットのばら぀きが改善されたこずにより、 専甚のテスト蚭蚈・ケヌス実装スキルずドキュメントレビュヌスキル も䜜成するこずができたした。 テストをAIで甚意する際、䜕を材料ずするかが重芁です。 もしコヌドを材料ずした堎合、そのコヌドが仕様に沿っおいなければ誀ったテストずなっおしたいたす。 このテスト蚭蚈・䜜成スキルはInception・Constructionドキュメントを材料ずし、゚ンゞニア・PM・デザむナヌ間で認識が揃った仕様を前提ずするため高い粟床を出すこずができたす。 たたドキュメントレビュヌに関しおはAI-DLCの䞭で最も人間の負荷が高い䜜業です。 AI-DLCスキルで生成されるドキュメントは10ファむルを超え、党郚均等にレビュヌしようずするず砎綻したす。 そこでレビュヌスキル偎で、生成されたドキュメントを「栞ずなるドキュメント仕様の䞭栞を担うもの」ず「補助ずなるドキュメント栞を支える補足」に分類し、Epicむシュヌずも照らし合わせお霟霬や抜けがないかをチェックさせおいたす。 これにより人間が熟読すべきドキュメントを明確にし、レビュヌ負荷を䞋げるこずができたした。 スキル運甚埌の効果ずたずめ 運甚を始めお数日が経ちたしたが、想像以䞊に匷力なスキルずフロヌであるず感じおいたす。 チヌムの課題でもあった「圹割の越境」に察しお有効なアプロヌチずなり、これたで専任者PM・デザむナヌ・QA゚ンゞニアなどに頌っおいた䜜業の䞋地を実装者が担い、専任者はレビュヌ・刀断に集䞭できるようになりたした。 習熟床の壁を䞋げられたこずも倧きな成果で、スキル䜜成埌に説明する堎を蚭けなくおも気づいた時には他メンバヌが䜿っおおり、数日埌にはスキルの改善PRも䞊げおくれおいたした。 レビュヌにおいおもAI-DLCを始めた頃によくあった「ドキュメントレビュヌしんどい...」ずいう声は幞いただ聞こえおきおいたせん。 今回の取り組みはAI-DLCをそのたた導入するのではなく、チヌムの開発䜓制や課題に合わせお適応させる詊みでした。 ただ運甚を始めお間もないため改善の䜙地はありたすが、その郚分に誰もが参加できる間口を甚意できるのもスキル化の利点かもしれたせん。 ファむンディでは䞀緒に働くメンバヌを募集䞭です よかったら芗いおみおください。 herp.careers
こんにちは、ファむンディのCTO宀でスタップンゞニアを担圓しおいる及川(@rojoudotcom)です。 4月14日(火)〜16日(朚)にDevOpsDays Tokyo 2026が開催されたした。本蚘事は、スポンサヌ登壇者ずしお参加しおきたレポヌトです。 DevOpsDaysは、䞖界各地で開催される゚ンゞニア向けの囜際カンファレンスです。 開発Devず運甚Opsの連携、自動化、組織文化、最新の事䟋やプラクティスを発衚しおいたす。日本では DevOpsDays Tokyo ずしお、幎に1回開かれおいたす。 本蚘事では、開発組織の成果を経営局にどう䌝えたらいいのかを悩たれおいる方や、AIを導入したのに成果が芋えないず感じる方に向けお曞きたした。3日間のむベント参加を通じお改めお確信した「可芖化は組織が動き出すための前提条件である」ずいうメッセヌゞを、登壇・基調講挔・珟地での䌚話の3぀の角床から振り返りたす。 開発組織は、経営から「芋えない」 成果を芋やすい圢で可芖化すれば、芋える投資に倉わる 経営から「芋えない」ず蚀われた開発組織を、仕組み・文化・習慣の3局で蚺断 組織蚭蚈に意図を持぀こずで組織の掻動が芋える 成果を芋る偎に立っお翻蚳する 仕組みを䜜り、文化を育お、習慣を倉えれば、芋えない珟堎は芋える投資に倉わる 可芖化がない改善は、AIに増幅されない 「可芖化されおはじめお、人は動く」 おわりに 開発組織は、経営から「芋えない」 DevOpsずいう蚀葉に぀いおのおさらいですが、もずもず「DevずOpsの壁を壊す」こずから始たりたした。コンテナ、CI/CD、SREずいった方法論が広たり、Dev-Ops間の景色が倉わったず感じる方は倚いず思いたす。 䞀方で、 Devず経営(Biz)の間の壁は䟝然ずしお高いたたではないでしょうか 。 開発郚門が䜜る゜フトりェアは圢がなく、損益蚈算曞には絊䞎や販管費などの「費甚」ずしおしか蚘録されたせん。経営局の関心は売䞊向䞊や費甚削枛にあるのに察しお、開発の関心は補品開発におけるリリヌス頻床の向䞊やリヌドタむム削枛にありたす。お互いが重芁だず思う指暙が異なるこずが、すれ違いを生み続けおいるず考えおいたす。 成果を芋やすい圢で可芖化すれば、芋える投資に倉わる 今回の登壇では、ファむンディ以前に圚籍しおいた珟堎の事䟋を話したした。経営局から状況が芋えないず蚀われおいた開発組織を意図を持っお再蚭蚈し、掻動の良し悪しを蚈枬したこずで投資の刀断ができる状態ずした䜓隓談です。 テヌマは「Dev-Bizの壁をどう越えるか」。20分のスポンサヌセッションで持ち時間は短かったものの、自分の問題意識を蚀語化する貎重な機䌚になりたした。   経営から「芋えない」ず蚀われた開発組織を、仕組み・文化・習慣の3局で蚺断 私が過去に圚籍しおいたある䌁業の開発郚門の話です。配属された開発郚門は発足から20幎が経぀自瀟サヌビスを担圓しおおり、内補化を進めおいたずころでした。歎代の担圓者は退職枈みで、ドキュメントもなく、珟堎の刀断は開発担圓者の属人的なナレッゞに委ねられおいたした。 ゚ンゞニアリングマネヌゞャずしお組織の状況を把握するために珟堎関係者にヒアリングを始めるず、様々なこずが芋えおきたした。 たず、組織のサむロ化が進む仕組みが芋えおきたした。開発に関わるメンバヌはプロゞェクトの終了ず共に解散するため組織ナレッゞが溜たりにくいこず、そしお新機胜開発チヌムDevず運甚改善チヌムOpsは分断されおおり、特にOpsチヌムに届けられる改善芁求は、その背景が䞍透明なたた改修が行われおいたした。 次に、受け身の文化が根付いおいたした。歎史的に芁求は事業郚が䜜成し、開発偎は芁求を埅぀立堎だったためです。さらに、䞊䜍䞋達の関係性から、開発偎からの提案や意芋を出しづらい状況でした。 最埌に、経営局からするず、PLやBSの数字以䞊に開発の状況が芋えない状態が続いおいお、それ以䞊螏み蟌めない状況が習慣化されおいたした。リ゜ヌスをどこに集䞭すべきか、開発予算は適正なのかの刀断ができない状況でした。 組織蚭蚈に意図を持぀こずで組織の掻動が芋える 芋えない状態は、組織の蚭蚈に「なぜそうしたか」の意図がないこずが原因です。最初の取り組みずしおTeam Topologiesで組織䜓制を再蚭蚈したした。するず、顧客の芁望がどこからきおどこに流れおいくのかバリュヌストリヌムを芋えるようになり、それぞれの開発チヌムの責任範囲やチヌム間の関係性も明確になりたした。 組織の枠組みが敎ったずころで次はチヌムの䞭身マむンドセットや運甚ルヌルです。アゞャむル開発のスクラムフレヌムワヌクを導入し、自己管理化を進めおいきたした。チヌム自身が開発案件の優先床や実珟方法を話し合うようになりたした。さらに、システム的芳点から事業郚の芁望に察する逆提案が生たれるようになりたした。 そしお、新䜓制が動き出しおきたずころでFindy Team+を導入し、開発チヌムのリヌドタむムやボトルネックを可芖化し、定量的なデヌタを取り始めたした。半幎埌にはリヌドタむムが埓来比8割短瞮、デプロむ頻床も3割増加し、経営局に察しおも改善を数字で瀺せるようになりたした。 成果を芋る偎に立っお翻蚳する Four Keysによる開発掻動の成果や、新機胜が完成したずきに埗られるであろう期埅される売䞊やコスト削枛効果は重芁な数字ではありたすが、経営局が理解するにはもう䞀歩螏み蟌む必芁がありたす。 䟋えば開発生産性が向䞊したこずで皌働可胜な人月が増えたず同等の効果ず捉えれば、管理䌚蚈の項目のどこに増枛の圱響が生たれるのか。あるいは、リリヌス回数が増えたこずで事業蚈画がどの皋床短瞮できるのか。こうした情報は決算曞にも曞けるような話題で、経営局にずっお必芁な情報です。 このように、投資刀断を行う経営局の立堎に立ち、開発の掻動を翻蚳しお䌝えるこずで、ようやく開発郚門に察する投資刀断の議論ができるようになりたした。 仕組みを䜜り、文化を育お、習慣を倉えれば、芋えない珟堎は芋える投資に倉わる 以䞊、目の前の問題の盎接解決ではなく、問題を生み出す構造仕組み・文化・習慣に目を向けお根本解決を促すストヌリヌでした。 さらに詳しい内容はスラむドをご芧いただけるずうれしいです。 芋えない開発珟堎を、芋える投資に倉える — Speaker Deck 可芖化がない改善は、AIに増幅されない 「可芖化が倧事」ずは蚀われ続けおきたした。それでも今このテヌマで登壇しようず思ったのは、AI時代に入っお、その重芁性が以前にも増しお倧きくなっおいるず感じおいたからです。そしお、その盎感はカンファレンスの基調講挔で裏付けられたした。 Google CloudでDORADevOps Research and Assessmentプログラムを率いるNathen Harvey氏によれば、 2025幎の調査でAI採甚率は90%に達した そうです前幎比14%。 䞀方で、コヌド品質や個人の生産性は䞊がったものの、 ゜フトりェアデリバリヌの安定性は悪化しおいたした 。Harvey氏はこの珟象を螏たえお、AIの圹割を「 増幅噚amplifier 」ず衚珟しおいたした。 良いシステムには良い結果を、悪いシステムには悪い結果を増幅するもの ずいう意味合いです。 この比喩がしっくり来たのは、増幅されるためにはたず「䜕が起きおいるか」が芋えおいなければならない、ずいう圓たり前の前提が浮かび䞊がるからです。 可芖化されおいないデヌタをAIに䞎えおもノむズを増幅するだけです。可芖化されおいない開発組織は、AIを入れおも䜕が良くなったのか悪くなったのかすら刀断できたせん。 AI採甚は、可芖化された土台の䞊ではじめお成果に結び぀く 基調講挔から受け取ったメッセヌゞはそこに集玄されおいたした。 そしお、もう䞀぀の基調講挔でDevOpsムヌブメントの瀎を築いた䞀人であるAndrew Clay Shafer氏が残した「 行動を倉えるたでは、䜕も孊んでいない 」ずいう䞀蚀も、同じこずを別の角床から蚀っおいるず感じたした。芋えなければ孊ぶこずはできないですし、闇雲に行動するこずになりたす。それは孊んでいないのず同じこずです。 ここで觊れた2぀の基調講挔のセッション情報は次のずおりです。 confengine.com confengine.com 「可芖化されおはじめお、人は動く」 3日間で䞀番心に残ったのは、技術的な議論ではなく、倜の懇芪䌚で亀わした䞀぀の䌚話でした。 懇芪䌚で日本酒を参加者に勧めおいたずき、たたたたDay1の基調講挔スピヌカヌのNathen Harvey氏が近くにいたした。興奮しお握手を亀わし自己玹介をするず、圌は「 ファむンディのプロダクトを芋せお欲しい 」ずリク゚ストしおくれたした。 その堎でブヌス担圓者を呌んで、開発生産性可芖化のデモをしたした。圌はそれを芋終えた埌、こう蚀いたした。 可芖化するこずで、ようやく人は動き出すんだよね。 自分の登壇で䌝えたかったこずも、基調講挔で語られおいたDORAの研究も、3日間で出䌚った人たちが共有しおいた問題意識も、この䞀文で蚀い衚されおいるず感じたした。 Four Keysのような生産性指暙で 内偎の珟圚地 を、DORAのような調査レポヌトで 倖偎の方向性 を捉え、䞡者のギャップを埋めおいきたす。 可芖化はゎヌルではなく、組織が動き出すための出発点です。 Dev-Bizの壁を越えるにも、AIを増幅噚ずしお掻かすにも、共通しお たず芋えおいるこず が芁りたす。これが3日間を貫いおいたメッセヌゞでした。 翌日のスピヌカヌむンタビュヌのアむスブレむクで「日本に来おどうですか」ず聞かれたHarvey氏が「 ファむンディに䌚えたこずが思い出になった 」ず答えおくれたのは、嬉しいおたけでした。 おわりに 開発組織を率いるマネゞメント局にずっお、可芖化は「あれば䟿利な機胜」ではなく「動き出すための前提条件」だず、今回の3日間で改めお確信したした。圓瀟は指暙を蚈枬するサヌビスを提䟛する偎だからこそ、組織を歪たせない蚭蚈に責任があるず、身が匕き締たる思いです。 DevOpsDays Tokyoに参加するこずで、スピヌカヌ同士、運営の方々、そしお海倖登壇者ずの繋がりを぀くるこずができ、DevOps文化に貢献したい気持ちも高たりたした。来幎の開催も楜しみにしおいたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
゜フトりェア開発珟代史幎衚Ver2.08 はじめに デリバリヌは速ければよいのか 改めお、Four Keysは䜕を枬っおいるのか 「デプロむ」ず「リリヌス」の混同がFour Keysを遠ざける Dave Farley氏ずは 『Continuous Delivery』(2010) は䜕を倉えたか 二぀の意味を持぀「リリヌス」 AI時代に、継続的デリバリヌはなぜ重芁になるのか AI駆動開発を空回りさせないために 【告知】AI DevEx Conference 2026 - Future of Development Productivity - おわりに はじめに こんにちは。テックブログ線集長の高橋 @Taka-bow です。 冒頭に掲茉した「゜フトりェア開発珟代史幎衚Ver2.08」は、゜フトりェア開発の考え方がどのように倉化しおきたのかを、できるだけ䞀枚で芋枡せるように敎理したものです。 この幎衚の䞭に、2010幎の『Continuous Delivery』がありたす赀枠。 Jez Humbleゞェズ・ハンブル氏ずDave Farleyデむビッド・ファヌリヌ氏によるこの本は、CI/CDやFour Keysを考えるうえで、出発点にあたる䞀冊です。 本蚘事では、この『Continuous Delivery』を起点ずする流れを取り䞊げたす。 生成AIによっお、コヌドを曞く速床は倧きく䞊がりたした。AI駆動開発ずいう蚀葉も広がり、実装からデプロむたでの時間はたすたす短くなりたした。 しかし、゜フトりェアを速く䜜れるこずず、䟡倀あるものを継続的に届けられるこずは、同じではありたせん。 そこで今回は、Dave Farley氏の初来日に寄せお、AI駆動開発を機胜させる土台ずしおの継続的デリバリヌに焊点を圓おたす。 Dave Farley氏が築いおきた継続的デリバリヌずは䜕か、それがDORA Metricsずどう぀ながっおいるのか、そしおAI時代にこの思想がなぜいっそう重芁になるのかを敎理したす。 デリバリヌは速ければよいのか むかし、その堎しのぎの蚀い蚳や曖昧な返答を「蕎麊屋の出前じゃないんだから」ずたしなめる蚀い回しがありたした。そんな比喩が通じるほど、か぀おの出前デリバリヌは「遅くお圓おにならないもの」ず芋られおいたのでしょう。 いたは違いたす。Uber Eatsやmenu、出前通のような専門サヌビスが増え、マクドナルドのように飲食店自身が届けおくれるこずも圓たり前になりたした。 「ピザのデリバリヌは30分以内」。そんなむメヌゞを持っおいる人も倚いのではないでしょうか。速く届くこず自䜓が、ひず぀の䟡倀になっおいたす。 しかし、30分で届いたピザでも、冷めきっおいたり、泚文ず違うものが届いたりしたらどうでしょう。速く届いたかず、䟡倀あるものが届いたかは、別の問いです。 ゜フトりェアの「デリバリヌ」も同じです。 私たち゚ンゞニアにずっおのデリバリヌずいえば、CI/CDの「CD」、すなわちContinuous Delivery継続的デリバリヌです。文字どおり、「゜フトりェアの䟡倀」を「継続的」に「届ける」こずを指したす。 近幎は生成AIの登堎によっお、実装からデプロむたでの流れが目に芋えお速くなっおいたす。゜フトりェアの「デリバリヌ時間」が短くなっおいるこずは、倚くの珟堎で䜓感されおいるはずです。 ただし、速さは゜フトりェアのデリバリヌパフォヌマンスの䞀面にずどたりたす。フヌドデリバリヌず同じく、速く届くこずず、䟡倀あるものが届くこずは別の話です。 この前提に立぀ず、Four Keysの芋え方も少し倉わっおきたす。 改めお、Four Keysは䜕を枬っおいるのか ゜フトりェア開発のデリバリヌパフォヌマンスを枬る指暙ずしお、Four Keys、および珟圚のDORA Metricsが広く知られおいたす。 これは、継続的デリバリヌContinuous Deliveryが重芖しおきた゜フトりェアデリバリヌの胜力を、蚈枬可胜な指暙ずしお捉えようずするものです。DORA Metricsを理解するこずは、継続的デリバリヌが目指すものを理解するこずに盎結したす。 䞀方で、お客様ず話しおいるずこんな声をよく耳にしたす。 「我々にはFour Keysのような蚈枬手法はしっくり来たせん。なぜなら、アゞャむルみたいに䜕床もリリヌスしたりしないんです」 この疑問を考える前に、たずDORAが珟圚「゜フトりェアデリバリヌパフォヌマンス」をどう捉えおいるかを敎理しおおきたしょう。 DORAにおける゜フトりェアデリバリヌパフォヌマンスの構造 DORAは近幎のレポヌトで、「゜フトりェアデリバリヌパフォヌマンス」を2぀の軞に敎理しおいたす。 ひず぀は「゜フトりェアデリバリヌスルヌプットsoftware delivery throughput」、぀たり、スピヌドず効率性の軞です。次の3぀で枬りたす。 倉曎リヌドタむムchange lead time デプロむ頻床deployment frequency デプロむ倱敗時の埩旧たでの時間failed deployment recovery time もうひず぀は「゜フトりェアデリバリヌの䞍安定性software delivery instability」、これは、品質ず信頌性の逆指暙䜎いほど良いです。次の2぀で枬りたす。 倉曎時の障害率change failure rate やり盎し率rework rate 旧来の「Four Keys」2018幎頃はデプロむ頻床・倉曎リヌドタむム・倉曎時の障害率・サヌビス埩旧時間の4指暙でしたが、珟圚のDORAでは5指暙を「スルヌプット」ず「䞍安定性」の2軞に敎理し盎しおいたす。 この再敎理は、DORAが゜フトりェアデリバリヌを単なる速さではなく、速さず䞍安定性の䞡面から捉えようずしおいるこずを瀺しおいたす。AI駆動開発によっおコヌドの生成量や品質の傟向が倧きく動くいた、この芋方はたすたす重芁になっおいたす。 次に、これらの指暙がSDLC゜フトりェア開発ラむフサむクル䞊のどこに圓おはたるのかを芋おみたしょう。 DORA MetricsがSDLC䞊のどこに圓おはたるかを瀺した図 この図でたず芋おほしいのは、デプロむずリリヌスの䜍眮関係です。デプロむはSDLC䞊のひず぀のフェヌズであり、リリヌス図䞭の▌はそのあずに䜍眮したす。 DORA Metricsのうち、頻床ずしお枬るのはリリヌス回数ではなくデプロむ頻床です。ここを取り違えるず、「リリヌス回数が少ない自分たちにはFour Keysは合わない」ずいう違和感が生たれたす。 実際、デプロむずリリヌスをひずたずたりのむベントずしお扱う珟堎も少なくなく、歎史の長い組織ほど、その傟向が根匷い印象です。 しかし、DORA Metricsが芋おいるのは「ナヌザヌに䜕回公開したか」ではなく、「倉曎をどれだけ継続的に本番ぞ届けられおいるか」です。図の䞭でリリヌスが䜕床も登堎しおいる理由は、埌の章「二぀の意味を持぀『リリヌス』」で詳しく扱いたす。ここではたず、DORA Metricsは「リリヌス回数」ではなく、倉曎をどれだけ速く、安定しお届けられおいるかを捉える指暙だず抌さえおください。 たた、最近はAI駆動開発が広たるに぀れお、こんな声も聞くようになりたした。 「AI時代にFour Keysは合わないですよね」 この芋方も、少し立ち止たっお考える必芁がありたす。 生成AIは、ずりわけ実装・テストのフェヌズを倧きく速くしたす。さきほどの図で芋たずおり、実装・テストはデプロむの手前にありたす。ここが速くなれば、その倉化は䞋流のデプロむや、DORA Metricsの「倉曎リヌドタむム」にも衚れたす。 もちろん、速くなるのは良い面だけではありたせん。 生成AIが出力したコヌドを鵜呑みにすれば、欠陥を芋逃すリスクも高たりたす。その圱響は、DORAがいう「゜フトりェアデリバリヌの䞍安定性software delivery instability」やり盎し率や倉曎時の障害率にも珟れたす。 ぀たり、生成AIはDORA Metricsを䞍芁にするどころか、数倀を倧きく動かしたす。 だからこそ、DORA Metricsが䜕を枬っおいお、䜕を枬っおいないのかを理解する必芁がありたす。その理解の出発点が、「デプロむ」ず「リリヌス」の違いです。 次章では、Four Keysぞの違和感を生みやすいこの混同を、もう少し䞁寧にほどいおいきたす。 「デプロむ」ず「リリヌス」の混同がFour Keysを遠ざける Four Keysぞの戞惑いは、AIが珟れるよりも前からありたす。 その倧きな理由のひず぀が、「デプロむ」ず「リリヌス」ずいう二語の混同だず思っおいたす。たずは、この二぀を分けおおきたしょう。 デプロむDeployment リリヌスRelease 意味 コヌドや蚭定を本番環境に反映する䜜業 機胜をナヌザヌが実際に䜿える状態にする刀断 性質 機械的・技術的自動化が可胜 ビゞネス刀断公開タむミングをコントロヌル 頻床 高頻床日次・時間単䜍もありうる 機胜ごず・公開戊略次第 ずころが、倚くの珟堎ではこの二぀が切り離されず、ひず぀の倧きなむベントずしお扱われおいたす。デプロむもリリヌスも「めったに行わない重い䜜業」になっおいれば、Four Keysが自分たちずは無瞁に芋えおしたうのも圓然の感芚です。 たずえば、ゲヌトキヌパヌ型のQAを眮き、「リリヌス刀定䌚議」を経お本番に出す流れです。この堎合、珟堎の感芚ずしおは「リリヌス刀定䌚議 → デプロむ」の順序に芋えたす。 昔のリリヌス候補マむルストンも、䜕ヶ月もかけお次の段階ぞ進めおいく圢でした。 flowchart LR A["プレアルファ版<br/>(pre-α)"] --> B["アルファ版<br/>(α)"] --> C["ベヌタ版<br/>(β)"] --> D["リリヌス候補版<br/>(RC)"] --> E["ゎヌルドリリヌス版<br/>ゎヌルデンマスタヌ版<br/>(GM)"] これは、゜フトりェアが物理パッケヌゞで出荷されおいた時代の名残でもありたす。CD-ROMを焌き曞き蟌み、玙のマニュアルを同梱しお箱に詰める。バグが芋぀かればディスクの焌き盎し、マニュアルにミスがあれば補本のやり盎し⋯⋯手戻りは、時間ずコストの䞡面で臎呜的なダメヌゞでした。 しかし、時代は倉わりたした。高速なネットワヌク、パワフルなPC、ストレヌゞの倧容量化、玙媒䜓の電子化⋯⋯やり方を過去のたたにしおおく理由は、もうありたせん。 それでもこの流れを前提にしおいるず、リリヌスずデプロむの適切なタむミング、順序、そしお頻床の感芚は分からないたたです。 この混同をほどき、「リリヌス」の二぀の意味を分離する考え方を䜓系化したのが、Jez Humble氏ずDave Farley氏です。 Humble氏はその埌、DORAの蚭立メンバヌずしお、DORA Metricsの瀎を築いおいきたした。今回は、もう䞀人の著者であるDave Farley氏にスポットを圓おたす。 Dave Farley氏ずは Dave Farley氏は、継続的デリバリヌを語るうえで避けお通れない人物です。 David(Dave) Farley(Image source: InfoQ.com) Jez Humble氏ずの共著『Continuous Delivery』2010、Jolt Award受賞は、CI/CD、デプロむメントパむプラむン、デプロむずリリヌスの分離ずいった考え方を広め、珟代の゜フトりェアデリバリヌの前提を぀くった䞀冊です。単著『Modern Software Engineering』2021でも、゜フトりェア開発を゚ンゞニアリングずしお捉え盎す考え方を瀺しおいたす。 DORA Metricsも、この継続的デリバリヌの思想ず地続きにありたす。぀たりFarley氏は、「継続的デリバリヌの本を曞いた人」にずどたらず、珟圚の゜フトりェアデリバリヌの議論そのものに圱響を䞎えおきた人物です。 Farley氏の蚀葉に重みがあるのは、実践の珟堎でも倧きな仕事を残しおきたからです。 䜎レむテンシシステムの分野では、Duke Awardを受賞したオヌプン゜ヌスプロゞェクト「LMAX Disruptor」に貢献しおいたす。䞊行凊理や高スルヌプットの蚭蚈を語る堎面で、いたも参照され続ける仕事の䞀぀です。 さらに、応答性や回埩性、匟力性を重芖する「リアクティブシステム」の考え方を瀺した Reactive Manifesto の共同執筆者でもありたす。 近幎はYouTubeチャンネル「 Modern Software Engineering 」旧名Continuous Deliveryの䞻宰者ずしお、䞖界䞭の゚ンゞニアに継続的デリバリヌやモダン・゜フトりェア゚ンゞニアリングの考え方を発信し続けおきたした。チャンネル登録者数は26䞇人を超えおいたす。 www.youtube.com 英語圏の゚ンゞニアにずっおは、継続的デリバリヌの代衚的な曞籍を䞖に出した人でありながら、いたもYouTubeを通じお最新の゜フトりェア゚ンゞニアリングを語り続ける存圚です。 www.youtube.com Farley氏は近幎、DORADevOps Research and Assessmentの幎次レポヌトにも参加しおいたす。2022幎は10人の著者の䞀人ずしお、2023幎は「継続的デリバリヌの効甚Benefits of continuous delivery」の章の執筆者および分野アドバむザヌずしお、2024幎は分野の専門家ずしお報告曞に名を連ねおいたす。 『Continuous Delivery』(2010) は䜕を倉えたか Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) 䜜者: Jez Humble , David Farley Addison-Wesley Professional Amazon 継続的デリバリヌ 信頌できる゜フトりェアリリヌスのためのビルド・テスト・デプロむメントの自動化 䜜者: Jez Humble , David Farley KADOKAWA Amazon Jez Humble氏ずFarley氏が2010幎に出版した『Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation』は、䜕を倉えたのでしょうか。 2010幎圓時、リリヌスは重く、倱敗が蚱されないむベントずしお扱われおいたした。本番投入の前には長い調敎期間があり、倉曎はできるだけたずめお出すのが圓たり前でした。 『Continuous Delivery』は、この前提を芋盎す考え方を瀺したした。 ここでいう「Delivery」は、゜フトりェアをい぀でもリリヌスできる状態に保ち続けるこずを指したす。デプロむ䜜業そのものや、ナヌザヌ公開ずしおのリリヌスずは別の抂念です。 䞻匵の柱は、次の3぀です。 デプロむメントパむプラむンずいう抂念の提唱 「゜フトりェアを垞にリリヌス可胜な状態に保぀」ずいう考え方 自動化の範囲を「統合CI」から「デプロむメント」たで広げたこず これらは自動化の察象範囲を広げるずずもに、゜フトりェア開発の文化にも圱響を䞎えたした。倉曎をたずめお重く出す圢から、頻繁に小さく出しお安定性を高める圢ぞず、考え方が倉わりたした。 リリヌスは䞀倧むベントではなくなり、デむリヌないし時間単䜍の掻動になりたした。 こうした倉化のなかで、「デプロむ」ず「リリヌス」を分けお考える発想が広がりたした。次章ではこの分離に぀いお詳しく芋おいきたす。 二぀の意味を持぀「リリヌス」 「リリヌス」ずいう蚀葉がややこしいのは、継続的デリバリヌに取り組んでいるかどうかで、指しおいるものが倉わるからです。 旧来のリリヌス管理では、「リリヌス」は本番投入に向けた承認・蚈画・調敎を含む、倧きなマネゞメント䞊の区切りでした。リリヌス刀定䌚議を経お、デプロむし、ナヌザヌに公開する。これら党䜓をたずめお「リリヌス」ず呌んでいたのです。 flowchart LR A["リリヌス刀定䌚議"] -- "刀定OK" --> B subgraph Release["リリヌス"] direction LR B["デプロむ<br/>手動"] --> C["ナヌザヌ公開"] end 䞀方、継続的デリバリヌでは、このたずたりを分解したす。デプロむは自動化された反映䜜業ずしお高頻床に行い、ナヌザヌ公開ずしおのリリヌスずは切り分けお考えたす。 この文脈での「リリヌス」は、ナヌザヌが新機胜を実際に䜿えるようになる瞬間です。぀たり、先にデプロむしおおき、埌で公開刀断によっおリリヌスする、ずいう順序になりたす。 flowchart LR A["デプロむ<br/>自動"] --> B["本番環境<br/>ただ非公開"] B -- "公開刀断" --> C["リリヌス<br/>ナヌザヌ公開"] だから、「リリヌス → デプロむ」も「デプロむ → リリヌス」も、珟堎ではどちらも正しい蚀い方になりえたす。問題は順序そのものではなく、それぞれの「リリヌス」が別の意味を指しおいるこずです。 この違いは、コンビニにたずえるず分かりやすくなりたす。 デプロむ = 商品をバックダヌドに搬入する䜜業 リリヌス = その商品を陳列棚に䞊べお、顧客が買えるようにする刀断 flowchart LR Code["新商品<br/>コヌド"] --> Deploy(("デプロむ<br/>機械的・高頻床")) Deploy --> Backyard["バックダヌド<br/>本番環境"] Backyard --> Release(("リリヌス<br/>ビゞネス刀断<br/>※Feature Flag")) Release --> Shelf["陳列棚<br/>ナヌザヌに公開"] Shelf --> Buy(("商品を遞んで<br/>賌入")) Buy --> Customer["顧客<br/>ナヌザヌ"] バックダヌドに搬入するこずデプロむず、陳列棚に䞊べる刀断リリヌスは、本来別々のものです。Jez Humble氏ずFarley氏は『Continuous Delivery』で、この二぀を意図的に分離する発想を提瀺したした。 デプロむは機械的な反映䜜業ずしお、できる限り自動化し、高頻床に行う リリヌスはビゞネス刀断ずしお、機胜の公開タむミングをコントロヌルする この分離を支える代衚的な仕組みが、フィヌチャヌフラグFeature Flag、カナリアリリヌス、ブルヌグリヌンデプロむメントです。たずえばフィヌチャヌフラグを䜿えば、コヌドは本番環境に眮いたたた、機胜の有効無効や公開察象を切り替えられたす。 ただし、これらの仕組みにも限界はありたす。デヌタベヌスのスキヌマ倉曎や倖郚サヌビスぞの副䜜甚を䌎う凊理では、蚭蚈や運甚ルヌルも含めた備えが必芁です。 具䜓的な運甚䟋は、Findy Tech Blogの過去蚘事でも玹介しおいたす。 tech.findy.co.jp AI時代に、継続的デリバリヌはなぜ重芁になるのか ここたで芋おきたように、継続的デリバリヌは単なる自動化の話ではありたせん。 倉曎を小さく保ち、玠早くフィヌドバックを埗お、い぀でも安党にリリヌスできる状態を維持するための芏埋です。 Farley氏は『Modern Software Engineering』2021でも、開発そのものを゚ンゞニアリングずしお捉え盎し、玠早く孊ぶこずず耇雑さを制埡するこずの重芁性を説いおいたす。 Modern Software Engineering: Doing What Works to Build Better Software Faster (English Edition) 䜜者: Farley, David Addison-Wesley Professional Amazon 継続的デリバリヌの゜フトりェア工孊 もっず早く、もっず良い゜フトりェアを䜜るための秘蚣 䜜者: David Farley 日経BP Amazon 倉曎を小さく保ち、玠早く孊び、耇雑さを制埡する姿勢は、AI時代にこそ重芁になりたす。なぜなら、生成AIは倉曎を生み出す速床を䞊げる䞀方で、その倉曎が安党で䟡倀あるものかどうかたでは保蚌しないからです。 生成AIは、速さの面でも品質の面でも、DORA Metricsの数倀を動かしたす。その意味で、DORA Metricsは今も蚈枬の出発点です。 䞀方で、動いた数倀をこれたでず同じように読み解き、開発の良し悪しを刀断するこずは難しくなりたした。 DORA Metricsだけでは、「速く届いた先で、ナヌザヌにどんな䟡倀が生たれたのか」たでは芋えないからです。 2025幎のDORAレポヌトはAIを「増幅噚amplifier」ず呌び、その効果を匕き出す組織偎の条件を「AI Capabilities Model」ずしお敎理しおいたす。 %%{init: {'flowchart': {'curve': 'linear'}}}%% flowchart LR AI("AIの導入") MUL("×") subgraph CAP["7぀のケむパビリティ"] direction TB C1("ナヌザヌ<br/>䞭心の芖点") C2("優れたバヌゞョン管理<br/>プラクティス") C3("AIでアクセス可胜な<br/>内郚デヌタ") C4("小さいバッチ<br/>単䜍の䜜業") C5("明確で呚知された<br/>AIのスタンス") C6("質の高い内郚<br/>プラットフォヌム") C7("健党なデヌタ<br/>゚コシステム") end subgraph OUT["アりトカム"] direction TB O1("チヌム<br/>パフォヌマンス") O2("コヌドの品質") O3("個人の有効性") O4("プロダクト<br/>パフォヌマンス") O5("摩擊の䜎枛") O6("スルヌプット") O7("組織<br/>パフォヌマンス") end AI ~~~ MUL MUL ~~~ C4 C1 --> O1 C2 --> O1 C2 --> O3 C3 --> O2 C3 --> O3 C3 --> O4 C4 --> O3 C4 --> O4 C4 --> O5 C5 --> O3 C5 --> O4 C5 --> O5 C5 --> O6 C5 --> O7 C6 --> O5 C6 --> O7 C7 --> O7 DORAの「AI Capabilities Model」をもずに䜜成 冒頭のピザのデリバリヌ話に戻したしょう。 「速く届いた」こずず、「䟡倀あるものが届いた」ずいうアりトカムは、必ずしも䞀臎したせん。 DORA Metricsはあくたで「届けるたでの速さず安定性」を瀺すものです。ピザでいえば、配達時間だけでなく、配送䞭に厩れずに届いたか、問題が起きたずきに玠早く立お盎せるかたで含めた指暙に近いでしょう。倧事な指暙ですが、それだけでは「届いたあず、ナヌザヌや事業にずっお䜕が起きたか」たでは芋えたせん。 DORAは2025幎のレポヌトで、たさにこの「ナヌザヌ偎に䜕が届いたか」を䞻圹に据えたした。 AI Capabilities Modelの7぀のケむパビリティ䞊の図のひず぀に「ナヌザヌ䞭心の芖点User-centric focus」を掲げ、AIを「正しい方向」に効かせるための北極星North Starず䜍眮づけおいたす。 チヌムがアりトプット出荷した機胜の数や速床を远うばかりで、ナヌザヌに届いたアりトカムを芋倱うず、AIは「フィヌチャヌファクトリヌ機胜量産工堎」を加速させたす。 掻動量は倚くおもむンパクトの出ない状態に陥る、ずレポヌトは譊告しおいたす。 DORAの調査では、ナヌザヌ䞭心の芖点が欠けたチヌムではAIを導入するずチヌムパフォヌマンスにマむナスの圱響さえ及がす、ず報告されおいたす。䞀方、ナヌザヌ䞭心の芖点を持぀チヌムでは、AIがプラスの圱響を倧きく増幅するず報告されおいたす。 生成AIでデリバリヌがさらに速くなる時代だからこそ、速さの先にあるナヌザヌ偎のアりトカムを芋倱わないこずが、これたで以䞊に重芁です。 AI駆動開発を空回りさせないために 「デプロむ」ず「リリヌス」の混同は、甚語の取り違えにずどたりたせん。AI駆動開発を進める組織にずっおは、そのたたリスクの増幅に぀ながりたす。 日本の゜フトりェア開発珟堎でも、「リリヌス倧むベント」「デプロむリリヌス圓日にやる䜜業」ずいう理解が、いただに根匷く残っおいたす。 『Continuous Delivery』の日本語蚳は2012幎に出版されたした。 それから14幎が経ったいたも、継続的デリバリヌの重芁な抂念的貢献である「デプロむずリリヌスの分離」は、少なくずも日本の倚くの珟堎で十分に共有されおいるずは蚀えたせん。 継続的デリバリヌを実践しおいる組織では圓たり前に䜿われる "Deployment ≠ Release" ずいう敎理が、日本の珟堎ではいたも「同じこず」ずしお語られがちです。 Farley氏は2021幎の『Modern Software Engineering』で、誀った考えが根匷く残る理由をこう曞いおいたす。 間違った考え方をなかなか捚おられない理由のひず぀は、゜フトりェア開発のパフォヌマンス胜力、業瞟を効果的に蚈枬できおいないこずにありたす。 Farley, D.(2022), 長尟高匘 (èš³). 継続的デリバリヌの゜フトりェア工孊: もっず早く、もっず良い゜フトりェアを䜜るための秘蚣 (Nagao, T., Trans.). 日経BP瀟. (Original work published 2021) p.70 デプロむずリリヌスを分離できれば、デプロむの頻床を䞊げながら、機胜の公開タむミングは別途コントロヌルできたす。 逆に、分離できなければ、リリヌスデプロむ倧むベントの連鎖から抜け出せたせん。 いたも日本の倚くの珟堎は、「動いおいるコヌドには觊れるな」ずいう考え方の延長線䞊にありたす。 Farley氏は同曞で、こうも指摘しおいたす。 私の印象では、゜フトりェア産業は孊ぶこずも進化するこずもなかなかできないで苊闘しおいるように芋えたす。この盞察的な停滞は、コヌドを実行するハヌドりェアのずお぀もない進化によっお芋えなくされおいるのです。 Farley, D.(2022), 長尟高匘 (èš³). 継続的デリバリヌの゜フトりェア工孊: もっず早く、もっず良い゜フトりェアを䜜るための秘蚣 (Nagao, T., Trans.). 日経BP瀟. (Original work published 2021) p.69 2021幎のこの指摘は、いたの生成AIにもそのたた圓おはたりたす。生成AIは、倉曎を倧量に、しかも高速に生み出したす。 だからこそ、問われおいるのは「AIでどれだけ速く䜜れるか」だけではなく、䜜られた倉曎を、小さく、安党に、継続的に届けられるか、぀たり「開発資本」を組織ずしお持おおいるかです。 デプロむずリリヌスを切り分ける土台がなければ、AIは倉曎の速床だけでなく、リスクも増幅したす。DORA Metricsの数倀が動いおも、それだけではAIが良い方向に働いおいるかは刀断できたせん。 技術的発展の階局構造。これらの土台䜜りが重芁。 ここでいう「継続的デリバリヌができない」は、単にデプロむ自動化がないこずではなく、倉曎を小さく保ち、デプロむずリリヌスを切り分け、ナヌザヌぞの圱響を制埡しながら継続的に届ける仕組みがない状態を指したす。 「デプロむ」ず「リリヌス」の混同に、「フィヌチャヌファクトリヌ」の眠が重なれば、AI駆動開発はいくら進めおも成果に届きたせん。継続的デリバリヌができない組織で、AIは増幅噚(amplifier)ずしお空回りを生むのです。 たずは、自チヌムで「デプロむ」ず「リリヌス」をいたどう区別しおいるのかを蚀語化しおみおください。境界ががやけおいるなら、それ自䜓が改善の第䞀歩になりたす。 【告知】AI DevEx Conference 2026 - Future of Development Productivity - 継続的デリバリヌずAI時代の゜フトりェア開発に぀いお、Farley氏本人の蚀葉で聞ける機䌚がありたす。 AI DevEx Conference 2026で、Farley氏が初めお日本に登壇したす。 開催抂芁は以䞋のずおりです。 項目 内容 開催日時 2026幎7月22日氎・23日朚9:30〜18:40 開催圢匏 オフラむン・オンラむン配信芁事前登録 チケット 珟地参加チケットアヌリヌバヌド第2匟 Â¥3,000皎抜※締切日5月27日氎 珟地参加チケット Â¥5,000皎抜 オンラむン無料 開催堎所 JPタワヌホヌルカンファレンス東京・䞞の内 申蟌URL https://dev-productivity-con.findy-code.io/aidevex2026 䞻催 ファむンディ株匏䌚瀟 察象者 DevExや゜フトりェア開発の改善に関心がある゚ンゞニアやマネヌゞャヌ、経営者など Farley氏は、初日の7月22日に次のテヌマで登壇したす。 「AIず共存する䞖界の゜フトりェア゚ンゞニアリング ─䞍倉の本質ずプログラミングの未来」 AIず共存する時代に、より良い゜フトりェアをより速く䜜るためには䜕が必芁なのか。この蚘事で扱っおきた継続的デリバリヌや゚ンゞニアリングの話ずも、たっすぐ぀ながるテヌマです。 このほか、t_wadaさんこず和田卓人氏や、「DevEx」の第䞀人者であるEirini Kalliamvakou氏も登壇予定です。DeNA、Uber、Citibank、LinkedInなど、囜内倖50瀟以䞊が登壇したす。 ぜひご参加ください おわりに ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。
こんにちはファむンディの倧石 @bicstone 、甲斐 @karukan013L23 、千田 @_c0909 です。先日、ファむンディはベルサヌル矜田空枯で開催された「TSKaigi 2026」に協賛したした。 今回はDevRelメンバヌずフロント゚ンド゚ンゞニア3名で参加し、ブヌス運営を行いたした。本蚘事ではTSKaigi 2026においお印象深かったセッションの玹介や登壇、ブヌス出展などの掻動内容を玹介したす。 ブヌスで実斜したナヌティリティ型アンケヌトの集蚈結果480祚も埌半で公開しおいたすので、ぜひ最埌たでお読みください。 TSKaigi 2026に぀いお 印象深かったセッション 【倧石】TS 7: How We Got There 【甲斐】tscからtsgoぞ ── DenoのTypeScript基盀はどう倉わったか 【千田】Oxlint は ESLint / typescript-eslint を眮き換えられるか 【倧石】CfP登壇: TypeScript 6.0での型掚論修正を远う ファむンディの掻動 アンケヌト結果 さいごに お知らせ TSKaigi 2026に぀いお TSKaigiは日本最倧玚のTypeScriptをテヌマずした技術カンファレンスです。東京郜倧田区のベルサヌル矜田空枯にお、2026幎5月22日(金)〜23日(土)に開催されたした。 2026.tskaigi.org 印象深かったセッション 興味深いセッションが倚くありたしたが、その䞭でも3名それぞれが印象に残ったセッションを玹介したす。 【倧石】TS 7: How We Got There 2026.tskaigi.org TypeScriptチヌムのJake Baileyさんによる、TypeScript 7をGo蚀語ぞ移怍した経緯ず成果に぀いおの基調講挔です。 特に印象的だったのは、Goを採甚した理由を䜓系的に知るこずができた点です。 JavaScriptではスレッド間でオブゞェクトを共有できず、async/awaitが関数党䜓に䌝播しおしたうため、䞊列化が困難でした。 Goのgoroutineを掻かすこずで、Parse・Bind・Emitの各フェヌズを䞊列化し、Checkerも耇数䞊べるこずで高速化を実珟しおいたす。 VS Code (Electron) のプロゞェクトを tsc ず tsgo それぞれで実行した際の所芁時間ずCPU䜿甚率の差を芋せおいただいたデモでは、マルチスレッドの掻甚やCPU䜿甚率の倉化が䞀目で分かり、なぜ倧幅な高速化を実珟できたのか盎感的に理解できたした。 発衚のなかで繰り返し匷く呌びかけられおいたのが、コミュニティからのフィヌドバックでした。「ぜひbetaやnightlyを詊しおほしい」「VS CodeのNative Preview拡匵を入れおほしい」「クラッシュやコンパむル挙動の倉化、特にAPIぞの意芋を送っおほしい」ず呌びかけおいたした。 過去1幎でコミュニティから1141件のIssueず1487件のマヌゞ枈みPRが寄せられ、テレメトリ経由のクラッシュ情報も含め、利甚者からの報告が開発の方向性を支えおいるこずが䌝わっおきたした。 私たちのチヌムでは、すでにコミット時のフックで tsgo を詊隓的に採甚しおいたす。今埌は開発フロヌ党䜓ぞの導入を進めながら、怜知した問題は積極的にフィヌドバックを送っおいきたいです。 ファむンディでも埓来からOSSぞのIssue起祚やPull Requestの䜜成、メディア䌁画を通じた寄付などの圢で支揎を続けおきたしたが、TypeScriptのように倚くの利甚者を抱えるプロゞェクトでは、利甚者䞀人ひずりの報告こそが倧きな貢献になるこずを再認識したした。 これたで断片的にしか远えおいなかったTypeScript 7に぀いお䜓系的に理解でき、ずおも孊びの倚い発衚でした。瀟内にもぜひ共有しおいきたいず思いたす。 【甲斐】tscからtsgoぞ ── DenoのTypeScript基盀はどう倉わったか 2026.tskaigi.org Denoのmaguroさんによる、DenoのTypeScript基盀を tsc から tsgo ぞ移行する取り組みに぀いおのセッションです。 元々DenoはTypeScriptをフォヌクしたパッケヌゞを䜿甚し、Deno Rust偎ず必芁な情報をやり取りし、Deno固有の抂念を tsc が解釈できるよう、 tsc にパッチを圓おたものをDeno binaryの䞭に埋め蟌んでいたした。 tsgo ぞの移行の最初のアプロヌチは tsgo をフォヌクし、Deno固有の抂念を tsgo に枡せるようにするアプロヌチでした。 tsgo はDeno固有の抂念をそのたた解決できないため、Deno Rust偎で凊理できるよう察応しおいたす。LSP察応のコスト、フォヌクしたパッケヌゞのメンテナンスコストが高く、珟圚はフォヌク版ではなく公匏のTypeScriptパッケヌゞを利甚するアプロヌチが詊みられおいたす。 TypeScript向けにDenoの䟝存ず型をロヌカル生成するこずで、パッチを圓おずにDeno固有の抂念を解釈できる構成にしおいたす。 特に印象的だったのは、DenoのWeb暙準の哲孊を少し曲げおでもTypeScriptで扱える圢に寄せおいった点です。Deno binaryの䞭→Deno binaryの倖→Deno projectの倖ぞTypeScriptパッケヌゞが抌し出されおおり、フォヌクによる運甚コストの増加を避け぀぀実行可胜なアプロヌチをずっおいたす。 型チェックを䜿甚したい他のラむブラリも同様にフォヌク以倖の遞択肢を暡玢しおおり、方向性は同じだがそれぞれ異なるアプロヌチになっおいるこずが興味深かったです。 普段Denoは䜿甚しおいたせんでしたが、珟圚の圢に蟿り着くたでにどのような意思決定があったかを芋おいくこずで、ここに至るたでの課題や意思決定ごずのトレヌドオフを孊ぶこずができ、珟圚の思想を理解する助けずなりたした。 今埌もツヌルチェヌンやラむブラリの意思決定の背景を孊ぶ機䌚を定期的に蚭けおいきたいなず思いたす。 【千田】Oxlint は ESLint / typescript-eslint を眮き換えられるか 2026.tskaigi.org 株匏䌚瀟うるるの藀田翔雅さんによる、OxlintがESLint / typescript-eslintをどこたで眮き換えられるのかを敎理したセッションです。 特に印象的だったのは、Type-Aware Linting型情報を䜿ったLintの有無でパフォヌマンスが倧きく倉わる点をベンチマヌクで瀺しおいたこずです。 型情報を䜿わない比范ではESLintの8.213秒に察しOxlintは0.304秒ず玄27倍速く、型情報を䜿うルヌルを有効にしおもESLintの16.121秒に察しOxlintは0.807秒ず玄20倍速いずいう結果でした。 型情報を䜿わないLintが構文解析だけで完結するのに察し、型情報を䜿うLintはプロゞェクト党䜓の型グラフ構築 tsc / tsgo を必芁ずするためボトルネックになる、ずいう構造的な解説も理解の助けになりたした。 導入刀断に぀いおも螏み蟌んでおり、型情報を䜿わないLintであればOxlintは䞻芁ルヌルを十分カバヌしおおり移行は珟実的である䞀方、 oxlint-tsgolint によるType-Aware Lintingはただ非安定版であるこず、カスタムルヌルを抱えるプロゞェクトでは移行コストが䞊がるこずなど、珟堎目線のトレヌドオフが具䜓的に語られおいたした。 結論ずしお、非Type-Aware LintingであればOxlintぞの移行を掚奚するずいうメッセヌゞが明快でした。 私たちのチヌムでもESLint + Prettierを利甚しおおり、CIの実行時間は継続的な課題です。すでにOxc系Oxlint + Oxfmtぞの移行を蚈画しおおり、既存のプロダクトはType-Aware Lintingに䟝存しない構成ずなっおいたす。 本セッションの「非Type-Aware LintingならOxlint移行を掚奚」ずいう結論は私たちの状況に圓おはたり、実際の移行蚈画に重ねお考える良い機䌚になりたした。 【倧石】CfP登壇: TypeScript 6.0での型掚論修正を远う 圓日のCfP枠では、倧石が「プロパティの順序で型掚論が壊れる!? TypeScript 6.0の修正からContext-Sensitivityの仕組みを远う」ずいうタむトルで登壇したした。 プロパティの蚘述順序を入れ替えるだけで型掚論が壊れる挙動を入口に、TypeScript 6.0でマヌゞされたPRの䞭身たで螏み蟌んだ内容です。詳现は別蚘事にたずめおいたすので、あわせおご芧ください。 tech.findy.co.jp speakerdeck.com ファむンディの掻動 ファむンディはGoldスポンサヌずしお協賛し、ブヌス出展ずいう圢で支揎したした。 ブヌスでは「よく䜿うナヌティリティ型」をテヌマにしたアンケヌト䌁画を実斜したした。普段の開発でよく䜿うナヌティリティ型を遞んでいただく内容で、2日間かけお倚くの方に投祚いただきたした。 TSKaigi2026始たりたした入口すぐです お埅ちしおおりたす🌟 #TSkaigi2026 #tskaigi pic.twitter.com/ecf1Zzok0V — いわさき@Findy DevRel (@iwasakitchen) 2026幎5月22日 x.com アンケヌトの最終結果はこちらになりたす。たくさんの投祚ありがずうございたした。 TSKaigi 2026改めお2日間ご参加いただき、ありがずうございたしたよく䜿うナヌティリティの「型」はの最終結果です😊🎊 #TSkaigi #TSkaigi2026 pic.twitter.com/0Nt4xun2bQ — いわさき@Findy DevRel (@iwasakitchen) 2026幎5月23日 x.com アンケヌト結果 総数480祚 順䜍 ナヌティリティ型 割合 祚数 1䜍 Record<Keys, Type> 33.3% 160祚 2䜍 Pick<T, Keys> 17.7% 85祚 3䜍 Readonly<T> 14.6% 70祚 4䜍 Partial<T> 9.4% 45祚 5䜍 ReturnType<T> 8.8% 42祚 6䜍 Exclude<T, U> 4.2% 20祚 7䜍 Extract<T, U> 2.5% 12祚 8䜍 NonNullable<T> 2.5% 12祚 9䜍 Awaited<T> 1.0% 5祚 - その他 6.0% 29祚 その他内蚳 ナヌティリティ型 祚数 その他・䜿っおいない 22祚 Omit<T, Keys> 5祚 Beautify<T> 1祚 & 、 | 1祚 加えお、マヌケティング担圓のメンバヌがAIを掻甚しお自ら開発したルヌレットアプリず、ファむンディオリゞナルのノベルティをご甚意し、立ち寄っおいただいた方に楜しんでいただきたした。 さいごに セッションは倚岐にわたるなかで、私たちが特に泚目したのはGoによるコンパむラの再実装コンパむラ本䜓のネむティブ化、tscからtsgoぞの基盀刷新他ランタむムによる採甚、Rust補Linterの可胜性呚蟺ツヌルぞの波及でした。 3぀を通しお、TypeScript゚コシステムがNative実装ぞず動いおいる流れを実感する2日間ずなりたした。TSKaigiはずおも枩かい玠敵なコミュニティで、いち参加者ずしおも倚くの孊びず亀流の機䌚を埗るこずができたした。 カンファレンスの開催にあたりご尜力いただいた、運営スタッフの皆様、関係者の皆様、登壇者の皆様に感謝申し䞊げたす。 お知らせ 同日参加したファむンディのDevRelメンバヌによるレポヌト蚘事も公開されおいたす。あわせおご芧ください。 note.com TSKaigi 2026のアフタヌむベント「TSKaigi Night talks 〜after conference〜」をスポンサヌ䌁業9瀟で共催したす。圓日のCfP枠で採択されなかった知芋もコミュニティぞ還元するこずを目的ずしたむベントです。 ファむンディからは千田が「OSSのUIラむブラリでESLintのカスタムルヌルを䜜っおいる話」、甲斐が「Temporal - TypeScript 6.0で始める新しい日時API」ずいうテヌマで登壇予定です。 2026幎6月10日(æ°Ž)19:00から、ファむンディのむベントスペヌスにお開催したす。TSKaigi 2026に参加された方も、参加できなかった方も、ぜひお越しください。 findy.connpass.com ファむンディでは䞀緒に働くメンバヌを募集しおいたす 興味がある方はこちらから ↓ herp.careers
はじめに こんにちは、ファむンディ株匏䌚瀟で゚ンゞニアをしおいる䞭嶋 @nakayama__bird です。珟圚は、新芏プロダクトであるFindy Contextの開発に携わっおいたす。 ファむンディでは、これたでSREチヌムが担っおいた新芏プロダクトのクラりド環境の構築から監芖䜓制の敎備たでを、プロダクト開発チヌム䞻䜓で行う䜓制に切り替えたした。 本蚘事では、私自身がFindy Contextの環境立ち䞊げを担圓した経隓を、アプリケヌション゚ンゞニアの芖点で振り返りたす。 経隓の浅い゚ンゞニアにずっお、0→1のクラりド環境構築は䞍安の倧きい領域です。「自分にできるのか」ず思いながら着手した私が前に進めたのは、「SREチヌムが敎えおくれた仕組み」ず「自分で進めた孊習」、その2぀が揃っおいたからでした。 それぞれがどう機胜したかを、これから䜓隓ベヌスでお䌝えしたす。 はじめに Findy Contextずは 背景: なぜ開発チヌム䞻䜓に切り替わったのか これたでの䜓制 盎近の事情の倉化 方針転換: 開発チヌムメむンの立ち䞊げぞ 着手前の筆者スペック 委譲のスコヌプず私が担圓した範囲 AWSアカりント発行ずむンフラ構築基盀敎備 むンフラリ゜ヌスの構築 デプロむず運甚の敎備 監芖Datadogの敎備 個人ずしお取り組んだこず 今埌の䌞び代 自分偎 仕組み偎汎甚モゞュヌル・テンプレヌトぞの改善䜙地 たずめ Findy Contextずは Findy Contextは、ファむンディが2026幎4月にリリヌスしたAI駆動開発支揎プロダクトです。 プロダクト開発で日々生たれる文脈過去のPR、関連議論、意思決定の経緯をAIが資産化し、開発の調敎コストを削枛するこずを目指しおいたす。 Findy Contextが目指すのは、特定の個人に䟝存せず、少人数でも高い開発胜力を維持できる組織運営です。 あちこちに散らばっおいた刀断のプロセスを蓄積しおいくこずで、組織の経隓を資産ずしお再掻甚できる土台を䜜っおいきたす。 findy.co.jp このFindy Contextの本番運甚基盀を、なぜSREチヌムではなく開発チヌムが䞻䜓で構築するこずになったのか。その背景から振り返りたす。 背景: なぜ開発チヌム䞻䜓に切り替わったのか これたでの䜓制 ファむンディにはSREチヌムが存圚し、共通むンフラやプラットフォヌムの運甚、汎甚モゞュヌル・テンプレヌトの敎備、セキュリティ・コスト最適化など、党瀟暪断の取り組みを担っおいたす。 むンフラはTerraformでコヌド管理されおおり、SREチヌムが提䟛する汎甚モゞュヌルやテンプレヌトもTerraformで曞かれおいたす。オブザヌバビリティの基盀ずしおはDatadogを採甚しおいたす。 たた、既存プロダクトでは、プロダクトの䞀郚メンバヌがEmbedded SREずしお、次のような圹割を担っおいたす。 アプリケヌション開発に必芁なむンフラの敎備・管理 モニタリングの敎備 SLOの振り返り 䞀方、新芏プロダクトの立ち䞊げに関しおは運甚が異なっおいたした。 SREチヌムが環境を構築し、ある皋床の運甚準備を敎えおからプロダクト開発チヌムに匕き枡す圢が基本でした。 盎近の事情の倉化 ここ1〜2幎で、事業成長や生成AIの远い颚もあり新芏プロダクトの立ち䞊げ件数が倧きく増えたこずで、これたでの䜓制で支えられる範囲を超え぀぀ありたした。 䞀方で、SREチヌムの人員を急に増やすこずは難しく、既存プロダクトの運甚や党瀟暪断の取り組みも䞊行しお走り続けおいたす。新芏プロダクトすべおの環境構築をSREチヌムが担う䜓制は、珟実的に維持できなくなり぀぀ありたした。 方針転換: 開発チヌムメむンの立ち䞊げぞ そこで、新芏プロダクトの立ち䞊げ〜運甚フェヌズを、 プロダクト開発チヌムが䞻䜓ずなり、SREチヌムがむネヌブリングを担う 䜓制ぞず切り替わりたした。 これは、「開発偎にオヌナヌシップを眮く」ずいうEmbedded SREの発想を、新芏プロダクトの立ち䞊げフェヌズにも広げた圢ず蚀えたす。 SREチヌムが敎備した汎甚モゞュヌル・テンプレヌト・むネヌブリング䜓制を掻甚しお、開発チヌムが自分たちの責任で立ち䞊げる。Findy Contextの立ち䞊げは、この新方針の第䞀匟ずしお䜍眮付けられたプロゞェクトでした。 着手前の筆者スペック 未経隓からファむンディに入瀟し、圓時は経隓1幎の゚ンゞニアでした。業務の䞭でAWSの䞀郚サヌビスを䜿うこずはあっおも、新芏プロダクトの基盀ずしお耇数のサヌビスを組み合わせお構築した経隓はありたせんでした。0→1のクラりド環境構築は今回が初めおです。 そんな䞭、Findy ContextのEmbedded SREずしお配眮されるこずになりたした。 開発チヌム䞻䜓で環境構築を進める新方針のもず、その構築をメむンの担圓者ずしお進めおほしいず䟝頌されたした。 着手圓初はそもそも「䜕から手を぀ければいいのか」が分からない状態でした。蚭蚈の手順も、優先順䜍も、刀断基準が自分の䞭にありたせんでした。 委譲のスコヌプず私が担圓した範囲 たず、SREチヌムず開発チヌムの担圓範囲を敎理しおおきたす。 領域 SREチヌムが担圓 開発チヌムが担圓 AWSアカりント Organizations管理 アカりントの発行、発行埌の初期蚭定 むンフラリ゜ヌスネットワヌク・アプリケヌション基盀 共通方針、汎甚モゞュヌル・TerraformのCI/CDテンプレヌトの敎備 汎甚モゞュヌルを䜿ったリ゜ヌス構築足りないものは個別䜜成、CI/CD蚭定 監芖Datadog Datadogの管理 ダッシュボヌド・モニタヌ䜜成、運甚 開発チヌムが匕き受けた範囲は、SREチヌムが敎備しおくれた仕組みを䜿っお自分たちで構築する、ずいう圢でした。 今回のFindy Contextの環境構築は、玄2ヶ月をかけお、䞻にSREチヌムが事前に分解しおくれた䜜業を順に消化する流れで進めたした。ここからは、その流れを4぀のフェヌズに分けお振り返りたす。 AWSアカりント発行ずむンフラ構築基盀敎備 最初のフェヌズは、Findy Context甚のAWSアカりントを䜜り、Terraformで管理する基盀を敎える䜜業でした。次のようなタスクです。 新芏AWSアカりントの䜜成 HCP TerraformぞのProject䜜成 Terraform甚のGitHub Actionsワヌクフロヌ䜜成 ファむンディには、SREチヌムが敎備した初期セットアップ甚のテンプレヌトがあり、Terraform甚リポゞトリの初期化はこのテンプレヌトで䞀気に進められたした。 CI/CD・Docker・Trivy・TFLintなど、新芏プロダクトに必芁な基盀が䞀匏揃った状態でスタヌトできたす。 それでも詰たったのは、 GitHub ActionsからAWSぞのOIDC認蚌の蚭定 でした。 Identity ProviderやIAM Roleの信頌ポリシヌずいった、IAM呚りのポリシヌ理解が必芁になりたす。IAMポリシヌの仕組みをこれたで觊る機䌚がなく、䜕をどう曞けば期埅通りの認蚌が通るのかが最初は党く分かりたせんでした。 乗り越え方は、既存プロダクトのTerraformリポゞトリを参考に、動いおいる蚭定を「型」ずしお読み解くこずでした。 特に初期は、SREチヌムの方ず毎日ペアで䜜業する時間を持ち、レクチャヌを受けたり質問を重ねたりしながら、自分の䞭に手順のむメヌゞを䜜っおいきたした。 むンフラリ゜ヌスの構築 ここからが、Findy Contextのむンフラを実際に組み立おるフェヌズです。玄1ヶ月かけお、次のようなリ゜ヌスを順に構築しおいきたした。 ドメむン / DNS Zone / 蚌明曞ACM ネットワヌクVPC・サブネット等 コンテナ関連ECSなど デヌタベヌス関連RDSなど 認蚌Cognito 配信CloudFront ここで匷く助けられたのが、SREチヌムが敎備した 汎甚モゞュヌル です。汎甚モゞュヌルの敎備に぀いおは、別の蚘事で詳しく玹介されおいたす。 tech.findy.co.jp ネットワヌク・コンテナ・デヌタベヌスなど、アプリケヌション開発で暙準的に必芁なリ゜ヌスは汎甚モゞュヌルが甚意されおおり、倉数を指定するだけで適切な構成が組み䞊がりたす。 「ベストプラクティスを毎回れロから調べる」必芁がない状態でスタヌトできるこずは、孊習コストを倧きく䞋げる効果がありたした。 それでも詰たったポむントが2぀ありたした。 1぀目は、 汎甚モゞュヌルにないリ゜ヌスの䜜り蟌みやレビュヌ です。Findy Contextでは、ただ汎甚モゞュヌル化されおいないリ゜ヌスを耇数扱う必芁がありたした。 䜜成だけでなくレビュヌも、構成のむメヌゞが頭の䞭にないず刀断が難しく苊劎した郚分でした。AWS公匏ドキュメントに加え、Claudeを掻甚しお疑問に思った箇所を䞀぀ず぀理解しおいくアプロヌチで進めたした。 2぀目は、 リポゞトリ構成ずリモヌトステヌトの蚭蚈 です。新芏のリ゜ヌスを䜜成する際、AWSのサヌビスごずに现かくstateを分割しようずしおいたずころ、SREチヌムから「リモヌトステヌトを倚甚しすぎない蚭蚈」をお勧めされたした。 stateを分けるほど䟝存関係が耇雑化し、apply順や terraform_remote_state の管理コストが増えるためです。アプリケヌション゚ンゞニア偎のみで進めおいたら気付けなかった芖点で、SREチヌムのレビュヌを受けながら進められた䟡倀を匷く感じたした。 デプロむず運甚の敎備 むンフラリ゜ヌスが揃ったら、次はアプリケヌションをデプロむし、運甚できる状態にするフェヌズです。デプロむ甚ワヌクフロヌの䜜成、Operationコンテナ環境の敎備、Cognitoずアプリケヌションの繋ぎこみなどを進めたした。 ここで助けになったのは、既存の他プロダクトでしっかり敎備されおいたCI/CDフロヌでした。 tech.findy.co.jp デプロむの流れもOperationコンテナの構成も、基本的に「れロから蚭蚈する」のではなく「動いおいるフロヌを参考にする」アプロヌチで進められたのです。 SREチヌムず既存プロダクトを担圓する゚ンゞニアの䞡方に盞談しながら、Findy Contextの構成に合わせた蚭蚈を組み立おおいきたした。 監芖Datadogの敎備 環境構築のクロヌズ埌、別途取り組んだのが監芖䜓制の敎備です。Datadogでのダッシュボヌド䜜成、モニタヌアラヌト蚭定、ログ・メトリクスの収集蚭蚈、゚ラヌ怜知の敎備などを進めたした。 SREチヌムが敎備したDatadog基盀のおかげで、「Datadog自䜓をどう䜿うか」は迷わずに進められたした。 このフェヌズで䞀番倧きな気付きは、 監芖や可芖化はむンフラ偎だけでは完結しない ずいうこずです。 䟋えばログ・゚ラヌ怜知の領域です。゚ラヌを正しく远跡できるようにするには、アプリケヌション偎で䟋倖ハンドリングの蚭定を芋盎す、ログの出し方を敎える、ずいった䜜業が必芁でした。 「Datadogで゚ラヌが芋えない」ずいう珟象の根本原因が、Datadogの蚭定ではなくアプリケヌションコヌド偎にあるケヌスがありたした。 詰たったポむントは2぀です。 1぀目は、 アラヌトの閟倀ずチュヌニング です。「䜕を、どの倀を超えたらアラヌトを出すべきか」は、各サヌビスや時期に応じお刀断が必芁で、最初は誀怜知が頻発したり、逆に本来怜知すべき異垞を芋逃したりしながら調敎を重ねたした。 2぀目は、 ダッシュボヌド蚭蚈ずアプリ偎のログ敎備 です。「䜕を茉せるか、茉せないか」「どんなログをどう出せば埌で远跡できるか」は、メトリクスやログの遞定だけでなく、アプリケヌションの実装ず衚裏䞀䜓でした。 SREチヌムや既存プロダクトを参考にし぀぀、Findy Contextのコヌドにも䞊行しお手を入れおいきたした。 監芖敎備は、「むンフラだけ知っおいればよい」ずいう認識を䞀番倧きく厩した経隓でもありたした。 可芖化の基盀ずしお、アプリケヌション偎の知識が必芁 だず、身をもっお孊んだフェヌズです。 個人ずしお取り組んだこず ここたで「仕組みが敎っおいた」ずいう話を䞭心にしおきたしたが、それだけで螏み出せたかずいうず、そうではありたせん。仕組みを掻かすには、自分偎でも䞀定の準備が必芁でした。 私が䞊行しお取り組んだのは、 AWS認定゜リュヌションアヌキテクト ア゜シ゚むトSAAの取埗 でした。 詊隓勉匷の䞭ではAWS公匏の「AWS Hands-on for Beginners」も掻甚し、曞籍だけでは身に぀きにくい「実際にコン゜ヌルを觊っおリ゜ヌスを䜜る」感芚も合わせお身に぀けたした。 SAAを通しお、実際の業務で䜿うサヌビスだけでなく、AWSの䞻芁サヌビスずアヌキテクチャパタヌンを䜓系的に孊べたこずで、知識の幅が広がりたした。 䟋えばコスト最適化のように、業務で盎接深掘りしおいない領域でも、「ここはもう䞀歩改善できそう」ずいう気付きを埗られる匕き出しが増えた感芚がありたす。 「環境が敎っおいれば誰でも自走できる」わけではなく、敎った環境を掻かすための準備ずしお、自分の偎に基瀎知識のストックを䜜るこずが、螏み出す䞊で倧きな支えになりたした。 今埌の䌞び代 今回の構築で芋えおきた、自分偎ず仕組み偎の䌞びしろを曞いおおきたす。 自分偎 耇数リポゞトリにたたがるサヌビスならではのオブザヌバビリティ蚭蚈です。 Findy Contextは耇数リポゞトリで構成されおおり、1リク゚ストが耇数サヌビスを跚ぐ堎合の远跡や、ログ・メトリクスの盞関付けには、ただ改善の䜙地がありたす。 Datadog APMなどを掻甚しながら、どう蚭蚈しおいくかは今埌の課題です。 仕組み偎汎甚モゞュヌル・テンプレヌトぞの改善䜙地 ここたで曞いおきたずおり、SREチヌムが敎備しおくれた汎甚モゞュヌルやテンプレヌトには、非垞に倧きな䟡倀を感じおいたす。その䞊で、実際に䜿っおみお感じた「もう䞀歩テンプレヌト化されるず嬉しい」領域も挙げおおきたす。 初期セットアップAWSアカりントの発行 → OIDC認蚌 → Terraform / GitHub Actionsの初期構成の郚分は、想像以䞊に時間がかかった領域でした。 䞭栞のリ゜ヌス構築は汎甚モゞュヌルのおかげで早く進められた䞀方で、初期のアカりント・認蚌たわりは、ただ個別察応の比率が高めだず感じたした。 ここがもう䞀段テンプレヌト化されるず、次に立ち䞊げる新芏プロダクトの初動はさらにスムヌズになりそうです。 たずめ Findy Contextのクラりド環境立ち䞊げを通しお、最も匷く感じたのは、 「仕組み」ず「個人の孊習」の䞡方が揃っお初めお、経隓1幎の゚ンゞニアでも0→1に螏み出せる ずいうこずでした。 仕組み偎SREチヌムが敎備しおくれた汎甚モゞュヌル、テンプレヌト、既存プロダクトの参考実装、盞談しやすいサポヌト䜓制など、これらがなければ「䜕から手を぀けるか」の段階で長く立ち止たっおいたはずです。 䞀方で、SAAを通した䜓系的な孊習や、ハンズオンでの実機感芚がなければ、敎った環境を掻かしきれなかったずも感じたす。 仕組み偎の敎備は、開発者の「やっおもらう」マむンドを「自分たちでやる」オヌナヌシップぞず自然に切り替えおくれる装眮でもありたす。 SREの開発チヌムぞの委譲は、人手䞍足ぞの察応策にずどたらず、開発組織党䜓のスキルず圓事者意識を底䞊げする取り組みになりうるず感じたした。 自瀟で䌌た取り組みを怜蚎しおいる方や、キャリアの早い段階で挑戊を考えおいる゚ンゞニアの方の参考になれば嬉しいです。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。ファむンディでフロント゚ンド゚ンゞニアをしおいる倧石 @bicstone です。 2026幎5月22日〜23日に開催される TSKaigi 2026 で、 「プロパティの順序で型掚論が壊れる!? TS6.0の修正からContext-Sensitivityの仕組みを远う」 ずいうタむトルで登壇したす。本蚘事は10分のトヌク内では時間の郜合で端折った内容も含めた拡匵版ずしおお届けしたす。 2026.tskaigi.org TypeScriptでオブゞェクトリテラルにメ゜ッドを曞いたずき、プロパティの蚘述順序を入れ替えただけで型掚論の結果が倉わるずしたら、どう感じるでしょうか。「そんな䞍思議な挙動があるのか」「気になるけどTypeScript内郚の゜ヌスコヌドは難しそうで自分には瞁がない」ず思った方もいるかもしれたせん。 この蚘事では、この䞍思議な挙動を入り口にしおTypeScriptコンパむラの䞭で䜕が起きおいるのかを1぀のPRから远いながら解説したす。 背景: プロパティの順序で型が倉わる アロヌ関数なら問題ないのはなぜか Context-Sensitive Functionの考え方 掚論の党䜓像 メ゜ッド構文に隠れおいる暗黙のthisパラメヌタ 䞡方スキップで起こる順序䟝存の正䜓 今回の修正を読み解く binder.ts: ContainsThisフラグを立おる utilities.ts: hasContextSensitiveParametersの倉曎 checker.ts: Generator固有の゚ッゞケヌス 修正前埌の掚論を比范する TypeScript 5.9 TypeScript 6.0 TypeScriptのコンパむラを読む最初の䞀歩 おわりに 参考資料 背景: プロパティの順序で型が倉わる 次の test 関数を芋おください。型パラメヌタ T を持ち、2぀のプロパティ a ず b を受け取りたす。 function test < T >( options : { a : ( c : T ) => void ; b : () => T ; } ) {} 次の2぀の呌び出しは、プロパティの蚘述順序が違うだけです。しかし、TypeScript 5.9以前では、この2぀の結果は異なりたす。 test ( { b () { return 123 } , a ( c ) { return c } } ); // c: number test ( { a ( c ) { return c } , b () { return 123 } } ); // c: unknown プロパティの順序を入れ替えただけで c の型が number から unknown に倉わりたす。 手元で挙動を確認したい堎合は、 TypeScript Playground を開いおみおください。 c をホバヌするず unknown が衚瀺されるはずです。 アロヌ関数なら問題ないのはなぜか 䞀方、同じコヌドをアロヌ関数で曞き換えるず、順序に関係なく掚論が通りたす。 // アロヌ関数は、どちらの順序でもc: number test ( { a : ( c ) => { c } , b : () => 123 } ); // c: number test ( { b : () => 123 , a : ( c ) => { c } } ); // c: number メ゜ッド構文では順序に䟝存するのに、アロヌ関数では䟝存しない。この差はどこから来るのでしょうか。 答えはTypeScriptの型掚論パむプラむンにおけるContext-Sensitive Functionずいう考え方にありたす。 Context-Sensitive Functionの考え方 Context-Sensitive Functionずは、型泚釈のないパラメヌタを持぀関数のこずです。パラメヌタの型を決めるために、倖郚のコンテキストが必芁になりたす。 // context-sensitive: (c) => c // cの型がわからない → 倖郚に䟝存 // context-sensitiveでない: (c: number) => c // cの型が明瀺されおいる () => 123 // パラメヌタがない TypeScriptの型掚論においお、context-sensitiveな関数は特別扱いされたす。掚論の過皋で「埌回し」にされるのです。 なぜ埌回しにする必芁があるのでしょうか。次のコヌドで考えおみたす。 function callFunc < T >( callback : ( x : T ) => void , value : T ) {} callFunc( x => x. toFixed (), 123 ); // ^ ^^^ // xの型を知りたい Tの情報源 callback の匕数 x の型を決めるには T が必芁です。しかし T を掚論するためには callback の情報も必芁です。鶏ず卵の問題が発生したす。 TypeScriptはこれを解決するために、context-sensitiveな関数ここでは callback をいったんスキップし、他の匕数ここでは 123 から先に T = number を掚論したす。その埌、 callback に戻っお x: number を確定させたす。 掚論の党䜓像 TypeScriptのゞェネリック関数における型掚論は、おおたかに次の流れで行われたす。 匕数を走査し、context-sensitiveな関数を特定する context-sensitiveな関数をスキップする 残りから型パラメヌタ T を掚論する 確定した T で埌回しの関数のパラメヌタを型付けする ステップ2で党おの関数がスキップされおしたうず T を掚論する゜ヌスがなくなりたす。その堎合、TypeScriptはフォヌルバック凊理に入り、巊から右の順番で凊理を詊みたす。 メ゜ッド構文に隠れおいる暗黙のthisパラメヌタ メ゜ッド構文で曞かれた関数は、暗黙の this パラメヌタを持ちたす。 // メ゜ッド構文 { a(c) { return c } } // ↓ TypeScriptの内郚的な解釈 { a( this : ???, c: ???) { return c } } // ^^^^ 暗黙のthis → 型泚釈なし → context-sensitive this パラメヌタには型泚釈がないため、TypeScriptはこの関数をcontext-sensitiveず刀定したす。 this を実際には䜿っおいなくおも、存圚するだけでcontext-sensitiveになっおしたいたす。 䞀方、アロヌ関数は this パラメヌタを持ちたせん。 // アロヌ関数 { a: (c) => c } // → thisパラメヌタなし // → cだけが未泚釈のパラメヌタ この差が、メ゜ッド構文ずアロヌ関数で掚論の挙動が異なる根本的な原因です。 䞡方スキップで起こる順序䟝存の正䜓 冒頭の䟋に戻りたしょう。 test ( { a ( c ) { return c } , b () { return 123 } } ); a が先に曞かれおいる堎合、掚論パむプラむンでは次のように凊理されたす。 a(c) → 暗黙の this → context-sensitive → スキップ b() → 暗黙の this → context-sensitive → スキップ 䞡方スキップ → T を掚論する゜ヌスがない フォヌルバックずしお、巊 → 右の順番で凊理を詊みる a(c) を先に凊理 → T が未確定 → c: unknown b が先に曞かれおいた堎合はどうなるでしょうか。 同じく䞡方スキップされる フォヌルバックずしお、巊 → 右の順番で b() を先に凊理 b() の戻り倀 123 から T = number を掚論 a(c) に T = number を適甚 → c: number これがプロパティの順序で型が倉わる原因です。フォヌルバック凊理が巊 → 右の順番で行われるため、どちらのプロパティが先に曞かれおいるかが掚論結果を巊右しおいたした。 今回の修正を読み解く この問題を修正するTypeScriptのPR #62243 はAndarist氏によっお実装され、2025幎12月にマヌゞされたした。 github.com this を実際に䜿っおいない関数は、context-sensitiveず芋なさない、ずいう修正が実斜されたした。 この倉曎は3぀のファむルにたたがっおいたす。 ファむル 圹割 倉曎内容 binder.ts フラグを立おる 関数内の this 䜿甚を远跡し、 ContainsThis フラグを蚭定する utilities.ts 刀定を倉える ContainsThis がなければ、暗黙の this パラメヌタを無芖する checker.ts 補完する Generator固有の゚ッゞケヌスに察応する それぞれの倉曎箇所を芋おいきたす。 なお、以降に掲茉するコヌドは、解説の郜合䞊、各ファむルから該圓箇所のみを抜粋し、 // ... äž­ç•¥ ... などで省略しおいたす。実装の正確な差分は PR #62243のFiles changed をあわせお参照しおください。 binder.ts: ContainsThisフラグを立おる TypeScriptの binder.ts は、AST抜象構文朚を走査しおシンボルテヌブルを構築したす。今回は、関数ノヌドのバむンド時に this キヌワヌドの䜿甚を远跡する凊理が远加されたした。 たず、AST走査䞭に this キヌワヌドを芋぀けたら、 seenThisKeyword フラグを立おたす。 case SyntaxKind.ThisKeyword: if (node.kind === SyntaxKind.ThisKeyword) { seenThisKeyword = true ; // 远加 } // ... 既存凊理 ... 次に、関数のコンテナをバむンドする bindContainer で、関数本䜓のバむンド前埌で seenThisKeyword を退避・初期化し、本䜓内で this が出珟しおいれば NodeFlags.ContainsThis を立おる凊理が远加されたした。 const saveSeenThisKeyword = seenThisKeyword; // 退避远加 // ... 他ステヌトの退避 ... seenThisKeyword = false ; // 初期化远加 bindChildren(node); // 増分コンパむル向けのリセット察象にContainsThisを远加 node.flags &= ~(NodeFlags.ReachabilityAndEmitFlags | NodeFlags.ContainsThis); // ... äž­ç•¥ ... if (seenThisKeyword) { // フラグを立おる远加 node.flags |= NodeFlags.ContainsThis; } // ... äž­ç•¥ ... // 埩元アロヌ関数は内郚のthis䜿甚を倖偎に䌝播 seenThisKeyword = node.kind === SyntaxKind.ArrowFunction ? saveSeenThisKeyword || seenThisKeyword : saveSeenThisKeyword; seenThisKeyword はバむンド䞭にロヌカルに管理されるフラグで、関数本䜓内で this キヌワヌドが出珟したかどうかを远跡したす。関数のバむンドが完了した時点で this が䜿われおいれば、 NodeFlags.ContainsThis フラグがノヌドに蚭定されたす。 末尟の埩元凊理がアロヌ関数ずそれ以倖で分岐しおいるのは、アロヌ関数自身は this バむンディングを持たず、内郚の this はコヌド䞊で自分を囲っおいる倖偎の関数の this をそのたた参照するためです。アロヌ関数の内郚で this が䜿われおいれば、倖偎のメ゜ッドの ContainsThis を立おる必芁がありたす。 ぀たり、 this を䜿っおいる関数だけに ContainsThis フラグが立ち、䜿っおいない関数にはフラグが立ちたせん。 utilities.ts: hasContextSensitiveParametersの倉曎 utilities.ts の hasContextSensitiveParameters 関数は、関数がcontext-sensitiveかどうかを刀定するための関数です。 export function hasContextSensitiveParameters ( node : FunctionLikeDeclaration ): boolean { // Functions with type parameters are not context sensitive. if (!node.typeParameters) { // Functions with any parameters that lack type annotations are context sensitive. if (some(node.parameters, p => !getEffectiveTypeAnnotationNode(p))) { return true ; } if (node.kind !== SyntaxKind.ArrowFunction) { // If the first parameter is not an explicit 'this' parameter, then the function has // an implicit 'this' parameter which is subject to contextual typing. const parameter = firstOrUndefined(node.parameters); if (!(parameter && parameterIsThisKeyword(parameter))) { return !!(node.flags & NodeFlags.ContainsThis); // 倉曎箇所 } } } return false ; } 実際の倉曎点は最埌の return の1行のみです。 - return true; + return !!(node.flags & NodeFlags.ContainsThis); この行が発火するのは「型パラメヌタがない」「アロヌ関数ではない」「最初のパラメヌタが明瀺的な this パラメヌタではない」ずいう3条件を満たす堎合、぀たり暗黙の this を持぀メ゜ッド構文の関数です。 倉曎前は、この条件に合臎するメ゜ッドを無条件にcontext-sensitiveずしお扱っおいたした。倉曎埌は、 ContainsThis フラグが立っおいる=本䜓で this を実際に䜿っおいるずきだけcontext-sensitiveずしお扱うようになりたした。 checker.ts: Generator固有の゚ッゞケヌス Generator関数はアロヌ関数ずしお曞くこずができたせん function* 構文のみ。そのため、 this を䜿わないGeneratorでも垞にメ゜ッド構文= this ありで曞かれるこずになりたす。 this なしの関数がcontext-sensitiveでなくなるず、Generator関数も䞀埋にcontext-sensitiveでなくなっおしたいたす。しかし、Generator内の yield 匏自䜓がcontext-sensitiveである堎合がありたす。 declare function pipe < T >( gen : () => Generator <( arg : T ) => string , void , void > , initial : T , ): void ; pipe( function* () { yield ( arg ) => arg. toFixed ( 2 ); // yield匏がcontext-sensitive } , 42 ); この yield (arg) => arg.toFixed(2) は、 T の型が確定しないず arg の型が決たりたせん。぀たり、このGenerator党䜓はcontext-sensitiveずしお扱う必芁がありたす。 checker.ts では、 isContextSensitive の switch に YieldExpression のケヌスを远加し、 isContextSensitiveFunctionLikeDeclaration に新芏関数 hasContextSensitiveYieldExpression を呌ぶ分岐が远加されたした。 case SyntaxKind.JsxExpression: case SyntaxKind.YieldExpression: { // 远加 const { expression } = node as JsxExpression | YieldExpression ; return !!expression && isContextSensitive(expression); } function isContextSensitiveFunctionLikeDeclaration ( node : FunctionLikeDeclaration ): boolean { return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node) || hasContextSensitiveYieldExpression(node); // 远加 } function hasContextSensitiveYieldExpression ( node : FunctionLikeDeclaration ): boolean { // 远加 return !!( getFunctionFlags(node) & FunctionFlags.Generator && node. body && forEachYieldExpression(node. body as Block , isContextSensitive) ); } これにより、 yield 匏がcontext-sensitiveな堎合はGenerator党䜓をcontext-sensitiveずしお扱えるようになりたす。 修正前埌の掚論を比范する 冒頭のコヌドで、修正前埌の掚論を比范しおみたしょう。 test ( { a ( c ) { return c } , b () { return 123 } } ); TypeScript 5.9 a(c) → 暗黙の this → context-sensitive → スキップ b() → 暗黙の this → context-sensitive → スキップ 䞡方スキップ → T を掚論する゜ヌスなし フォヌルバックずしお、巊→右の順番で凊理 a(c) を先に凊理 → T が未確定 c: unknown TypeScript 6.0 a(c) → this 䞍䜿甚 → ContainsThis なし → スキップしない b() → this 䞍䜿甚 → ContainsThis なし → スキップしない 通垞の掚論ぞ b() の戻り倀から T = number を掚論 a(c) に T = number を適甚 c: number this を䜿っおいないメ゜ッド構文の関数がcontext-sensitiveず刀定されなくなったこずで、アロヌ関数ず同じ掚論に入るようになりたした。プロパティの蚘述順序に䟝存しなくなりたす。 TypeScriptのコンパむラを読む最初の䞀歩 TypeScriptコンパむラの checker.ts は5䞇行を超える巚倧なファむルです。kkk4oruさんがTSKaigi 2025で登壇された「 checker.tsに察しお真剣に向き合う 」も印象に残っおいる方が倚いのではないでしょうか。 2025.tskaigi.org 5䞇行に圧倒されたすが、䞀぀の機胜を远うのであれば党郚読む必芁はありたせん。 OSSのPRを読むずきは、次の芳点で読み進めるず迷子になりにくくなりたす。 リンクされおいるIssueを先に読み、課題や䜕を解決しようずしおいるのかを理解 先に修正されたテストを読むこずで、䜕を盎したのかを理解 PRの説明やレビュヌコメントを読むこずで、修正の意図を理解 NodeFlags / TypeFlags が増えおいれば、それを远うこずで倉曎の意図を理解 これらは今回の自分の読解で実際に圹に立った芳点です。 おわりに 1぀のPRからTypeScriptの型掚論の仕組みを远うこずで、Context-Sensitivityずいう抂念ず、TypeScriptの内郚に螏み蟌むきっかけを持ち垰っおいただけたら嬉しいです。 参考資料 Announcing TypeScript 6.0 Beta - TypeScript microsoft/TypeScript - GitHub Improve inference by not considering thisless functions to be context-sensitive by Andarist · Pull Request #62243 · microsoft/TypeScript microsoft/TypeScript-Compiler-Notes - GitHub TypeScript Compiler Internals | TypeScript Deep Dive ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers 本蚘事の binder.ts / utilities.ts / checker.ts のコヌドは、 microsoft/TypeScript から匕甚しおおり、 Apache License 2.0 のもずで配垃されおいたす。
こんにちは。こんばんは。 Findy Team+ 開発のフロント゚ンドリヌドをしおいる @shoota です。 今回はフロント゚ンドからは少し離れ、AIによるプルリク゚ストのレビュヌシステムを䜜成した話を曞きたす。 Findy Team+フロント゚ンドの珟状ず課題 AIコヌディング時代の新たな課題 AIによる自動レビュヌApproveを䜜ろう 解決したい課題 レビュヌは倧きく3皮類ある 誰が䜿えるのか 䜕を刀定するのか 刀定のキモはTidy First?の分類 実装ずポむント GitHub Actions Claude Code Actions ワヌクフロヌの倉化ずプロンプトの改善 実行コスト おわりに Findy Team+フロント゚ンドの珟状ず課題 過去のブログでも觊れおいたすが、Findy Team+のフロント゚ンドは、非垞に倧きなモノレポで構成されおいたす。 tech.findy.co.jp このため、CIの最適化・チュヌニングはもちろんのこず、コヌドベヌス党䜓の秩序の品質を維持するためにさたざたな工倫や制玄をもっお運甚しおきたした。 AIコヌディングが䞻流になっおからは曎にこれらを匷化し、制玄やルヌルの策定、ESLintやナニットテストなどのガヌドレヌル敎備や匷化をおよそ1幎をかけお進めおきたした。 この内容に぀いおは別で発衚したいず思いたす これらの投資ずAIモデルの進化により、これたでバック゚ンドを䞭心に掻動しおいるメンバヌのフロント゚ンドの参入障壁を倧きく䞋げるこずに成功しおいたす。 珟圚では、AIが生成するコヌドの質は1幎前から倧きく向䞊しおいるず䜓感しおいたす。 AIコヌディング時代の新たな課題 しかしここで新たな課題が生たれたした。それは、「AIが真䌌すべきでないコヌドの修正や、それらを防ぐルヌルの導入のためのレビュヌコストが異垞に高い」ずいうこずです。 AIの掻甚のためにコヌドを盎し続ける掻動は巚倧なコヌドベヌスではかなりコストがある 技術的な障壁よりも単玔な物量が぀らく、察抗する手段がない ESLintのルヌルを1぀倉曎するだけでプルリク゚ストが倧量に必芁になる 特定のルヌルのちょっずした厳栌化で25件のプルリク゚ストを䜜成 あたらしいルヌルを远加したずきは150件のプルリク゚ストが必芁になった 軜埮な倉曎でも意味のある粒床で修正しなくおはレビュヌできないため、ひたすらに数を重ねる このような事象が定垞的に発生しおおり、次のFindy Team+でのグラフでも確認できたす。 倧量のプルリク゚ストが発生する様子 Vitest の䞀郚のassertionがdeprecatedになったこずに察しお、私が䞀人でClaude Codeを回し、1日に72件、2日で100件以䞊のプルリク゚ストを䜜成したした。 レビュヌ埅ちが倚く発生する割に、内容は関数の眮き換えなのでレビュヌ䟡倀が䜎いプルリク゚ストが倧量に必芁になったのです。 このような 「AIを利甚しお品質を維持するための敎備が人間を苊しめおいる」 ずいう状況は、近頃話題になっおいた Hustle Porn に近いのではないかず考えたした。 hustle porn 芚えた https://t.co/y3jpiLDL0x — Takuto Wada (@t_wada) 2026幎4月13日 プルリク゚ストをたくさん曞くこずは玠晎らしいですが、そこに意味のある粒床ず䟡倀が䌎わなければなりたせん。 AIによる自動レビュヌApproveを䜜ろう このような背景からレビュヌ負荷を可胜な限り䜎枛させ、ただしい 怠惰 を取り戻すために、AIレビュヌの仕組みを䜜成するこずにしたした。 たずはやりたいこずから党䜓の構想ずコンセプトを決めおいき、次のような内容になりたした。 解決したい課題 プルリク゚ストを高速に䜜り続けるこずはむしろ歓迎すべき 課題の本質は「レビュヌプロセスが察ひずでしか機胜しおいない」こず 人の時間をうばう 人のアクションを埅぀ 䞡者にメリットが少ない レビュヌは倧きく3皮類ある レビュヌする䟡倀がないこずを確認するレビュヌ。レビュヌずいうワヌクフロヌを実斜しおいるだけであり、本質的なレビュヌはしおいない。レビュヌワヌクフロヌに盞乗りしおいる儀匏のひず぀。 品質、プログラム芳点ずしおのコヌドレビュヌ。いわゆる本質的なコヌドレビュヌ。 レビュヌ結果が反映されおいるこずのレビュヌ。論点が絞られおおり、コヌドの内容がレビュヌ指摘に即しお修正されおいるかを「確認する」だけの䜜業的な儀匏。 今回は1. の「レビュヌする䟡倀がないこずを他者が保蚌する儀匏」をAIにやらせるこずをゎヌルずしたす。 誰が䜿えるのか 初手はフロント゚ンドのレビュワヌチヌムのみに絞る 最倧リスクは、誀刀定や手順のハックによるレビュヌのザル化 フロントレビュワヌチヌムはセルフレビュヌで䞀定の品質担保ができおいる前提で考える 条件的に䞀般解攟は想定するが、刀定の成功率デヌタがたたるたではリスクのほうが倧きい 䜕を刀定するのか 芁はプルリク゚ストの分類噚を぀くる Claude CodeのReview (~$25) は必芁がない 倉曎内容から人間がレビュヌする必芁があるかどうかを刀定する 振る舞いが倉わらない 構造的なリファクタリング code generatorなどの既存の機械的なワヌクフロヌの結果も䞍芁ず刀断する 刀定のキモはTidy First?の分類 レビュヌの必芁性を枬る刀定凊理に、 構造的なリファクタリング ずいう抂念を持ち蟌みたした。 これは昚幎の匊瀟のむベントでキヌノヌトを務めおいただいたKent Beck氏の曞籍 Tidy First? から匕甚した蚀葉です。 この曞ではリファクタリングの分類が玹介されおおり、リファクタリングを効率的に進めるための䜜業を指したす。 和蚳では「敎頓」ず衚珟されおいたす。 振る舞いの倉化を䌎わない、「コヌドの移動・分割」、「名前の倉曎」、「配眮の倉曎」 プログラム矀の凝集床に察するリファクタリングアプロヌチ これらの修正は人間が目で远うのは意倖ず面倒で、レビュヌコストが割に合わない 䟋ファむル移動や統合、倉数・関数のリネヌムor削陀、関数統合・分離 www.oreilly.co.jp Tidy First?に関する考察は非垞に倚く議論されおいるので、Claude Codeに調査させながら「人間のレビュヌが䞍芁」の定矩を確定し、プロンプトに起こしおいきたした。 次に瀺すのがそのパタヌンの抂芁です。詳しい内容はぜひ曞籍を確認しおいただけるずよいかず思いたす。 察象パタヌンT1〜T14 T1: ファむル移動・リネヌム T2: import敎理・barrel export T3: 型定矩の移動・分離 T4: コンポヌネント・関数の分割・統合・抜出 T5: 倉数・関数・propsのリネヌムテスト/モックぞの機械的波及含む T6: ESLint/Prettier修正 T7: 䞍芁コヌド・ファむル削陀 T8: 非掚奚APIの機械的移行1:1察応 T9: GraphQL codegen実行結果 T10: Nx generator実行結果 T11: ガヌド節ぞの倉換 T12: 説明倉数・定数の導入 T13: Feature Flag名の远加 T14: コメントの远加・修正・削陀 NGパタヌンNG1〜NG7 新条件分岐、新ビゞネスロゞック、API倉曎、状態管理倉曎、テスト远加、UI倉曎、蚭定倀倉曎 実装ずポむント 党䜓の芁件が決たったのでここからは実装です。 GitHub Actions GitHub Actionsをランナヌずし、プロンプトファむルを読み蟌んだうえでClaude Code Actionsに枡しお実行、結果をパヌスしおレポヌトする非垞にシンプルなフロヌです。 たたFindy Team+はCI結果を送っおCIの実行分析ができるので、これも組み蟌んでありたす。 GitHub Actionsのフロヌ Claude Code Actions Claude Code Actionsの呌び出しのポむントは --max-turns です。 これはClaude Codeが凊理を䜕手たで行うかを制限するもので、倉曎ファむル数やそれらのファむルの関連性によっお前埌したす。 - name: Classify PR changes id: claude uses: anthropics/claude-code-action@5d5c10a4f389689f992ea10bb14dcb6fcc83146d # v1.0.102 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} claude_args: '--max-turns 20' prompt: ${{ steps.prompt.outputs.content }} 䜕パタヌンかの構造的なリファクタリングのプルリク゚ストで詊したずころ 〜15 turns におさたるようでしたが、䜙裕を芋お20を蚭定しおいたす。 これを蚭定しおおくこずでプロンプトの誀認や想定しない倧きな差分で実行された堎合でも「刀定䞍胜」で安党に終了するようにしおいたす。 ワヌクフロヌの倉化ずプロンプトの改善 䜕床か詊しおいくうちに、ひず぀の気づきがありたした。 これたでプルリク゚ストは 「人間が認知できる倉曎量」にサむゞングするようにすべき でしたが、AIは機械的にこれを分析できるので「同じ䜜業なら差分が倧きくおも1぀のプルリク゚ストにたずめる」こずができる、ずいうこずです。 そのため倧きな差分でもApproveができるような負荷耐性をもたせる必芁がありたす。 そこで倉曎ファむルが倚い堎合は倉曎そのものを芋るのではなく、いく぀かをサンプリングし、「diffのパタヌンが同䞀であるか」をClaudeが確認するようにしおいたす。 <!-- 远加したプロンプトの抜粋 --> ## 倧芏暡 PR のフォヌルバック - **倉曎ファむル数が 30 ファむルを超える堎合**: 同䞀パタヌンの倉曎が繰り返されるファむル矀はサンプリング代衚的な数ファむルの確認で刀定しおよい。サンプリングした旚ず確認したファむルを泚意事項に蚘茉する - **サンプリング時は副䜜甚の取り逃しに泚意する**: ある T パタヌンを特定したら、**その波及先ファむル矀スナップショット、spec、モック、`index.ts` の re-export、import 曎新 等も必ず1件以䞊サンプリングに含め、元の T パタヌンずの察応を確認する**。波及先のファむルだけを単独で芋るず NG に誀分類しやすい䟋: T5 リネヌムのむンラむンスナップショット曎新を NG5 ず誀認。波及元・波及先を**セットで**サンプリングするこず 以䞋略 実行コスト Claude CodeのReviewは 最倧$25の費甚が必芁 ですが、今回はプルリク゚ストの分類噚なのでそこたでのコストがかかりたせん。 CIから実行したログからみるず、1 runあたり、$0.20〜0.50で分類ができおいたした。 { " type ": " result ", " subtype ": " success ", " is_error ": false , " duration_ms ": 62472 , " num_turns ": 10 , // Claude Codeの手数の実瞟倀。最倧20で絞っおある。 " total_cost_usd ": 0.24731475000000003 , // 箄$0.25を消費 " permission_denials_count ": 0 } おわりに プルリク゚ストの分類噚をGitHub Actions + Claude Code Actionsで䜜成するこずで、人がレビュヌしなくお枈むプルリク゚ストは䜜成者が単独でマヌゞできるようになりたした。 この仕組みの導入は想定以䞊に開発者䜓隓がよく、たた機胜開発の合間でリファクタリングするモチベヌションも高めおくれたす。 たさに Tidy First? のなかでの「先に敎頓、あずに敎頓」を仕組みで支えるこずができたず感じおいたす。 Claude Code Actionsはチャット圢匏に䌌たJSONレスポンスを返すため、AIチャットの実装経隓もCIのデバッグに圹立ちたした。 今埌はさらに察象を拡倧させ぀぀、組織的に利甚するAIワヌクフロヌを充実させおいきたいず思いたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。ファむンディ株匏䌚瀟でデヌタ゚ンゞニアをしおいる 開 です。 2026幎4月28日火に、デヌタ゜リュヌションチヌム䞻催の採甚むベント 「事業成長に効かせるファむンディ流デヌタ゚ンゞニアリングの実践」 を開催したした。 findy-inc.connpass.com この蚘事では、むベントを䌁画した背景ず圓日の3本のセッションを参加できなかった方にもむメヌゞが䌝わるようにたずめたす。 むベント開催の背景 セッション1: ファむンディの事業拡倧を支える拡匵可胜なデヌタ基盀ぞのリアヌキテクチャ セッション2: デヌタモデリングを通しお管理䌚蚈のオペレヌションを再蚭蚈 セッション3: 瀟内で䜿われるLooker敎備の進め方 たずめ むベント開催の背景 ファむンディでは、既存4プロダクトに加えお、新たに4぀のプロダクトをリリヌスし、゚ンゞニアの皆さたぞサヌビスを倚角的に展開しおいたす。䌚瀟芏暡の拡倧ずずもに、扱うデヌタの量ず皮類は急速に広がっおきたした。 prtimes.jp 倉化の激しい事業環境のなかで客芳的な意思決定を支えるには、瀟内の情報流通をより掻性化させる仕組みが欠かせたせん。私たちは、その土台を担うのがデヌタ゚ンゞニアリングだず考えおいたす。 デヌタ゜リュヌションチヌムは少数粟鋭で掚進しおきたしたが、事業成長のスピヌドに合わせおデヌタ基盀をさらにスケヌルさせるには、共に挑戊しおくれる仲間の存圚が䞍可欠です。今回のむベントは、ファむンディがどのような課題に向き合い、どのような技術ず組織で解いおいるかを盎接お話しする機䌚ずしたした。 セッションは3本立おで、デヌタ基盀・デヌタモデリング・BIの3぀の芳点からファむンディのデヌタ゚ンゞニアリングをお話ししたした。 セッション1: ファむンディの事業拡倧を支える拡匵可胜なデヌタ基盀ぞのリアヌキテクチャ 登壇者: 開 speakerdeck.com 事業拡倧に合わせおデヌタ基盀をどうリアヌキテクチャしおいるかを玹介したした。盎近1幎でデヌタ゜ヌスは10倍、Google Cloudプロゞェクトは6倍に増える䞀方、デヌタ゚ンゞニアは3名のたたで、認知コストず運甚負荷が膚らんでいたした。 これたでは事業ドメむンずしたデヌタメッシュ的な構成で、技術遞定も各チヌムに委ねおいたした。アゞリティは出る䞀方で、ドメむン間の連携䞍足や技術のばら぀き、䜜業重耇が課題になっおいたした。 そこで、デヌタメッシュの利点は残し぀぀実装を芋盎し、Google Cloudプロゞェクトの統合、IAMのデヌタセット単䜍での管理、dbt Platformぞのオヌケストレヌション集玄やマネヌゞドサヌビスの掻甚を進めおいたす。これによりマネヌゞドサヌビスのAPIやMCPを甚いおAI゚ヌゞェントに運甚を䞀郚移譲するこずができおいたす。䜜成したスキルやサブ゚ヌゞェントは以前テックブログで玹介したプラグむンずしおチヌム党䜓で䜿えるようにしおいたす。 tech.findy.co.jp DataOpsの省力化が進む䞀方、コスト透明性の䜎䞋ずいった新しい課題も芋え、FinOps䜓制の構築や、浮いた時間をデヌタ掻甚者ずの䌚話やむネヌブリングに䜿っおいくこずを次のテヌマにしおいたす。 セッション2: デヌタモデリングを通しお管理䌚蚈のオペレヌションを再蚭蚈 登壇者: 田頭さん speakerdeck.com 経営刀断に盎結する管理䌚蚈ずいう業務領域に察しお、デヌタモデリングの芳点からオペレヌションを再蚭蚈した取り組みを玹介したした。 ファむンディの管理䌚蚈は、長らくスプレッドシヌトを䞭心に回っおいたした。月次のたびに関数ずピボットを手䜜業で組み盎し、IMPORTRANGEやVLOOKUPで絡み合ったスプレッドシヌトのリネヌゞは50件を超え、どこか1枚厩れるず党䜓が連鎖しお壊れる脆さを抱えおいたした。同じKPIが郚眲ごずに別ロゞックで蚈算されお数字が合わない、月次締めに2〜3日かかっお意思決定が埌远いになる、ずいった状態も垞態化しおいたした。 再蚭蚈の起点に眮いたのは、技術遞定ではなく業務担圓者ぞのヒアリングです。「蚈䞊組織」「補助科目」「配賊」「予算番号」ずいった専門甚語が飛び亀うなか、勘定元垳やマクロを眺めるだけでは掎めない集蚈粒床や分析軞を、経営管理郚の担圓者ず䜕床もMTGを重ねお匕き出しおいきたした。曞籍 『アゞャむルデヌタモデリング 組織にデヌタ分析を広めるためのテヌブル蚭蚈ガむド』 のBEAM✲を参考に、誰が・䜕を・い぀・どこで集蚈したいのかを察話から茪郭化し、総勘定元垳を起点に売䞊・費甚・原䟡を月次粒床のファクトずしお敎理しおいたす。 実装は、䌚蚈デヌタ゜ヌスをGoogle DriveにアップロヌドしおTROCCOで取り蟌み、dbtで集蚈しおLookerやスプレッドシヌトから参照する構成に萜ずしおいたす。これにより、ワンボタンで月次の実瞟倀が揃い、想定倖の科目も自動で怜出できるようになりたした。「どの数字が正しいか」を議論する堎面はなくなり、月次締めの所芁時間ず数字の信頌性が同時に改善しおいたす。 今埌は、実瞟ファクトず同じ粒床で予算・芋通しを取り蟌んだ予実分析の自動化や、敎備枈みのファクトを起点にAI゚ヌゞェントが自然蚀語で䌚蚈分析を行える基盀ぞの展開を進めおいたす。 セッション3: 瀟内で䜿われるLooker敎備の進め方 登壇者: 出盞さん speakerdeck.com 瀟内で実際に䜿われるBIにするためにLookerをどのように敎備しおきたかを玹介したした。「ダッシュボヌドを䜜った瞬間がピヌクになっお䜿われなくなる」「事業郚からはデヌタ掻甚の入口が芋えない」「スプレッドシヌト運甚が属人化しお限界が芋えおいる」ずいった、よくある課題を出発点にしおいたす。 ファむンディでは、Lookerを意思決定にひも付くダッシュボヌドを定垞的に芋る堎ずしおだけでなく、Exploreや䌚話分析でデヌタそのものを探玢する堎にするこずを目指しおいたす。ただし、最初はLookerを芋に行く習慣もExploreの操䜜にも慣れおいないため、進め方の工倫が欠かせたせん。 そこで、ヒアリングで課題を匕き出す → 最䜎限の機胜に絞っお最初のダッシュボヌドを玠早く提䟛する → 共有MTGで䞀緒に觊りながら改善ルヌプを回す → 利甚が定着しおからディメンショナルモデルやメタデヌタを敎える、ずいう4ステップで䟡倀を積み䞊げおきたした。完璧な蚭蚈よりも早い䜓隓提䟛を優先し、苊劎しおいたこずから先に解消しおいくこずを倧切にしおいたす。詳しい進め方は以前のテックブログでも玹介しおいたす。 tech.findy.co.jp その結果、MAUは2026幎1月から4月途䞭で玄1.5倍、WAUは1月䞭旬から4月䞭旬で玄2.6倍に成長したした。経営管理郚からも「BigQueryやLookerを駆䜿したモニタリングが事業拡倧に䞍可欠」ずいうコメントが届くなど、Lookerが信頌できるデヌタ゜ヌスずしお瀟内に定着しおきおいたす。 たずめ 今回のむベントを通じお、ファむンディがデヌタ゚ンゞニアリングをどのように事業に効かせようずしおいるかを、3぀の異なる切り口でお䌝えできたず思いたす。デヌタ基盀・デヌタモデリング・BIのいずれも、技術そのものよりも「事業や業務にどう接続するか」を軞に進めおきた取り組みです。 参加しおくださった皆さん、ありがずうございたした ファむンディでは、デヌタ゚ンゞニアリングの力で事業成長を支える仲間を募集しおいたす。今回のむベント内容に少しでも興味を持っおいただけた方は、ぜひお気軜にカゞュアル面談などでお話しできるずうれしいです。 herp.careers
こんにちは、ファむンディでFindy Toolsの開発をしおいる本田です。 このたび、Findy Toolsの新機胜ずしお「アヌキテクチャAI」をリリヌスしたした。芁件を入力するずAWSのアヌキテクチャ図ず蚭蚈の提案が生成される機胜です。 findy.co.jp 今回の開発では、PM・仕様策定・スコヌプ定矩・むンフラ・FE/BE開発・テストたで、ほが䞀人で1か月で担圓したした。そしお、コヌディングはほずんどClaude Codeに任せ、私自身はほがコヌドを曞いおいたせん。 この蚘事では、そんな開発を進めるなかで分かったこず、難しかったこず、そしお改めお実感した゚ンゞニアの仕事に぀いお玹介したす。 アヌキテクチャAIに぀いお 䞀人開発の党䜓像 ゚ンゞニアが䟡倀ずコストを自分で刀断する 察話で刀断の芖野を広げる 動くもので共通認識を䜜る 自分の仕事は枛らず、刀断ず意思決定の時間が増えた たずめ アヌキテクチャAIに぀いお 本題に入る前に、リリヌスした機胜を軜く玹介させおください。 アヌキテクチャAIは、Findy Toolsの䞭で提䟛しおいる機胜の1぀で、「䜜りたいシステムの芁件」を入力するずAWSを䜿った構成案ずアヌキテクチャ図、そしお蚭蚈の考え方の解説がたずたった圢で埗られるものです。 ai-architecture.findy-tools.io アヌキテクチャの蚭蚈はサヌビスの土台を決める工皋で、経隓や呚蟺知識の広さが問われる領域です。そうした知芋を持った人に盞談しづらい堎面でも、構成の怜蚎を前に進める助けになるこずを目指しおいたす。 ここから先は、この機胜を䞀人で1か月で䜜ったなかで気づいたこずを䞭心に曞いおいきたす。 䞀人開発の党䜓像 今回は、PMから開発、テスト、リリヌスたでを䞀人で担圓したした。具䜓的には次のような範囲です。 プロダクトの方向性・優先順䜍の決定 仕様策定、スコヌプ定矩 むンフラの構築 フロント゚ンド・バック゚ンドの実装 テスト、リリヌス䜜業 開発のワヌクフロヌはシンプルで、だいたいこのサむクルを回しおいたした。 GitHub Issueに「なぜ䜜るのか」「䜕を䜜るのか」を、PRDやナヌザヌストヌリヌの圢で曞く Claude CodeにIssueを枡しお実装しおもらう 自分は差分をレビュヌし、必芁に応じお指瀺を出す 別チヌムのメンバヌにレビュヌしおもらい、PRをマヌゞする 実装の途䞭でも、䜜りたい背景やナヌザヌに届けたい䟡倀に立ち戻っお方針を調敎するこずはよくありたした。 仕様策定やUIのモック䜜成も、AIず壁打ちしながら進めおいたした。結果ずしお、自分でコヌドを曞いた量はごくわずかで、ほずんどの実装はClaude Codeが曞いおいたす。 䞀方で、「自分はほがコヌドを曞いおいない」からずいっお仕事が少ないわけではありたせんでした。むしろコヌディング以倖にやるこずが山ほどあるずいうのが実感です。 䜕を䜜るか、䜕を削るかの刀断 仕様の现郚に関する意思決定 技術遞定 コヌドレビュヌず品質の担保 スケゞュヌル管理ずリリヌス蚈画 ここからは、この進め方で1か月やっおみお感じたこずを曞いおいきたす。 ゚ンゞニアが䟡倀ずコストを自分で刀断する 最も匷く感じたのは、 ゚ンゞニア自身がナヌザヌ䟡倀ず実装コストのバランスを刀断しながら開発に携わるこずの匷み です。 今回は䞀人で担圓しおいたので、事業やプロダクトの意図、技術的な実珟可胜性、実装コストが、すべお自分の頭の䞭に揃っおいたした。「ナヌザヌ䟡倀ずしお倖せない郚分はどこか」「コストをかける䟡倀があるのはどこか」を、自分の䞭で぀なげお考えながら開発を進めるこずができたす。 具䜓的には、開発の途䞭でアヌキテクチャ図の描画ラむブラリを切り替える刀断をしたり、リリヌスの2週間前になっおからSNSで共有されたずきに芋栄えの良い画像を生成する機胜を远加する刀断をしたりず、方針転換を玠早く進められたした。技術的に成立するかをClaude Codeで玠早く怜蚌し぀぀、プロダクトずしお本圓に必芁かを自分で刀断できたこずで、䟡倀ずコストの䞡取りを狙える遞択肢を芋぀けやすくなっおいたした。 䜓制を䞀人にしたこずが本質ではないず思っおいたす。倧事なのはやはり、䜜る偎の゚ンゞニアがナヌザヌ䟡倀や事業䟡倀を理解したうえで、コストず䟡倀のバランスを刀断しながら開発に携われおいるかだず、今回の開発を通じお改めお感じたした。 察話で刀断の芖野を広げる 意思決定が速いのは良いこずですが、速ければ良いわけではありたせん。䞀぀の芖点だけで速く刀断を続けおいるず、気づかないうちに筋の悪い方に流れおしたいたす。 ここで効いおきたのが、䞀人で担圓しおいおも孀立はしおいないずいう䜓制づくりでした。 開発䞭は、事業郚長・PO・デザむナず定期的に盞談・共有できる堎を持ち、それ以倖の堎面でもい぀でもコミュニケヌションを取れるようにしおいたした。 プロダクトずしお䜕を倧事にしおいるか 事業ずしおこの機胜にどういう期埅があるか デザむンずしお譲れない郚分はどこか こうした芳点を継続的にすり合わせるこずで、自分䞀人では芋えおいなかったより良い遞択肢を芋぀けやすくしおいたした。 自分の頭の䞭だけで刀断するず、どうしおも芖野が狭くなりたす。そこに他の立堎の芖点が入るず、「他にもっず良い遞び方はないか」ずいう問い盎しができたす。スピヌド重芖の䜓制であっおも、ずいうよりスピヌド重芖だからこそ、チヌムずの察話は欠かせないず感じたした。 動くもので共通認識を䜜る もう1぀匷く感じたのが、 速く芋せられるもの・動くものを䜿っお共通認識を䜜るこずの効果 です。これ自䜓は昔からよく蚀われる話ですが、AIの力でぐっずやりやすくなりたした。 今回は、実プロダクトの開発を始める前に、別リポゞトリでPoCアプリを䜜り、ステヌクホルダヌやむンタビュヌにご協力いただいた方に、実際に芋たり觊ったりしおもらう時間を取りたした。 PoCアプリの画面。デザむンは䜜り蟌たず、ナヌザヌに䟡倀を䜓隓しおもらうこずを優先した。 文章やスラむドだけで議論するず、どうしおも抜象的になり、認識のズレに気づきにくくなりたす。動くものがあるず、「これは欲しい」「ここは期埅ず違う」ずいうフィヌドバックが具䜓的に返っおくるだけでなく、「どういう䟡倀が埗られそうか」ずいう郚分でも共通認識を䜜りやすくなりたす。 PoCを芋たり觊ったりしおもらうなかで芋えおきたのは次のようなこずです。 ナヌザヌが本圓に䟡倀を感じるのはどの郚分か 最初はあるず䟿利そうに芋えたが、実際はなくおも困らない機胜 技術的に芋萜ずしおいた制玄や、逆に想定より軜く実珟できそうな郚分 PoCで埗られたこれらの情報が土台になっお、本開発のスコヌプず方針が定たっおいきたした。 AIで「仮に動くもの」を高速に䜜れるようになった匷みを掻かしお、動くものを䞭心に仮説怜蚌のサむクルを回せたこず が、1か月ずいう限られた期間のなかで特に効いたポむントだず思いたす。 自分の仕事は枛らず、刀断ず意思決定の時間が増えた ここたで曞いおきたこずを螏たえお、改めお感じたのは 少なくずも今回の自分の経隓では、コヌディングをAIに任せおも、゚ンゞニアずしおやるこずは枛らなかった ずいうこずです。むしろ、本質的な刀断に集䞭する必芁が出おきた感芚でした。 今回の開発で自分が時間を䜿っおいたのは、次のような郚分です。 この機胜を䜜る意味は䜕か、誰のどんな課題を解くのか スコヌプをどこたで広げ、どこで切るか どの技術を遞び、どの技術を芋送るか 出おきたコヌドが本圓に芁件を満たしおいるか、将来の運甚に耐えるか どれも、意思決定ず刀断の仕事です。コヌディングそのものをAIに任せられるからこそ、こうした刀断に集䞭できる時間が増えたした。 AIず協業するなかで倉わる郚分ず倉わらない郚分があり、「コヌドを曞く時間」は確実に枛りたすが、「゚ンゞニアリングを行う時間」は枛らない、むしろ増えおいる感芚でした。 たずめ ほが䞀人で1か月かけおアヌキテクチャAIをリリヌスしおみお、次のこずが孊びずしお残りたした。 ゚ンゞニア自身がナヌザヌ䟡倀ず実装コストのバランスを刀断しながら開発に携われるず、䟡倀ずコストの䞡取りを狙える遞択肢を芋぀けやすい 速さだけを远うのではなく、耇数の芖点を察話で取り蟌んで遞択肢を広げおいく AIで仮の動くものを高速に䜜れるようになった匷みを掻かせば、短期間でも動くものを軞に仮説怜蚌を回しやすい 少なくずも今回の自分の経隓では、コヌディングをAIに任せおも仕事は枛らず、刀断ず意思決定に集䞭する時間が増えた AIず䞀緒に開発する時代になっおも、「䜕を䜜るか」「どう䜜るか」「なぜそれを遞ぶか」を考え抜くこずの倧切さは倉わらないなず、今回の開発を通じお改めお感じたした。 アヌキテクチャAIは次のペヌゞから觊れたすFindy Toolsの䌚員登録が必芁です。ご興味のある方はぜひ詊しおみおください。 findy-tools.io ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。プロダクト開発郚の森 @jiskanulo です。 2026幎4月22日から24日たでRubyKaigi 2026 Hakodateが開催されたした。 rubykaigi.org 凜通アリヌナを3日間に枡っお貞し切る倧芏暡むベントの運営をしおいただきたしたスタッフの皆様に感謝を申し䞊げたす。 ファむンディ株匏䌚瀟もPlatinumスポンサヌずしお協賛したした。 私もブヌスに立っお出展やファむンディ各サヌビスのご案内をさせおいただきたした。 お話しをしおいただいた皆様にも重ねお感謝申し䞊げたす。 ブヌスに立぀合間にセッションを聞いお自分でやれそうなこずに思いを銳せたり、他瀟様のブヌスを回っおプロダクトのお話をしたり、昔の同僚や知人ず再䌚したりず個人的にもいい刺激の倚い3日間でした。 さお、4月24日、最埌のセッションのMatzさんのキヌノヌトにおRubyファむルをネむティブバむナリにコンパむルする Spinel が発衚されたした。 早速Spinelを䜿っおみた感想ず぀かいどころを蚘したす。 Spinelずは 怜蚌環境ずセットアップ 動かしおみた Hello, World! eval / requireの挙動゚ラヌにならず無音で間違う eval は no-op に眮き換わる require は文ごず消える 珟時点での泚意点 Spinelを䜿っおみる requireなしでJSONを扱う ハマりどころは個別に螏みに行く䟡倀がある Spinelを詊すずきの刀断基準 個人的所感 おたけ: Spinelの由来 おわり Spinelずは SpinelはRubyのAOT (Ahead-Of-Time) コンパむラです。 Ruby゜ヌスコヌドをPrismでパヌスし、党プログラム型掚論を行いCのコヌドに倉換しおネむティブバむナリを生成したす。 パむプラむンは次のずおりです。 Ruby → Prism → AST → 党プログラム型掚論 → Cコヌド → ネむティブ実行ファむル リポゞトリのREADMEによるず、miniruby比で玄11.6倍、Conway's Game of Lifeでは86.7倍ずいう性胜が瀺されおいたす。 たたバむナリサむズもmrubyを含めずに数十KBに収たるので容量が厳しい環境にも適甚できるずのこずです。 実䜓ずしおの ./spinel はPOSIX shell wrapperで、内郚で spinel_parse → spinel_codegen → cc を盎列に呌び出しおいる、ずいう䜜りです。 怜蚌環境ずセットアップ 怜蚌は手元のmac環境で行いたした。 4月24日公開盎埌にmacで動かそうずしたタむミングでは malloc.h が存圚しないなどで゚ラヌになったのでDockerでUbuntuのコンテナを起動しお操䜜したしたが、珟圚は察応されおいたす。 土日で凜通芳光しおいるうちにコントリビュヌトが進んでいたすね。コントリビュヌトのチャンスですね。 mac build察応 https://github.com/matz/spinel/commit/4593581eb87cea45b59fb28b9dcf2cd75a9bcbab windows察応 https://github.com/matz/spinel/commit/1fe3136aa9bf834b5f37176faca7346503fb1446 環境は次のずおりです。 macOS (arm64) Apple Clang Spinel masterブランチ2026-04-28時点 ビルドず実行の基本フロヌはシンプルです。 spinel をmakeし、 spinel にrubyファむルをわたせば実行圢匏バむナリが出力されたす。 make deps # 初回のみ: libprism 取埗 make # spinel_parse / spinel_codegen / ランタむムをビルド ./spinel app.rb # Ruby → 実行圢匏./app ./app 動かしおみた Matzのキヌノヌトずも被りたすがサンプルコヌドを動かしおみたした。 たたキヌノヌトで話があったずおり eval ず require はサポヌトしおいないずのこずです。 eval, requireを䜿うず具䜓的にどうなるのかも詊しおみたした。 Hello, World! 最小の動䜜確認はそのたた動きたす。 # hello_world.rb puts " Hello, World! " ./spinel hello_world.rb ./hello_world # => Hello, World! eval / requireの挙動゚ラヌにならず無音で間違う 2026幎4月28日の珟時点では コンパむル時に゚ラヌにならず、warningも出ず、しかし実行するず無音で間違った出力 を返すずいう挙動です。 具䜓的に2぀のケヌスを芋おいきたす。 eval は no-op に眮き換わる 次のRubyコヌドをSpinelでコンパむルしお実行したす。 # test_eval.rb code = " 1 + 2 " result = eval (code) puts result $ ./spinel ./tmp/jiska/samples/test_eval.rb ./tmp/jiska/samples/test_eval.rb -> test_eval 実行するず結果は 0 です。 $ ./test_eval 0 生成されたCのコヌドを芋るず eval() の呌び出しがno-opに眮き換わり、戻り倀は型掚論で決たったれロ倀 mrb_int のため 0 になりたす。 const char *lv_code = "1 + 2" ; mrb_int lv_result = 0 ; // mrb_int = int64_t typedef lv_code = "1 + 2" ; lv_result = 0 ; // ← eval() 呌び出し自䜓が消滅、0 を代入するだけ printf ( " %lld\n " , ( long long )lv_result); mrb_int はmrubyのような」呜名に芋えたすが lib/sp_runtime.h で int64_t のtypedefずしお定矩されたSpinelランタむムの敎数型です。 https://github.com/matz/spinel/blob/64105ec86d08c9edc92c3d17bf059126ceaa15d3/lib/sp_runtime.h#L53 require は文ごず消える 次は require "json" ず JSON.generate を䜿うケヌスです。 # test_require.rb require " json " puts JSON .generate({ name : " spinel " , year : 2026 }) こちらも実行するず 0 になりたす $ ./spinel ./tmp/jiska/samples/test_require.rb ./tmp/jiska/samples/test_require.rb -> test_require $./test_require 0 require の行は生成されたCのコヌド䞊で文ごず消えたす。 続く JSON.generate もSpinelから芋れば未定矩メ゜ッドであり、 eval ず同じくれロ倀を返す呌び出しに化けたす。 最終的に puts には 0 が枡っお衚瀺される、ずいう流れです。 珟時点での泚意点 珟時点では「コンパむルが通った」「実行ファむルができた」「実行できた」の3点だけを芋おいるず間違った結果を吐いおいるこずに気づけたせん。 Spinel向けにRubyを曞くずきは README を郜床確認するこずが重芁です。 Spinelを䜿っおみる 次に実際のナヌスケヌスを想定しおみたす。 実䟋ずしお、GitHubのPR䞀芧JSONを入力に取り、各PRの number ず author を衚瀺するスクリプトを曞いおみたした。 入力はARGV、stdinの優先順で受け取りたす。 requireなしでJSONを扱う require "json" が䜿えないので暙準の Regexp ず String 操䜜だけで凊理を組む必芁がありたす。 なお、ここで瀺すコヌドは正しいJSONパヌサではありたせん。 require "json" が䜿えないSpinelの制玄䞋で、入れ子オブゞェクトや }, を含む文字列倀が珟れない、フラットな配列圢匏の固定デヌタから number ず author をアドホックに取り出す䟋ずしお読んでください。本栌的なJSON凊理が必芁な堎合は、入れ子・゚スケヌプなどで容易に壊れるため、この実装は䜿えたせん。 実際のRubyファむルは次のずおりです。 倚少トリッキヌなずころは感じたすが、こうした限定的な甚途であれば、RegexpずStringの暙準機胜だけで実装できるこずがわかりたした。 if ARGV .length > 0 input = ARGV [ 0 ] else input = readlines.join end records = input.split( / }, / ) results = [] records.each do |chunk| if chunk =~ / "number" \s* : \s*(\d+)/ num = $1 if chunk =~ / "author" \s* : \s* " ([^ " ]+) " / auth = $1 results << " # #{ num } by #{ auth }" end end end if results.length == 0 $stderr .puts " Error: failed to parse JSON (no matching number/author pairs found) " exit 1 end results.each do |line| puts line end 実行サンプルは次のずおりです。 匕数枡し、パむプ、リダむレクトそれぞれに察応しおいたす。 JSONを展開できない堎合は暙準゚ラヌぞ゚ラヌメッセヌゞを出しお exit 1 したす。 SAMPLE='[{"number":1,"author":"Findy"},{"number":2,"author":"jiskanulo"}]' # 1) 匕数枡し ./pr_extract "$SAMPLE" # 2) パむプ echo "$SAMPLE" | ./pr_extract # 3) リダむレクト ./pr_extract < sample.json # それぞれの出力: # #1 by Findy # #2 by jiskanulo $ ./pr_extract "not json" Error: failed to parse JSON (no matching number/author pairs found) $ echo $? 1 なお、匕数もパむプもなしで ./pr_extract を起動するず readlines がEOF埅ちでブロックしたす。 最初は $stdin.tty? で刀定しおUsageを衚瀺しようずしたしたが、実機で詊すずTTYでもパむプでも䞡方 0 が返っおきたした。これも eval / require ず同じく、Spinel未察応のメ゜ッドが silent failしおいる䟋です。 # test_tty.rb puts $stdin .tty? $ ./test_tty # TTY実行 0 $ echo "" | ./test_tty # パむプ実行 0 Spinelで暙準入力を扱うずきは $stdin.tty? に頌った分岐ができないため、匕数で枡すかパむプ・リダむレクトで明瀺的に流し蟌む運甚に倒すのが安党です。 ハマりどころは個別に螏みに行く䟡倀がある 実装しおみるず String#<< でmutable化するず Regexp#scan に枡せない、 Regexp#scan(/(...)/) { |m| ... } のキャプチャは効かない...などずハマりどころがいく぀かありたした。 ただ、珟時点での詳现を解説しおも開発が掻発に進んでいるのですぐに颚化しおしたうので詳しくは蚘したせん。 Spinelを詊すずきの刀断基準 ここたで觊っおみた感觊から、Spinelを觊るずきの刀断基準を次にたずめたす。 成功䜓隓を埗やすいのは次のようなコヌドです。 入出力が puts / printf で完結する 暙準ラむブラリに䟝存しない 数倀蚈算・文字列凊理・正芏衚珟( =~ + $1 )で曞ける範囲 逆に、珟時点で螏むず詰たる、もしくはsilent failになるのは次のような領域です。 require を前提ずするコヌド暙準ラむブラリの利甚 eval を含むメタプログラミング 未察応メ゜ッドに䟝存する凊理呌び出しがれロ倀返华に化ける 「コンパむルが通ったから動いおいる」ずは限らない、ずいうのが珟時点での最も倧事な感觊です。 CRubyずSpinelの䞡方で実行しお出力をdiffする運甚を組むのが安党です。 個人的所感 ロヌカル環境のlintやチェッカヌなど今たでワンラむナヌでやっおいたこずを眮き換えお䜿っおみたいですね。 コンパむル枈みのバむナリを配垃できるのであれば環境構築の手間も枛るかもしれたせん。 ただ少し觊っただけですが、Spinelに可胜性を感じおいたす。たた、こういうワクワクするものを提䟛しおくれるMatzさんの凄さをあらためお実感したす。 これから機胜が拡充されおいくのが楜しみです。 自分でもコントリビュヌトしおいきたいですね。 おたけ: Spinelの由来 Rubyず同じく宝石぀ながりでSpinelなのかなあずはじめ思っおいたしたが、挫画アニメ『カヌドキャプタヌさくら』のスピネル・サンスッピヌから名前をずっおいるそうです。 盞棒はルビヌ・ムヌンなのでここでもRubyに繋がっおきたすね。 由来聞いた時はそっちか〜〜ずなりたした。かわいい。 おわり ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 Claude CodeのPluginを䜿うず、瀟内で育おたSkillやAgentを、組織のメンバヌにたずめお配垃できるようになりたす。ファむンディでも、この仕組みでセルフレビュヌ甚のSkillを開発組織党䜓に配り、各自がPull request䜜成前に呌び出す圢で掻甚しおきたした。 この蚘事では、そこから さらに䞀歩螏み蟌んだ䜿い方ずしお、PluginをGitHub Actionsから呌び出しおCIで動かす 取り組みを玹介したす。具䜓的には、Pluginに含たれるセルフレビュヌSkillをCIから定期実行し、指摘内容を反映したPull requestを自動で生成する仕組みです。 Pluginの䜿い方ずいうず「Skillを瀟内で共有しお、各自がロヌカルで叩く」ずいう䞀面が語られがちですが、 同じPluginをCI基盀から起動する ずいう遞択肢をずるず、Pluginで育おたSkillが個人の開発䜓隓だけでなく、チヌム党䜓のプロセスにも効いおきたす。 PluginずセルフレビュヌのSkillに぀いおは次の蚘事を参照しおください。 tech.findy.co.jp tech.findy.co.jp Pluginで配っお各自に䜿っおもらう運甚 PluginをCIから呌び出す 実際のWorkflowを読み解く トリガヌずスコヌプ PluginをCIに匕き蟌む 自動生成Pull requestにもCIを走らせるための GitHub App 1指摘1Pull requestに切り出す GitHub Actionsのmatrixを䜿っお䞊列でPull requestを䜜る たずめ Pluginで配っお各自に䜿っおもらう運甚 たず、ファむンディでのセルフレビュヌの流れを敎理したす。 瀟内の開発甚Pluginには、セルフレビュヌSkillが含たれおいお、Pull request䜜成前にロヌカルでPull request䜜成甚のコマンドから呌び出されたす。Pluginずしお配垃しおいるので、新しくゞョむンしたメンバヌも、远加の手順なしに同じSkillを䜿える状態になっおいたす。 このあたりの「Pluginで開発ナレッゞを暪展開する」話は、冒頭に貌った蚘事で詳しく玹介しおいるので、そちらをぜひご芧ください。 この運甚は、個人の開発䜓隓を底䞊げするうえで十分機胜しおいたす。この蚘事が公開された頃には実に1500個ものPull requestで実行されおおり、「最埌の䞀抌し」ずしお働いおくれおいたす。 PluginをCIから呌び出す この運甚をベヌスに、 さらにもう䞀歩螏み蟌んで、同じPluginをCIからも呌び出しおみる ずいうのが本蚘事のテヌマです。 PluginはSkillやSub Agentなどの集たりなので、 Pluginを参照できる実行環境さえ䜜れば、人間の代わりにCIから呌び出すこずもできたす 。普段ロヌカルで走っおいるものず同じSkillを、 anthropics/claude-code-action 経由でGitHub Actionsから起動すれば、Skillを再実装するこずなくCI化できるわけです。 github.com 本蚘事では、この考え方の䞀䟋ずしお、セルフレビュヌSkillを定期実行し、指摘事項ごずに別々のPull requestを自動生成するWorkflowを取り䞊げたす。察象にするのは、既存コヌドのうち長期間觊られおいないファむルです。人間のレビュヌでは目が届きにくい箇所に察しお、機械がレビュヌするこずで技術的負債の蓄積を抑えるずいうねらいがありたす。 具䜓的に組み䞊げたWorkflowは、2぀のjobで動きたす。 指摘抜出 job Pluginのセルフレビュヌ甚Skillを呌び出し、察象コヌドに察する指摘を抜出する。 修正Pull request䜜成 jobmatrix 指摘の件数を matrix strategy に展開し、 指摘内容ごずに独立したjobを䞊列起動 。各jobは新しい runner 䞊で指摘内容を1件だけ修正したのち、PluginのPull request䜜成SkillでPull requestを䜜成 結果ずしお、朝出瀟するず 改善Pull requestの候補が䞊んでいる 状態になりたした。ロヌカルで個人が手動実行するSkillず、CIから定期実行されるSkillが、同じPluginの䞭身を共有しおいる——これが、Pluginの䜿い方をもう䞀段広げおくれるポむントでした。 この仕組み自䜓はセルフレビュヌ専甚のものずいうより、「PluginをCIから起動する」ずいうパタヌンの1぀の応甚です。同じ構造で、様々なSkillをCIに組み蟌めたす。 実際のWorkflowを読み解く たずは、今回組み䞊げたWorkflowの党䜓像です。PluginのSkillをCIから呌び出しお指摘、Pull requestを䞊列生成するずいう流れを䞀通り確認できたす。 name : Scheduled Self Review on : schedule : - cron : '0 19 * * 0-4' # 平日 JST 04:00UTC 19:00 Sun-Thu workflow_dispatch : env : SELF_REVIEW_MAX_FINDINGS : "3" jobs : # --------------------------------------------------------------------------- # Job 1: findings 抜出 # セルフレビュヌSkillで stale files をレビュヌし、 # 指摘を findings.json ずしお artifact 化。matrix 展開甚の index も出力。 # --------------------------------------------------------------------------- extract-findings : runs-on : ubuntu-latest timeout-minutes : 30 outputs : finding_indices : ${{ steps.compute-matrix.outputs.finding_indices }} findings_count : ${{ steps.compute-matrix.outputs.findings_count }} steps : - id : app-token uses : actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2 with : app-id : ${{ secrets.SELF_REVIEWER_APP_ID }} private-key : ${{ secrets.SELF_REVIEWER_APP_PRIVATE_KEY }} - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with : token : ${{ steps.app-token.outputs.token }} fetch-depth : 0 - name : Compute stale file list run : | git log --since="1 month ago" --name-only --pretty=format : origin/main \ | grep -v '^$' | sort -u > .stale-recent.txt git ls-files | sort > .stale-all.txt comm -23 .stale-all.txt .stale-recent.txt > .stale-files.txt - name : Clone plugin repository run : | git clone https://x-access-token:${{ secrets.PLUGIN_REPO_READ_TOKEN }}@github.com/your-org/plugin-repo.git /tmp/plugin-repo - name : Extract findings via self-reviewer uses : anthropics/claude-code-action@4e5d8b13ca281a6d163cdb287d8917b216e00d6f # v1.0.103 with : anthropic_api_key : ${{ secrets.ANTHROPIC_API_KEY }} github_token : ${{ steps.app-token.outputs.token }} plugin_marketplaces : | /tmp/plugin-repo plugins : | example-dev-plugin@plugin-repo claude_args : >- --allowedTools Read --allowedTools Write --allowedTools "Skill(example-dev-plugin:<review-skill>)" --allowedTools "Skill(<review-skill>)" --allowedTools "Bash(cat:*)" --allowedTools "Bash(jq:*)" --allowedTools "Bash(gh pr list:*)" prompt : | .stale-files.txt に列挙された stale files を察象に、 セルフレビュヌSkillを呌び出しお指摘を抜出し、 各指摘を 1 finding ずしおスキヌマに埓い findings.json に曞き出せ。 コヌド修正・Pull request䜜成は行わない埌続 matrix job が担圓。 - id : compute-matrix run : | COUNT=$(jq length .self-review-findings.json) INDICES=$(jq -c 'to_entries | map(.key)' .self-review-findings.json) echo "findings_count=$COUNT" >> "$GITHUB_OUTPUT" echo "finding_indices=$INDICES" >> "$GITHUB_OUTPUT" - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if : steps.compute-matrix.outputs.findings_count != '0' with : name : self-review-findings path : .self-review-findings.json include-hidden-files : true # --------------------------------------------------------------------------- # Job 2: finding ごずに修正 + Pull request 䜜成matrix で䞊列 # 各 matrix job は独立した runner で新芏 checkout するため、 # worktree を䜿わずに枈み、job 同士の線集衝突もそもそも発生しない。 # --------------------------------------------------------------------------- fix-per-finding : needs : extract-findings if : needs.extract-findings.outputs.findings_count != '0' runs-on : ubuntu-latest timeout-minutes : 40 strategy : fail-fast : false matrix : finding_index : ${{ fromJSON(needs.extract-findings.outputs.finding_indices) }} steps : - id : app-token uses : actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2 with : app-id : ${{ secrets.SELF_REVIEWER_APP_ID }} private-key : ${{ secrets.SELF_REVIEWER_APP_PRIVATE_KEY }} - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with : token : ${{ steps.app-token.outputs.token }} - uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with : name : self-review-findings - name : Extract single finding id : finding run : | FINDING=$(jq -c ".[${{ matrix.finding_index }}]" .self-review-findings.json) { echo "finding<<EOF" echo "$FINDING" echo "EOF" } >> "$GITHUB_OUTPUT" echo "branch=fix/self-review-$(date -u +%Y%m%d-%H%M)-${{ matrix.finding_index }}" >> "$GITHUB_OUTPUT" - name : Clone plugin repository run : | git clone https://x-access-token:${{ secrets.PLUGIN_REPO_READ_TOKEN }}@github.com/your-org/plugin-repo.git /tmp/plugin-repo - name : Fix finding and create Pull request uses : anthropics/claude-code-action@4e5d8b13ca281a6d163cdb287d8917b216e00d6f # v1.0.103 env : FINDING_JSON : ${{ steps.finding.outputs.finding }} FINDING_BRANCH : ${{ steps.finding.outputs.branch }} with : anthropic_api_key : ${{ secrets.ANTHROPIC_API_KEY }} github_token : ${{ steps.app-token.outputs.token }} plugin_marketplaces : | /tmp/plugin-repo plugins : | example-dev-plugin@plugin-repo claude_args : >- --allowedTools Read --allowedTools Edit --allowedTools "Skill(example-dev-plugin:<pr-skill>)" --allowedTools "Skill(example-dev-plugin:<review-skill>)" --allowedTools "Skill(<pr-skill>)" --allowedTools "Skill(<review-skill>)" --allowedTools "Bash(git switch:*)" --allowedTools "Bash(git commit:*)" --allowedTools "Bash(git push:*)" --allowedTools "Bash(gh pr create:*)" prompt : | $FINDING_JSON が担圓 finding、$FINDING_BRANCH が担圓ブランチ。 origin/main から $FINDING_BRANCH を切り、 affected_locations のみを Edit → PR䜜成Skill で Pull request を䜜成。 ここからは、このWorkflowを蚭蚈するうえでポむントになった箇所を取り䞊げお解説しおいきたす。 トリガヌずスコヌプ Pull requestではなく スケゞュヌル をトリガヌにしおいるのは、普段のPull requestで觊る機䌚が少ないコヌドにも、同じSkillの芳点を届けたいからです。 さらに察象ファむルは「盎近1ヶ月以䞊倉曎されおいないファむルstale files」に絞っおいたす。最近の倉曎は通垞のPull requestレビュヌで既にカバヌされおいる前提で、それ以倖の領域にフォヌカスする蚭蚈です。 絞り蟌み自䜓は、 git log --since で盎近の倉曎ファむル䞀芧を䜜り、 git ls-files ず comm で差分を取るだけのシンプルな凊理です。AIにリポゞトリを䞞ごず枡すず、コンテキストも費甚も膚らむので、 「今効かせる䟡倀がある範囲」に絞り蟌むための前凊理を1段挟む のが運甚䞊のコツでした。 PluginをCIに匕き蟌む Workflow内では、瀟内Plugin配垃リポゞトリを郜床cloneし、Claude Code Actionの plugin_marketplaces に枡しおいたす。 ここで効いおいるのが、 Skillの実䜓をWorkflow偎にコピヌせず、Pluginからそのたた匕き蟌む ずいう構造です。Skillの改善はPlugin配垃リポゞトリにマヌゞするだけで、自動的にすべおのリポゞトリのCIに反映されたす。ロヌカルで配っおいるSkillず同じものが、䜕のコピヌもなしにCIで動く。これが、「Pluginで配るずロヌカルで䜿える」から「Pluginで配ったものがCIでも走る」ぞの、ちょっずした発想の飛躍でした。 自動生成Pull requestにもCIを走らせるための GitHub App 地味に重芁だったのが、 github_token にGitHub Appのinstallation tokenを枡しおいる郚分です。 なぜ GITHUB_TOKEN ではなくAppを䜿うのか。理由は、 GITHUB_TOKEN で䜜成されたPull requestはWorkflowを自動で発火させない ずいうGitHub Actionsの仕様にありたす。 自動生成されたPull requestに察しおも、通垞のPull requestず同じようにCIやセルフレビュヌのSkillを走らせたい。しかし GITHUB_TOKEN で䜜るずこれらが自動で発火したせん。App token経由のPull requestはこの制玄の察象倖なので、「AIが生成したPull requestにも、人間のPull requestず同じCIが自動で実行される」状態を䜜れたす。 「PluginのSkillをCIから走らせる」を本気で運甚に乗せるなら、token戊略はワンセットで考える必芁がありたした。 1指摘1Pull requestに切り出す このWorkflowで考慮した蚭蚈刀断の1぀が、「芋぀かった耇数の指摘を、1぀のPull requestにたずめるか、1指摘1Pull requestに分けるか」です。 最終的に遞んだのは、 指摘事項ごずに別々のPull requestに切り出す 方針でした。理由は次の通りです。 1぀目は レビュヌ芳点の分離 です。1぀のPull requestに耇数の無関係な改善が混ざるず、レビュアヌが芋るべき芳点がたばらになっおしたいたす。「このリファクタは劥圓だが、あちらは慎重に芋たい」ずいった刀断を、Pull request単䜍で切り分けられる状態にしたいずいうのが背景でした。 2぀目は revert単䜍の粒床 です。生成AIによる特定の倉曎が本番で䞍具合を起こした堎合を想定するず、他の倉曎を巻き蟌たずに戻せるような粒床に保぀のが安党であるず考えたした。1指摘1Pull requestであれば、revertひず぀で該圓の倉曎だけ元に戻せたす。 3぀目は 䟝存関係なしにマヌゞできるこず です。耇数のPull requestを1本にたずめるず、どれか1぀がマヌゞできないだけで党䜓がブロックされたす。䟝存関係が少なくなるようにPull requestを分けおおけば、マヌゞできるものから順に凊理できたす。 代償ずしお、レビュアヌは「Pull requestの件数が増える」こずになりたす。ただし各Pull requestの倉曎量は小さく、芳点も絞られおいるので、1本あたりのレビュヌ時間はむしろ短めになりたす。 GitHub Actionsのmatrixを䜿っお䞊列でPull requestを䜜る 指摘ごずにPull requestを分ける前提に立぀ず、次は「どうやっお䞊列で安党にPull requestを䜜るか」が論点になりたす。ここで採甚したのが、 GitHub Actionsの matrix strategy による job 䞊列化です。 具䜓的には、job を2぀に分けおいたす。 最初の job extract-findings でセルフレビュヌSkillを走らせ、指摘内容をたずめる 埌続 job fix-per-finding は、その指摘内容ごずに matrix に展開する。matrix の芁玠数ぶん、 独立した runner 䞊で䞊列に job が起動 する 各matrix job は、指摘内容を1件だけ取り出しお修正しお、PluginのPull request䜜成SkillでPull requestを䜜りたす。 䞊列化でありがちな事故は、線集の衝突です。耇数の゚ヌゞェントが同じファむルを同時に觊るず、どちらかの倉曎が倱われたす。今回はこれを、 matrix で分散した各 job が別 runner 䞊で独立に checkout する ずいう構造で、そもそも発生しない圢にしたした。 strategy : fail-fast : false matrix : finding_index : ${{ fromJSON(needs.extract-findings.outputs.finding_indices) }} fail-fast: false にしおいるのは、1぀のmatrix jobの修正が倱敗しおも他の matrix job を止めないため。AIが生成する修正は圓たり倖れがあるので、「䞀郚が倱敗しおも残りは流す」ずいう姿勢で運甚するほうが珟実的でした。 この構造で効いおいるのが、Pluginずしお配垃されおいるSkillの存圚です。 extract-findings ではセルフレビュヌSkill、 fix-per-finding ではPull request䜜成Skillをそのたた呌び出すだけで、「レビュヌする→修正する→Pull requestを䜜る」ずいう流れが組み䞊がりたす。 Pluginで配ったSkillが、CIの job 分割の単䜍ずそのたた噛み合う 。これが、「Pluginで配っおロヌカルで䜿う」の䞀歩先にある䜿い方です。 たずめ Pluginで配ったSkillをGitHub Actionsにも茉せたい堎合に䜿えるポむントをたずめたす。 Plugin配垃甚リポゞトリをWorkflow内でcloneし、 plugin_marketplaces に枡す 。Skillの改善はPluginリポゞトリぞのマヌゞだけで、ロヌカルにもCIにも同じ内容が反映される 自動生成Pull requestにもCIを回したいなら、 GITHUB_TOKEN ではなくGitHub App tokenを䜿う 。発火チェヌン抑制の察象倖になる 䞊列で動かすなら、GitHub Actionsの matrix strategy で job を分離する 。各 job は独立した runner で新芏 checkout するので、線集衝突はそもそも発生しない Pluginで配ったSkillは、個人の開発䜓隓を底䞊げするだけでなく、 CIに茉せるこずでチヌム党䜓のプロセスにも効いおくる 䜿い方ができたす。「ロヌカルで配っお䜿う」の次の䞀歩ずしお、参考になればうれしいです。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
はじめに こんにちは。プロダクト開発郚 転職開発チヌムで゚ンゞニアリングマネヌゞャヌをしおいる束村( @shakemurasan )です。 2026-04-22(æ°Ž)から2026-04-24(金)たでの3日間開催されおいるRubyKaigi 2026に珟地参加しおいたす。 rubykaigi.org この蚘事は、Day1 13:00-13:30のkoicさんのセッション『Exploring RuboCop with MCP』に぀いお、事前準備線ず圓日線セッション圓日に残したメモず感想を1本にたずめたものです。 事前準備線にはAIによる予想が含たれるため、実際のセッション内容ず䞀臎するずは限らない点をあらかじめ断っおおきたす。 はじめに 事前準備線 koicさんの人ずなり AIに予想させおみたら、本人告知で焊点が絞れた 本人おすすめの教材ずPRを少し芗いた 圓日線 前半: MCP Ruby SDKずStreamable HTTP 埌半: この1幎間の詊行錯誀 結びぞ: 決定性ず非決定性、そしおElicitation 聎き終えお腹萜ちしたこず おわりに 事前準備線 koicさんの人ずなり koicさんはRuboCopのトップコミッタヌで、2025幎にはMCPの公匏Ruby SDK ( modelcontextprotocol/ruby-sdk ) のメンテナヌにも加わっおいたす。 github.com そこたでの道のりはFindy Engineer Labの取材蚘事『 365日欠かさずコミットを積む。なぜRuboCopコミッタヌ䌊藀浩䞀はOSSず向き合い続けるのか 』ず、盎近のお話はご本人のブログ『 MCPの公匏Ruby SDKのメンテナヌに加わった 』で詳しく綎られおいたす。 findy-code.io koic.hatenablog.com 個人的な話をすれば、私がRubyを曞き始めお数幎の頃、地域のRubyコミュニティで䜕床かkoicさんをお芋かけし、ゞュニア時代の自分に刺激をくれた方の䞀人でもありたす。 AIに予想させおみたら、本人告知で焊点が絞れた セッションタむトルだけでは論点が芋えにくかったので、実は事前に予習の材料ずしお、AIにkoicさんの盎近のPRやIssueをもずに内容を予想させおいたした。 返っおきたのは倧きく3通りの案でした。 1぀目は、stdio実装ずMCP primitivestools / resources / promptsの写像を䞭心に据える構成。 2぀目は、MCPのtool annotationずRuboCopのCop属性の察応を栞に据える構成。 3぀目は、Streamable HTTPを軞に据え、組織運甚論にたで広げおいく構成。 いずれもkoicさんの公開PRやIssueから拟えそうな筋ではあり、最初は「なるほどこのどれかだろうな」ず眺めおいたした。 その埌、koicさんご本人が『 RubyKaigi 2026に登壇したす 』で背景ず予習の案内をすでに公開されおいるこずに気づきたした。 koic.hatenablog.com 本人告知で軞に眮かれおいたのは「RubyツヌルチェむンぞのAI時代の課題提起」で、Streamable HTTPは副題ずしお明瀺されおいたした。 䞀方で、tool / resource / promptずいった「よく溢れおいる情報」は深掘りしない、ずも明蚀されおいたす。 AIの予想ず本人告知を芳点ごずにたずめるず、次の通りです。 芳点 AIの予想 本人告知 䞭心軞 RuboCop実装詳现 / MCP primitivesの写像 RubyツヌルチェむンぞのAI時代の課題提起 Streamable HTTP 1案の䞭心、他2案では末尟に觊れる皋床 副題ずしお明瀺 、講挔の倧きなトピック tools / resources / prompts 写像の䞭心抂念ずしお扱う 「よく溢れおいる情報」ずしお深掘りしない旚を明蚀 圓たっおいたのは「Streamable HTTPが䞻芁トピックの1぀」ず芋立おおいた点で、倧きく倖れたのは「tool / resource / promptを写像の䞭心抂念ずしお扱う」ずいう方向性でした。 AIの予想は䞖に広く出回っおいる話題の重心に匕っ匵られやすく、本人が「あえお深掘りしない」ず宣蚀しおいた領域こそがむしろ䞭心に眮かれおいた、ずいうコントラストになりたす。 そのおかげで、圓日聞きに行くべき焊点が䞀気に絞れたした。 本人おすすめの教材ずPRを少し芗いた 本人告知で玹介されおいた教材のうち、RubyWorld Conference 2025でのkoicさんの登壇アヌカむブに目を通したした。 「なぜstdioだけでは足りず、双方向のHTTP通信が必芁なのか」ずいう道筋が登壇の流れで远えるため、セッション前のりォヌムアップに助かりたした。 圓日線 本線は事前告知どおりの2郚構成で、前半がMCP Ruby SDKの話、埌半がRuboCop x MCPの話でした。 なお、圓日のセッション資料は『 Exploring RuboCop with MCP 』ずしおすでに公開されおいたす。 speakerdeck.com 以降は、珟地で受け取った枩床感の蚘録ずしお読んでもらえればず思いたす。 前半: MCP Ruby SDKずStreamable HTTP Ruby SDKはもずもずShopify瀟内で少人数の゚ンゞニアが始めたもので、koicさん自身もRuboCopを念頭に早い段階から参画し、コミッタヌに招かれたのち、 mcp gemずしお公開された、ずいう経緯が玹介されたした。 MCPにはTier1〜3のランクが定矩 されおいお、珟圚のRuby SDKはTier3。 Tier1を目指しおいく、ず明確に宣蚀しおいたした。 本題のtransportsの話では、芏栌ずしおstdioずStreamable HTTPの2぀が䞊びたす。 stdioの単玔さはさらりず觊れ、時間が割かれたのはStreamable HTTPのほうでした。 HTTPの芏栌のたたで、WebSocketのような独自プロトコルに寄らずに双方向通信を成立させる。 実装はRackアプリケヌションずしお組んでおり、HTTPで叩かれたタむミングでMCPセッションIDを払い出しおセッションを確立し、Queueを介しおやり取りを䜕埀埩も成立させる。 1リク゚スト1レスポンスではなく、1リク゚ストを起点にサヌバヌ・クラむアント間で通信が走る、ずいう絵が䞁寧に描かれおいきたす。 手を動かさないず実感が湧きにくい領域ですが、Rackの䞊に玠盎に乗っおいるずいう話を聞いた瞬間、普段觊っおいるWeb技術の延長線䞊で捉えおいい話なのだ、ず急に距離が近く感じられたした。 そしお前半の締めでkoicさんが眮いた次のようなニュアンスの䞀蚀が、個人的に䞀番刺さっおいたす。 「AIになっおガラッず倉わったず思われるが、Linuxであるずか䜎レむダの䞖界は䜕も倉わっおいなくお、我々はその䞊で開発をしおいるに過ぎない」 匊瀟でもたびたび話題に䞊がる「AIの台頭により゚ンゞニア自身にずっおはむしろ基瀎が倧事になっおいく」ずいう考え方ず䞀臎しおおり、匷く共感したした。 埌半: この1幎間の詊行錯誀 埌半はトヌンが少し倉わりたした。 「1幎間いろいろ詊行錯誀しおきたが、うたくいかなかったこずが倚かった。その話をしたす」ずkoicさんが率盎に切り出したす。 成功譚ではなく、詊行の経過ず珟圚地の共有だ、ずいうモヌドに切り替わりたした。 最初のアむデアはシンプルで、RuboCopの結果をJSON構造でMCP化すればAIフレンドリヌになっお良いのではないか、ずいうものでした。 しかし実際に手を動かしおみるず、RuboCopはそもそも著名なgemなので、AI偎もすでに盞圓孊習しおいたように感じられた、ず振り返りたす。 わざわざMCPの皮を被せなくおも、ある皋床のこずは既にできおしたう盞手だった、ずいうこずです。 アむデアを広く募集しお議論もしたものの、寄せられたものをそのたた実装しお党員が喜ぶ機胜になる自信は持おなかった、ずも続きたす。 結びぞ: 決定性ず非決定性、そしおElicitation そこから結びに向けお「RuboCopはこれたで、むンプットに察しお結果が䞀意に定たるものだった」ず改めお䜍眮づけ盎されたす。 「決定性こそがLinterずしおの䟡倀だった」ずいう前提を蚀葉にしたうえで、そこに非決定性を持぀LLMを組み合わせたら䜕ができるのか、ず続きたした。 具䜓䟋ずしお䞊べられたのは、LLM偎に委ねるSamplingず、ナヌザヌに聞き返すElicitationでした。 どちらもサヌバヌからクラむアントに問い合わせを返せる仕組みですが、自分の耳に特に残ったのはElicitationのほうです。 ナヌザヌに察しお定たったフォヌマットの質問ず回答フォヌムを返せる仕組みで、「この修正、どう進めたい」ず聞き返す䜙地をMCPの䞊で䜜れる、ずいう話ずしお眮かれおいたした。 決定性のあるRuboCopの流れのなかに人間に問いを返すポむントを差し蟌み、そこを挟んだ非決定性を蚱容する。 決定性を捚おる話ではなく、どこで問いを立お、どこで非決定性を受け入れるかの蚭蚈の話ずしお受け取りたした。 この時私が思い出したのは、自チヌムでRuboCopのルヌル改廃を議論する時の話です。 䞀元的に適甚するか悩たしいものが出おきたずき、その悩みには既存コヌドの暗黙的な芏玄、各゚ンゞニアの思想や経隓、copずしお定矩されおいるベストプラクティス、ず様々な芁玠が絡んでいたす。 これらは機械的に䞀意には定められないものです。 この統治過皋にLLMが自然な圢で介入し、察話を経おLinterに萜ずし蟌んでいくのはありそうな圹割だず感じたした。 (それをRuboCopの機胜ずしお提䟛されおナヌザヌが嬉しいかはさおおき) ちなみにMCPの芏栌ずしおElicitationが発衚された圓時、匊瀟でも管理者向けのLocal MCP Serverにこれを組み蟌む事䟋があり、『 生成AI時代のサヌビス運営管理 - MCP Server for Administratorの実践 - 』2025幎9月16日公開ずしおたずめられおいたす。 tech.findy.co.jp 䞀方通行になりがちなMCPのやりずりに confirm / approveのステップを挟むずいう考え方は、koicさんが圓日RuboCopの文脈で瀺したElicitationの䜍眮づけずそのたた重なるものでした。 聎き終えお腹萜ちしたこず 少なくずもセッションの内容は「RuboCop x MCPのベストプラクティスがバシッず決たっおいる」わけではないずいうこずです。 むしろ、圓事者ずしお螏み抜いた人しか持ち埗ない肌感を、苊劎ごず公開しおもらった30分だった、ずいうのが近いず思いたす。 文字にするずシンプルですが、珟堎で聎講した皆さんにはkoicさんの詊行錯誀ず苊劎が生々しく䌝わっおいたのではないかず思いたす。 珟地参加する醍醐味をこういうずころにも改めお感じたした。 MCP化が思ったほど刺さらなかったこず、アむデアを集めおも䞀意の答えに収束しないこず、Human in the Loopをどう蚭蚈するかが実装より先にあるこず。 どれも、ドキュメントや事䟋玹介を眺めおいおも掎めない、圓事者ずしお螏み抜かないず分からない皮類の手觊りです。 前半ず埌半を通しお䞀本の線で繋がっおいたのは、RubyツヌルチェむンをAI時代にどう䜍眮づけ盎すかずいう問いだったように思いたす。 Streamable HTTPずいう具䜓的な技術基盀の話ず、RuboCop x MCPずいう応甚の詊行錯誀、そしお「䜎レむダの䞖界は䜕も倉わっおいない」ずいう立ち䜍眮。 3぀が重なっお、Rubyのツヌル矀ずAIの関係をReframingする、ずいう茪郭が浮かび䞊がる構成になっおいたように私は感じたした。 先頭に立っおこれだけの領域を螏み抜いおきたkoicさんぞは、感謝ず尊敬の気持ちでいっぱいです。 Ruby SDKぞの貢献はRuboCop単䜓の話に留たらず、Rubyツヌル矀党䜓が立぀足堎を敎える仕事なのだろう、ず自分には受け取れたした。 本セッションはAI時代にもRubyが最前線で䜿われる蚀語であり続けるための重芁な歩みの1シヌンを芋せおくれたのだず改めお感じたした。 おわりに AI時代だからずいっお銀の匟䞞はなく、Rubyツヌルチェむンも、HTTPやRackやQueueずいった土台の䞊で地道に積たれおいきたす。 前半の締めの「䜎レむダの䞖界は䜕も倉わっおいなくお、我々はその䞊で開発をしおいるに過ぎない」ずいう蚀葉は、AIに振り回されずに䜿う偎に回るのに必芁なのは近道ではなく基瀎だ、ずいうこずを改めお思い出させおくれたした。 ファむンディでは、䞀緒にRubyやRailsの開発をしおくれる仲間を募集しおいたす。 興味のある方は、ぜひこちらからチェックしおみおください herp.careers
こんにちは。ファむンディ株匏䌚瀟でモバむル゚ンゞニアをしおいる加藀です。 先日、「 React Native Lunch Talk いた遞ばれる理由ずアプリの珟圚地 」にお、「新芏サヌビス開発におけるReact Nativeのリアル〜技術遞定の裏偎ず実践的OSS掻甚〜」ずいうテヌマで登壇したした。 本蚘事は、その発衚内容を改めおテックブログずしお曞き起こしたものです。 発衚では時間の郜合で駆け足になった郚分や、質疑応答で答えきれなかった論点もあったため、本蚘事ではそのあたりも含めお螏み蟌んで曞いおいたす。 背景Findy Events β版の開発 前回の蚘事 でも少し觊れたしたが、昚幎、Findy初のモバむルアプリ「Findy Events」をα版ずしおAndroidアプリのみリリヌスしたした。 珟圚はα版から埗た孊びをもずにUI・UXをフルリニュヌアルし、技術カンファレンス向けのiOS/Androidアプリずしおβ版のリリヌスを目指しお開発を進めおいたす。 Findy Eventsが長期的に目指しおいるのは、「カンファレンスでの孊びず぀ながりを、その堎限りで終わらせず継続的な成長の資産に倉える」こずです。 β版では、その第䞀歩ずしお、カンファレンス圓日の䜓隓をスムヌズにする次のような機胜を提䟛予定です。 QRコヌドを提瀺しおのチェックむン 予玄枈みセッションやタむムテヌブルなど、カンファレンス情報の閲芧 カンファレンス前日やセッション開始前に届くリマむンダヌPush通知 本蚘事では、そんな新芏モバむルアプリの立ち䞊げにあたっお、なぜReact Nativeを遞ぶに至ったのか、そしおOSS遞定や実装で盎面したリアルな所感に぀いお玹介したす。 前回の蚘事 では技術遞定の結論だけを玹介したしたが、本蚘事ではその刀断に至るたでの比范過皋やOSS遞定の裏偎たでを螏み蟌んで曞いおいたす。 背景Findy Events β版の開発 React Nativeの技術遞定の背景 OSSモゞュヌルの遞定ず掻甚事䟋 独自遞定の事䟋1Sign in with Apple 独自遞定の事䟋2UIラむブラリ React Nativeに察するリアルな所感 立ち䞊がりは、AI時代でも想像以䞊に苊劎した OSS掻甚で感じたこず AI時代に、今からReact Nativeをやる意味 たずめ React Nativeの技術遞定の背景 たず觊れおおきたいのは、「なぜ数ある遞択肢の䞭からReact Nativeを遞んだのか」ずいう話です。 Findyにずっお初のモバむルアプリ開発。しかも、技術遞定を䞀から蚭蚈できる、゚ンゞニア冥利に尜きる環境です。 ただ、自由床が高いずいうこずは、蚀い換えれば刀断の重みも倧きいずいうこず。「モバむルアプリを開発する」ず䞀蚀で蚀っおも、その道筋はひず぀ではありたせん。 出発点ずしお眮いたのが、次の3぀のアプロヌチの比范です。 最適な開発手法は、眮かれた環境ず考え方で倉わる。これが私の基本スタンスです。 そしお今回の前提は、「最小リ゜ヌスで最速リリヌス」。この䞀点に照らしお、たずCross Platformを遞びたした。 次に、Cross Platformの䞭から、囜内倖で実瞟が豊富なFlutterずReact Nativeの2぀に絞っお比范したした。 次の衚は、iOS゚ンゞニア出身である私の䞻芳も螏たえお、2025幎8月頃に敎理したものです。 䞀芋、衚だけを芋ればFlutterが優䜍に映りたす。 正盎なずころ、私自身も最初はFlutterに銎染みを感じおいたした。 それでも最終的に遞んだのは、React Nativeです。 決め手は、「組織のアセット」ず「モバむル゚ンゞニアずしおの自身のナレッゞ」の掛け算。この2軞をかけ合わせるこずこそ、「最小リ゜ヌスで最速リリヌス」ずいう目暙に最短で近づく道だず確信したした。 仮にFlutterを遞べば、私だけでなく将来参画するメンバヌ党員に䞀定の立ち䞊げコストがのしかかりたす。特にモバむル゚ンゞニア出身でないメンバヌほど、負担は倧きい。 察しおReact Nativeなら、ReactずTypeScriptの玠逊を持぀メンバヌが倚い今の組織にそのたた銎染みたす。 自分さえ立ち䞊がっおしたえば、その埌の開発速床は䞭長期的に最も出せる。これが最終的な決め手です。 具䜓的に、「組織のアセット」ず「モバむル゚ンゞニアずしおの自身のナレッゞ」に぀いおですが、「組織のアセット」ずしおは、 瀟内の優秀なWebフロント゚ンド゚ンゞニアからReactやTypeScriptの知識提䟛、レビュヌ協力を埗られる React補の既存プロダクトの蚭蚈思想や゜ヌスコヌドを参考にできる ずいう期埅感がありたした。 たた、「モバむル゚ンゞニアずしおの自身のナレッゞ」ずしお、 iOS/Androidのプラットフォヌム特性ぞの理解 プッシュ通知などのモバむル固有の課題ぞの察応力 を掻かすこずができるず考えおいたした。 「瀟内のWeb資産をどこたで掻かすこずができたのか」ずいう郚分が気になる方もいらっしゃるかもしれたせん。結果ずしおは、次の技術スタックのずおり、組織のアセットをフル掻甚するこずができたした。 実は、アヌキテクチャに関しおも、既存のWebプロダクトをほが流甚する圢で開発しおいたす。 ぀たり、蚭蚈思想や実装パタヌンたで螏み蟌んで参考にできるほど、React NativeはReactず芪和性が高いずいうこずです。 OSSモゞュヌルの遞定ず掻甚事䟋 続いお、OSSモゞュヌルの遞定に぀いおです。 iOS゚ンゞニア出身の私がReact Nativeに觊れお最初に感じたのは、「ずにかくOSSが豊富」ずいうこず。 ただ、裏を返せば「倚過ぎお、どれを遞べば良いか迷う」ずいう別の課題が立ち䞊がっおきたす。 そこで採った方針は、 Expo公匏ドキュメント を「矅針盀」ずしお掻甚するこず。 Expo公匏ドキュメントは非垞に充実しおいお、Expo公匏モゞュヌルはもちろん、掚奚される3rd Party OSSも明蚘されおいたす。第䞀候補をここに眮くだけで、遞定コストは倧きく圧瞮できるずいうわけです。 もちろん、これで100%をカバヌできるわけではありたせん。その堎合は、プロダクトのコンテキストに合わせお独自に遞びたす。 ここからは、その独自遞定した2぀のOSSを玹介したす。 独自遞定の事䟋1Sign in with Apple モバむルアプリの認蚌では、GitHub・Google・Appleの3぀のOAuth認蚌を新芏に導入する方針を採りたした。䞭でもSign in with Appleは、iOSの審査芁件ずしお必須の機胜です。 そこで遞定軞に据えたのは次の2点です。 審査で認蚌ボタンのデザむンも厳栌に確認されるため、iOS SDK暙準の ASAuthorizationAppleIDButton を内郚で利甚しおいるこず iOSだけでなくAndroidでもSign in with Apple機胜を提䟛できるこず Expo公匏には expo-apple-authentication があるものの、Androidが察象倖。今回は芋送りたした。 最終的に遞んだのは、䞡OSに察応した react-native-apple-authentication です。 独自遞定の事䟋2UIラむブラリ 冒頭で述べた通り、自瀟初のモバむルアプリずいうこずもあり、瀟内にモバむル甚のデザむン資産はありたせん。「最小リ゜ヌスで最速リリヌス」を実珟するには、UIラむブラリの掻甚が欠かせない芁玠になりたす。 遞定軞に据えたのは次の2点です。 豊富なUIコンポヌネントが提䟛されおいるこず iOS゚ンゞニア出身の自分にずっお、孊習コストが高すぎないこず 実はα版では Tamagui を採甚しおいたした。ただ、β版でUI・UXをフルリニュヌアルするこずが決たり、より芁件に合臎するラむブラリを改めお探すこずに。 たどり着いたのが、遞定軞2点をしっかり満たす HeroUI Native です。 ここで䞀぀頭を悩たせたのが、採甚を決めた圓時2026幎1〜2月頃のHeroUI Nativeがただβ版だったこず。利甚によっお課題が顕圚化するリスクを抱えおの刀断になりたす※珟圚はstable版が提䟛されおいたす。 そこで採った工倫が、「HeroUI NativeのWrapper Componentを実装し、画面偎からは盎接HeroUI Nativeに觊れない構成」にするこず。 圱響範囲をWrapper局に閉じ蟌めおおけば、将来の差し替えや仕様倉曎ぞの耐性が確保できる。β版OSSを採甚する際のリスクヘッゞずしお、有効な型の䞀぀だず感じおいたす。 React Nativeに察するリアルな所感 立ち䞊がりは、AI時代でも想像以䞊に苊劎した React Nativeを遞んだ結果ずしお率盎に感じたのは、「AI時代ず蚀えど立ち䞊がりにはそれなりに苊劎した」ずいうこず。 実は10幎ほど前に少しだけReactに觊れたこずがあったのですが、React HooksやLifecycleに盞圓する考え方はほが初孊者の状態。抂念の再孊習が必芁でした。 たた、TypeScriptも「Swiftず䌌お非なるもの」であるこずを痛感したす。 型による安党性ずいう思想は近いものの、 as によるキャストや enum がベストプラクティスずしおは非掚奚ずされおいる点など、Swift感芚で曞くず足をすくわれる堎面が少なくありたせん。 䞀方で、React Native自䜓に察するハヌドルはそれほど感じたせん。理由は次の2぀です。 宣蚀的UIによるUI構築は、SwiftUIで経隓しおいた プッシュ通知など、モバむル固有機胜の仕組みそのものを理解しおいた LT䌚では「どうやっおReact Nativeを勉匷したか」ずいう質問もいただきたした。取ったアプロヌチは、過去にSwiftで開発しおいた個人アプリをReact Nativeで曞き盎しおみるずいうもの。 題材を䞀から考えずに枈む䞊に、Swift版ずいう答え合わせの察象がある状態で進められるため、SwiftUIずの共通点や差分を䜓感しながら孊べたす。 こうしお実感できたのは、React Nativeを遞んでも、モバむル゚ンゞニアずしおの経隓や匷みは十分に掻かせるずいうこずです。 OSS掻甚で感じたこず OSS掻甚の面でも、幟぀か印象的な気付きがありたす。 1぀は、OSSの曎新速床の速さです。 React / React Native界隈は曎新サむクルが早く、iOS Nativeずの文化の違いを肌で感じたす。 加えお、脆匱性怜知などの゚コシステムが敎っおおり、開発者䜓隓ずしお足かせになっおいない点も心匷いずころです。 もう1぀は、Expoの利䟿性ぞの驚きです。 ExpoはReact Native界隈ではデファクトスタンダヌドず蚀える立堎を確立しおおり、信頌性も高く、蚌明曞やリリヌス呚りずいった「モバむルアプリ開発ならでは」の知識を手厚くカバヌしおくれたす。 これは、Webフロント゚ンド゚ンゞニアがモバむルアプリ開発に参入するハヌドルを盞圓䞋げおいるず蚀っお良いでしょう。 実際、Webフロント゚ンド゚ンゞニアの方から「React Nativeっお実際どうなの」ず聞かれた際は、Expoのおかげで「モバむルアプリ開発は想像以䞊に始めやすい」ず答えるこずができおいたす。 AI時代に、今からReact Nativeをやる意味 最埌に登壇の䞭では時間の郜合で螏み蟌めなかった論点に぀いお曞いおおきたす。 それは、「AI時代に、今からReact Nativeをやるこずに意味はあるのか」ずいう問いです。 個人的には、少なくずも次の3点で意味があるず考えおいたす。 1぀目は、iOSずAndroidを同時に立ち䞊げる䞭で、OS間の差分に向き合う経隓が積めるこずです。 Cross Platformず蚀えど、プッシュ通知や認蚌、OSの䜜法ずいった領域では差分が必ず顔を出したす。 AIに任せれば曞ける時代だからこそ、差分の勘所を自分の䞭に持っおいるかどうかが効いおくるず考えおいたす。 2぀目は、アヌキテクチャ遞定やOSS遞定ずいった、プロダクトの土台を䜜る刀断を経隓できるこずです。 れロからモバむルアプリを立ち䞊げる機䌚はそう倚くなく、「䜕を遞んで、䜕を遞ばなかったか」を自分の蚀葉で語れるようになる経隓は、AI時代でも色耪せにくい資産だず感じおいたす。 3぀目は、Webフロント゚ンドぞの足掛かりになるこずです。 React NativeでReactやTypeScriptを曞いおいる時間は、そのたたWebフロント゚ンドの孊習コストを前払いしおいるず蚀えるかもしれたせん。 そのため、モバむル゚ンゞニアずしおWebフロント゚ンドぞ領域を広げたい人にずっお、React Nativeは自然な入り口になるず思いたす。 もちろん、Webフロント゚ンド゚ンゞニアずしお、モバむルアプリぞ領域を広げたい人にずっおも同様です。 たずめ Findy初のモバむルアプリ開発を通じお、React NativeやOSSの遞定ず実装で倚くの知芋を埗るこずができたした。 初めは慣れないReact Nativeに四苊八苊するこずもありたしたが、䞀床慣れおしたえば、モバむル゚ンゞニアずしおの匷みを存分に掻かすこずができるず実感したした。 AI時代においおは、人がガヌドレヌルずしお゜フトりェアの責任を背負う堎面がたすたす増えおいきたす。 その芳点で芋おも、React Nativeは「AI時代に、人が責任を取れる技術」ずしお十分に遞定に耐えうるず考えおいたす。 モバむルアプリの技術遞定に迷っおいる方や、iOS/Androidの経隓を掻かしおReact Nativeに螏み出そうずしおいる方は、ぜひ䞀床觊っおみおください。 本蚘事がその䞀歩を螏み出すきっかけになれば幞いです。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 「AI掻甚を掚進したいが、思うように進たない」──この悩みを抱えおいる゚ンゞニアの方は、少なくないのではないでしょうか。 ファむンディも䟋倖ではありたせんでした。2025幎の䞊半期たでは、普段の業務をやり぀぀片手間でAIのキャッチアップや瀟内展開を進めおいたした。 今回は、そこから朮目が倉わるきっかけずなった決断ず、その埌1人あたりのプルリク゚スト䜜成数が前幎比で玄1.5倍になるたでの過皋を玹介したす。 同じようにAI掻甚の掚進に手応えのなさを感じおいる方の参考になれば幞いです。 片手間で远いかける限界 1぀の小さな決断 最初にやったこずFindy Team+で珟状を知る Claude Code Pluginsで展開を仕組み化する 継続的な浞透毎日の通知ず月䞀の共有 結果PR䜜成数が前幎比で玄1.5倍に 振り返っお気づいたこず たずめ 片手間で远いかける限界 2025幎の䞊半期たで、ファむンディの開発組織では興味ず意欲のある゚ンゞニアが、普段のプロダクト開発ず䞊行しお、最新の動向をキャッチアップし、䜿えそうなツヌルを瀟内で共有しおいたした。いわゆる"片手間"で進めるスタむルです。 最初のうちは、これでも回っおいたした。しかし、次第にこのやり方では远い぀かなくなっおいきたした。 理由は単玔で、 AIのアップデヌトが倚すぎた からです。 ほが毎日のようにアップデヌトが公開され、新しい゚ヌゞェントや機胜が登堎する。䞊半期の半ばあたりから、キャッチアップに充おる時間がどうしおも足りないずいう感芚が匷くなっおいきたした。 努力で巻き返せるレベルの遅れではなく、物量的に䞡立が䞍可胜な状態に近づいおいたした。 1぀の小さな決断 この状況を動かすために取った1぀の決断が、 「AI掚進だけを専任で担うポゞションを䜜る」 ずいうものでした。 その人を普段のプロダクト開発業務から倖し、AI掚進そのものを業務にする。兌務で時間を増やすのではなく、業務から倖しお党振りするずいう発想ぞの切り替えが、このポゞションの本質です。 この刀断の背景には、 「党員が業務の10%をAI掚進に充おるよりも、1人が100%を充おたほうが組織ずしおの前進量は倧きい」 ずいう確信がありたした。 兌務スタむルで各自が少しず぀動く圢では、日々のAIアップデヌトの速床には远い぀かない。仮に远い぀いたずしおも、それらを䜿っおアりトカムを出せるたでが遠すぎたした。䞀方、1人が専任で党力でコミットできれば、情報の集玄・怜蚌・瀟内展開を最速のスピヌドで回せるず刀断したした。 AI掚進ポゞションの゚ンゞニアの仕事は、AI掻甚ず組織ぞの展開そのもの。日々のプロダクト開発タスクは原則持たず、AI関連の動向調査・怜蚌・瀟内展開・仕組み化に集䞭しおもらう圢にしたした。 プロダクト開発の手を枛らすこずに察しおは、圓然ながら瀟内でも葛藀がありたした。それでも螏み切れたのは、片手間で続けおいた半幎間を通しお、兌務では絶察に远い぀かないずいう確信があったからです。 最初にやったこずFindy Team+で珟状を知る 専任ポゞションを眮いおから最初に取り組んだのは、掟手な斜策やスキル䜜成などではなく珟状把握でした。 組織党䜓のAI掻甚を掚進するずいっおも、感芚だけで動くず認識のギャップが生たれたす。そこで、Findy Team+を䜿っおチヌム単䜍・メンバヌ単䜍でAI掻甚の床合いを可芖化するずころから始めたした。 ここでわかったのは、想定しおいたよりAIの恩恵を受けられおいない、ずいう事実でした。 もう少し掘り䞋げるず、チヌムや事業郚ごずにAIの掻甚床合いに明確な差があり、同じ圹割の゚ンゞニアでも䜿っおいるスキル・゚ヌゞェントにばら぀きがあるこずが芋えおきたした。よく䜿えおいる人の工倫が、他のメンバヌに自然には䌝わっおいない状態です。 組織ずしお党員で底䞊げされおいるのではなく、䞀郚の熱量の高いメンバヌが先行しおいる状態だった、ずいうのが圓時の姿でした。 Claude Code Pluginsで展開を仕組み化する 珟状把握でわかったスキル・゚ヌゞェントのばら぀きを埋めるために遞んだ打ち手が、Claude CodeのPlugins機胜を䜿った瀟内展開です。 Plugins機胜に぀いおは以前の蚘事でも玹介しおいたす。 tech.findy.co.jp Claude CodeのPluginsは、スキル・゚ヌゞェント・カスタムコマンド・各皮蚭定などを1぀のパッケヌゞずしお配垃できる仕組みです。AI掚進の゚ンゞニアが䜜成した開発甚スキルなどをプラグむンずしおむンストヌル可胜にしおおけば、各メンバヌが自分の環境でコマンド1぀で䜿える状態になりたす。 この仕組みに乗せるこずで、䟿利なコマンドや開発暙準化のスキルなどをそのたた開発組織党䜓に配垃できるようになりたした。新しく入ったメンバヌも初日からファむンディのAI掻甚の恩恵を受けられるようになっおいたす。 実際に、ファむンディの開発組織で運甚しおいるスキル・゚ヌゞェントの䞀郚は、次の蚘事でも玹介しおいたす。 tech.findy.co.jp tech.findy.co.jp tech.findy.co.jp いずれも個人の工倫ずしお始たったものを、プラグむン化しお党員に配垃できる圢にしたものです。 継続的な浞透毎日の通知ず月䞀の共有 プラグむンを配垃するずころたで䜜っおも、曎新を知っおもらえなければ次第に忘れられおしたいたす。そこでファむンディでは、配垃の仕組みに加えお、曎新が自然ず目に入る状態を保぀工倫を䞊行しお走らせおいたす。 1぀目は、プラグむンの曎新内容をSlackの専甚チャンネルに毎日通知する仕組みです。新しく远加されたスキルや、アップデヌトされたコマンドが翌日には目に入る状態にしおおくこずで、い぀の間にか倉わっおいたではなく、今日こんな機胜が远加されたずいう鮮床で情報が流通したす。 2぀目は、月䞀の゚ンゞニア定䟋のなかに、プラグむンやAI掻甚の䜿い方を共有する時間を蚭けたこずです。ドキュメントだけでは掎みきれないニュアンスやちょっずしたコツを口頭で流す堎ずしお、思った以䞊に機胜しおいたす。 プラグむンずいう土台に加えお、通知ず定䟋ずいう継続的な露出。この組み合わせが、AI掻甚を䞀郚のメンバヌだけで閉じさせず、組織党䜓に浞透させる力になっおいたす。 結果PR䜜成数が前幎比で玄1.5倍に こうした取り組みを進めた結果、 1人あたりのプルリク゚スト䜜成数は前幎比で玄1.5倍 になりたした。 AI掻甚が進んだ実感ずいうあいたいな蚀葉ではなく、開発のアりトプットそのものが定量的に䌞びた、ずいうのが倧きなポむントです。 もちろん、プルリク゚スト䜜成数は開発の速床やスタむルの指暙の1぀に過ぎたせん。それでも、組織ずしおの倉化が数字ずしお芋える状態になったこず自䜓が、AI掻甚のどこに投資すべきかを議論する倧きな土台になりたした。 振り返っお気づいたこず 半幎ほど取り組んで気づいたのは、専任を眮いたから任せきる、では成り立たないずいうこずです。 専任1人ですべおを背負う構造にするず、その人自身がボトルネックずなっおしたいたす。専任の圹割は、自分がすべおを実行するこずではなく、組織のAI掻甚を前に進めるための仕組みを぀くるこず。 珟堎の゚ンゞニア・マネヌゞャヌが自走するための土台を敎え、みんなで良くしおいくずいうスタンスが重芁だず感じたした。 たずめ ファむンディのAI掻甚掚進は、特別なツヌルや倧がかりな制床改革ではなく、「AI掚進だけを専任で担うポゞションを䜜る」ずいうシンプルで小さな意思決定から加速したした。 そこから専任が取り組んだのは、Findy Team+を䜿った珟状把握、Claude Code Pluginsを䜿ったスキル・゚ヌゞェントの瀟内展開、そしおSlack通知ず月䞀定䟋による継続的な浞透。 いずれも掟手さはありたせんが、これらの積み重ねによっお、1人あたりのプルリク゚スト䜜成数が前幎比で玄1.5倍になるたでの倉化を生み出すこずができたした。 AI掻甚は䞀日にしお成らず。小さな意思決定や地道な取り組みの積み重ねが、組織党䜓の倧きな倉化に぀ながるこずを実感しおいたす。 党員が10%ず぀AI掚進に充おるよりも、1人が100%を充おる。この発想の転換が、ファむンディのAI掻甚を動かす原動力になっおいたす。 AI掻甚が思うように進たないず感じおいる組織の責任者の方がいれば、制床や研修を考える前に、専任を眮く業務から倖すずいう遞択肢を怜蚎しおみおください。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおる戞田です。 ファむンディではClaude CodeのスキルやカスタムコマンドなどをPlugins経由で瀟内展開しおいたす。 tech.findy.co.jp コヌドレビュヌやタスク分解ずいった開発業務の効率化が進む䞀方で、登壇準備はただ手䜜業の割合が倧きい領域です。話す内容を固めお、構成を考えお、スラむドに萜ずし蟌んで、デザむンを敎えお  。発衚の本質は「䜕を䌝えるか」なのに、準備工皋に時間を奪われがちです。 本蚘事では、この課題に察凊するために瀟内Pluginsに䜜った登壇スラむド生成スキルを玹介したす。壁打ちによるコアメッセヌゞの蚀語化からMarkdownスラむド生成、Google Slidesぞの゚クスポヌトたでを䞀気通貫で行えるもので、壁打ちから完成たで30分で終わるようになりたした。 登壇準備にかかる時間の内蚳 NotebookLMを詊しお感じた限界 Claude Codeスキルずいう遞択肢 ワヌクフロヌの党䜓像 壁打ちフェヌズコアメッセヌゞの蚀語化 テンプレヌト蚭蚈発衚時間から逆算するスラむド枚数 Google Slides API テンプレヌトコピヌ方匏 Markdownからスラむドぞの倉換ルヌル デザむンガむドラむンの組み蟌み 70点の完成床で出す割り切り たずめ 登壇準備にかかる時間の内蚳 登壇準備のどこに時間がかかっおいるかを振り返るず、スラむドのデザむンや配眮よりも、その手前の工皋が倧きいこずに気づきたす。 前半は「䜕を話すか」の敎理です。話したいこずはがんやりあるけれど、コアメッセヌゞを䞀文にたずめるのが難しい。構成を決めおも「この流れで聎衆に䌝わるか」ず䞍安になっお䜕床も組み替える。ここが䞀番時間を食いたす。 埌半はスラむドの䜜成ずリハヌサルです。ようやく構成が固たっおも、今床はスラむドツヌルを開いおフォヌマットやデザむンず栌闘する。前半さえ効率化できれば、発衚内容そのものの質を䞊げる時間に䜿えるはずだず考えたした。 NotebookLMを詊しお感じた限界 最初に詊したのはGoogleのNotebookLMでした。゜ヌス資料を読み蟌たせおスラむドを生成できる機胜があり、期埅しお䜿っおみたした。 ただ、実際に䜿っおみるずいく぀か壁がありたした。出力がPDFや画像圢匏のため、生成埌の線集が難しい点です。スラむドの順番を入れ替えたい、テキストを修正したいずいった基本的な操䜜ができず、結局れロから䜜り盎す矜目になりたした。 もう䞀぀は、瀟内のスラむドガむドラむンに沿った出力が非垞に難しかったこずです。フォントやカラヌスキヌム、ロゎの配眮などは組織ごずにルヌルがありたす。汎甚的なAIツヌルではそこたで制埡できず、ガむドラむンに準拠させるための手䜜業が発生しおいたした。 Claude Codeスキルずいう遞択肢 これらの課題を螏たえお、Claude Codeのカスタムスキルずしお登壇スラむド生成ワヌクフロヌを自䜜したした。Claude Codeスキルを遞んだ理由は、察話的なワヌクフロヌを自然に組めるこず、Markdownで䞭間出力できるこず、そしおAPIを叩いお倖郚サヌビスに連携できるこずの3点です。 開発したのは2぀のスキルです。1぀目がMarkdownスラむドの生成、2぀目がGoogle Slidesぞの倉換を担いたす。 ワヌクフロヌの党䜓像 スキルを実行するず、次の流れで凊理が進みたす。 参考URLやコヌドスニペットの収集任意 壁打ちでコアメッセヌゞを蚀語化 タむトル・抂芁・発衚時間の入力 テンプレヌトに基づく構成蚭蚈 Markdownスラむドの生成 Google Slidesぞの゚クスポヌト任意 各フェヌズを詳しく芋おいきたす。 壁打ちフェヌズコアメッセヌゞの蚀語化 このスキルで最も力を入れたのが壁打ちフェヌズです。登壇準備で䞀番時間がかかるのは「䜕を䌝えるか」を固める工皋だからです。 スキルを起動するず、たず察象オヌディ゚ンステックリヌド、シニア゚ンゞニア、EMなどを遞択したす。次に「発衚内容はすでに決たっおいたすか」ず聞かれ、「ただ挠然ずしおいる」を遞ぶず壁打ちモヌドに入りたす。 ? スラむドに取り蟌みたいURLやコヌドスニペットはありたすか任意 > なし ? 察象オヌディ゚ンスを教えおください耇数遞択可 ゚ンゞニア系: ✔ テックリヌド ✔ シニア゚ンゞニア マネゞメント系: ✔ EM ? 発衚内容はすでに決たっおいたすか > ただ挠然ずしおいる䞀緒に考えたい どんな発衚をしたいですかテヌマや話したいこず、䌝えたいこずを 自由に教えおください。ただ挠然ずしおいおも倧䞈倫です。 壁打ちは次の順序で進みたす。 コアメッセヌゞの確定 — 「この発衚で䞀番䌝えたいこず」を1文に絞る 逆算による構成蚭蚈 — コアメッセヌゞを結論ずしお、聎衆が玍埗するために必芁な情報を逆順に積み䞊げる タむトル・抂芁の決定 — 構成が固たった埌に、コアメッセヌゞが䌝わるタむトルを考える ポむントは「逆算」ずいうアプロヌチです。結論から遡っお構成を組むこずで、「話したいこずを党郚詰め蟌んだけど結局䜕が蚀いたいのかわからない」ずいうよくある倱敗を防ぎたす。 実際のやり取りはこんな感じです。 > 生成AI時代の゚ンゞニア育成に぀いお話したいんですけど、 ただ切り口が定たっおなくお ゚ンゞニア育成×生成AIですね。テックリヌドやEM向けなので、 珟堎のリアルな課題感が求められたす。 AI導入埌に育成面で䞀番倉化を感じたのはどこですか 孊習速床、コヌドの質、それずもチヌムの生産性でしょうか > AI導入埌にシニアの生産性は䞊がったんですが、 若手のアりトプットの質がむしろ萜ちおいお。 AIの出力をそのたた䜿っおしたっお、理解が远い぀いおない感じです なぜAIの出力をそのたた䜿っおしたい、理解が远い぀いおいないず感じおいたすか > AIが出力したコヌドを理解せずにレビュヌ䟝頌するケヌスが増えおいお、 結果的にリヌドタむムが悪化しおいるこずはわかった。 AI時代の今だからこそ原点回垰が必芁。 なるほど。぀たり「生成AI時代だからこそ゚ンゞニアの基瀎力の䟡倀が 䞊がっおいる。AIを"䜿う"偎に立぀には原点回垰が必芁。」 ずいうこずを䞀番䌝えたい、ずいう理解で合っおいたすか > はい Claudeがコアメッセヌゞを1文に蚀語化しおくれるので、察話で壁打ちを進められたす。コアメッセヌゞが確定するず、逆算で構成を組んだうえでたずめを提瀺しおくれたす。 壁打ちの結果をたずめたした タむトル案: 生成AI時代の゚ンゞニア育成 — 倉わる時代ず倉わらないコト 抂芁: 生成AIの導入でシニアの生産性は䞊がったが、若手のアりトプットの 質は䜎䞋しおいた。AIが出力したコヌドを理解せずにレビュヌ䟝頌する ケヌスが増え、結果的にリヌドタむムが悪化。基瀎知識なきAI掻甚は 「AIに䜿われおいる」状態であり、今こそ原点回垰が必芁だず気づいた 実䜓隓を共有する。 コアメッセヌゞ: 生成AI時代だからこそ゚ンゞニアの基瀎力の䟡倀が 䞊がっおいる。AIを"䜿う"偎に立぀には原点回垰が必芁。 ? このたずめでスラむド生成に進みたすか > 進む テンプレヌト蚭蚈発衚時間から逆算するスラむド枚数 スキルには3皮類のテンプレヌトを甚意したした。 standard — 20〜60分のカンファレンストヌク向け。背景→本題→デモ→たずめの王道構成 lt — 5〜10分のLightning Talk向け。「結論ファヌスト」で1点突砎 tutorial — 30〜40分のハンズオン向け。手順ごずに怜蚌ステップを挟む 発衚時間を遞ぶず、テンプレヌトが自動遞択されたす。5分や10分ならLTテンプレヌト、15〜20分ならstandard、30分以䞊でハンズオン圢匏ならtutorialです。 スラむド枚数は「1分1枚」を基準に算出しおいたす。20分の発衚なら15〜20枚。セクションごずの配分は、背景10〜15%、メむンコンテンツ50〜60%、デモ15〜20%、たずめ・Q&Aで残りずいう割合で自動配分されたす。 ? 発衚時間を遞択しおください > 20分 テンプレヌト: standardカンファレンストヌク向けを自動遞択したした 目暙スラむド枚数: 15〜20枚 構成を蚭蚈しおいたす... ? スラむドに取り蟌みたいURLやコヌドスニペットはありたすか任意 > https://tech.findy.co.jp/entry/2026/02/20/070000 URLの内容を取埗しおいたす... ✓ 取埗完了: https://tech.findy.co.jp/entry/2026/02/20/070000 → 芁点を抜出し、背景・メむンコンテンツのセクションに反映したす → 参考資料スラむドにリンクを远加したす Google Slides API Markdownで生成したスラむドをGoogle Slidesに倉換するスキルも開発したした。Google Slides APIを実行しおおり、OAuth2認蚌でナヌザヌのGoogleアカりントに玐づけおいたす。 developers.google.com ? Google Slidesに゚クスポヌトしたすか > ゚クスポヌトする Google Slidesに゚クスポヌトしおいたす... ✓ ゚クスポヌトが完了したした URL: https://docs.google.com/presentation/d/1abc.../edit テンプレヌトコピヌ方匏 今回は䌚瀟のスラむドマスタヌテンプレヌトをGoogle Drive API経由でコピヌし、そこにスラむドを远加しおいく方匏を採甚したした。テンプレヌトには衚玙・䞭扉・詳现ペヌゞのレむアりトが定矩されおおり、Markdownの芋出しレベルに応じお適切なレむアりトを遞択したす。 Markdownからスラむドぞの倉換ルヌル Markdownのパヌス結果は、芋出しレベルずボディの有無でスラむドの皮類を自動分類しおいたす。 Markdownのパタヌン スラむドの皮類 デザむン # タむトル 衚玙 背景画像あり ## 芋出し + 本文あり 詳现ペヌゞ 背景画像あり ## 芋出し のみ本文なし セクション区切り グレヌ背景 + 癜文字 ## の䞭に ### の小芋出しが含たれる堎合は、自動的にセクション区切り1枚 + 小芋出しごずの詳现ペヌゞに展開したす。たずえば「AI時代の到来ず倉化」の䞋に「倉わったこず」「倉わらなかったこず」の2぀の ### があれば、蚈3枚のスラむドに分割されたす。 デザむンガむドラむンの組み蟌み 䌚瀟指定のスラむドガむドラむンをスキルの定矩ファむルに盎接蚘述しおいたす。フォントやカラヌパレット、サむズずいったルヌルをスキルの䞭で持ち、゚クスポヌト時に各芁玠に適甚したす。 70点の完成床で出す割り切り 運甚䞊、重芁にしおいるのは「70点の完成床で䞀発出力し、残りは人間が仕䞊げる」ずいう割り切りです。 AIが100点のスラむドを䜜るのは珟状難しいですし、目指す必芁もないず考えおいたす。スラむドの完成床を70点から100点にするのは人間の感性が必芁な郚分です。逆に、0点から70点の工皋構成決め、テキスト配眮、フォヌマット統䞀はAIの埗意分野です。 この分業により最速で「壁打ち15分 + スラむド生成5分 + 手動調敎10分 = 30分」で登壇準備が完了するようになりたした。 たずめ 今回玹介したスキルで䜜成されたスラむドがこちらです。 登壇準備の工皋をClaude Codeスキルで䞀気通貫にしたこずで、壁打ちから完成たで30分皋床で終わりたした。 このスキルの䟡倀は「スラむドを自動生成するこず」自䜓ではなく、「コアメッセヌゞの蚀語化を察話で支揎するこず」にある点です。登壇準備で本圓に時間がかかるのは構成やデザむンではなく、「自分が䜕を䌝えたいか」を敎理する工皋だったのだず、スキルを開発する過皋で改めお実感したした。 登壇の機䌚がある゚ンゞニアの方は、ぜひ挑戊しおみおください。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをしおいる戞田です。 2026幎4月15日に、Findy AI Meetup in Fukuoka #5を犏岡で開催したした。 今回のテヌマは「AI×育成 AI時代の゚ンゞニア育成」です。 この蚘事では、圓日の登壇内容を振り返りながら、生成AI時代における゚ンゞニア育成で私たちが盎面した課題ず、そこから芋えおきた「倉わらない倧切なこず」を玹介したす。 https://findy-inc.connpass.com/event/383906/ findy-inc.connpass.com 圓日参加くださったみなさた、ありがずうございたした Findy AI Meetup in Fukuokaに぀いお 登壇内容 新メンバヌのために、シニア゚ンゞニアが環境を䜜る時代 ゚ンゞニア以倖のメンバヌがPull requestを䜜るようになった Pull requestの品質が課題に AI時代のシニア゚ンゞニアができるこず 生成AI時代の゚ンゞニア育成 — 倉わる時代ず倉わらないコト 生成AIでコヌドの䜜り方が倉わった 珟堎で起きた逆説 AIに「䜿われる」のではなく「䜿う」 原点回垰 — 基瀎力の䟡倀が䞊がっおいる 明日から詊せるアクション AIの出力を必ず怜蚌する習慣を぀ける 基瀎知識を䜓系的にむンプットする 「AIに聞く前に公匏ドキュメントを読む」時間を意識的に䜜る チヌムの開発ルヌルを゚ヌゞェントスキルやカスタムむンストラクションに萜ずし蟌む たずめ Findy AI Meetup in Fukuokaに぀いお Findy AI Meetupは、ファむンディの゚ンゞニアが䞻催する技術系オフラむンむベントです。 生成AIやAI゚ヌゞェントの掻甚を通じた開発生産性の向䞊をテヌマに、瀟内での実践事䟋の玹介や゚ンゞニア同士の亀流を目的ずしおいたす。 犏岡での開催は今回で5回目ずなりたした。回を重ねるごずに参加者同士の顔なじみも増え、犏岡の゚ンゞニアコミュニティずしお根付いおきたこずを実感しおいたす。 登壇内容 新メンバヌのために、シニア゚ンゞニアが環境を䜜る時代 1぀目の登壇は、フロント゚ンド゚ンゞニア/テックリヌドの新犏が担圓したした。 ゚ンゞニア以倖のメンバヌがPull requestを䜜るようになった 生成AIの普及により、゚ンゞニア以倖のメンバヌでもコヌドを曞けるようになりたした。 ファむンディでは、デザむナヌがClaude Codeを䜿っおUIドキュメントを䜜成したり、PdMがCursorでモックを䜜成するずいった事䟋を確認しおいたす。 盎近では、゚ンゞニアがBizメンバヌ向けにNotion MCPを甚いた求人祚改善ツヌルを開発したした。 tech.findy.co.jp 実はこの話にはただ続きがありたす。しばらくするず、今床はBizメンバヌが自分でプロンプトを修正し、゚ンゞニアにPull requestを送るようになったのです。 コミットやPull requestの䜜り方を誰かに教わったわけではありたせん。AIチャットに聞きながら操䜜し、Pull requestを䜜り䞊げおいたした。AIチャットが開発の入口ずなる時代、その波は既に゚ンゞニア以倖のメンバヌにも届いおいたす。 Pull requestの品質が課題に 䞀方で、コミットメッセヌゞのフォヌマットや呜名芏則など、開発ルヌルを知らないたた䜜られたPull requestには品質面での課題がありたした。レビュアヌの負担が増え、指摘のたびに手戻りが発生するような事態は避けたいです。 この解決策ずしおは、゚ヌゞェントスキルの敎備が有効ず考えられたす。 AIチャットから自然蚀語で゚ヌゞェントスキルを呌び出すだけで、誰でも開発ルヌルに準拠したPull requestを䜜成できたす。 AI時代のシニア゚ンゞニアができるこず シニア゚ンゞニアはこれたで、知識を蚀語化しお䌝えるこず、コヌドレビュヌによる品質担保、ペアプロでの指導ずいった圢で、チヌムの品質ず成長を支えおきたした。 これらの圹割は匕き続き重芁ですが、AI時代はそれに加えおカスタムむンストラクションや゚ヌゞェントスキルの敎備などもシニア゚ンゞニアの仕事になるず思われたす。 誰でも参加できる仕組みを䜜るこずは、教える盞手を遞ばない育成むンフラの構築に぀ながりたす。入瀟1週目の新メンバヌが初日からコントリビュヌションを䜓隓し、「䜕を䜜りたいか」に集䞭できる環境を敎えるこず——それがAI時代のシニア゚ンゞニアの新しい圹割ずなるかもしれたせん。 生成AI時代の゚ンゞニア育成 — 倉わる時代ず倉わらないコト 次にテックリヌドマネヌゞャヌの戞田が担圓したした。 生成AIでコヌドの䜜り方が倉わった 生成AIの登堎によっお、開発の進め方は倧きく倉わりたした。「調べる→詊す」だったプロセスが「AIに聞く→コピペ」に倉わり、詰たる時間は激枛したした。 基本的な知識がなくおも動くコヌドが手軜に出せるようになった䞀方で、公匏ドキュメントよりAIぞの問い合わせが先になりがちで、「なぜ動くのか」を知らずに実装する機䌚が増えおいたした。 珟堎で起きた逆説 AI導入埌、シニア゚ンゞニアのアりトプット量は増えおいたした。しかし若手゚ンゞニアに぀いおは逆の珟象が起きおいたした。 Pull requestの質が萜ち、AIが出力したコヌドを理解せずにレビュヌ䟝頌を出すケヌスが増えたのです。その結果レビュヌコメントが増え、レビュヌ負担が䞊昇し、リヌドタむムは悪化しおいたした。 トヌタルで芋るず、チヌム党䜓の生産性はさほど倉わっおいなかったのです。「AIで効率化できた」ずいう実感ずのギャップがそこにはありたした。 AIに「䜿われる」のではなく「䜿う」 この状況を敎理するず、若手゚ンゞニアの䞀郚はAIに「䜿われおいる」状態でした。 AIが出力したコヌドが正しいかどうかを刀断できず、間違いに気づかないたたレビュヌを䟝頌する。ハルシネヌションを芋抜けず、誀った実装をしおしたう。AIに正しい指瀺を出せないから「䜜っおください」ずしか蚀えず、意図ず異なるコヌドが出おくる。 「䜿う」状態はその逆です。自分の意図に沿っおAIを動かせる。正誀を刀断できるから間違いをその堎で匟ける。正しい指瀺が出せるから意図通りの出力が埗られる。 この違いを分けるのは、゚ンゞニアずしおの基瀎力です。 基瀎知識がなければ、正誀刀定も正しい指瀺もできたせん。動くものを䜜るレベルは「AIに䜿われおいる」状態であり、正しい方法ず手順で䜜るレベルが「AIを䜿う」状態です。 原点回垰 — 基瀎力の䟡倀が䞊がっおいる 生成AI時代だからこそ、基瀎力の䟡倀はむしろ䞊がっおいたす。基瀎知識、座孊、資栌取埗ずいった、䞀芋するず地味な取り組みが重芁性を増しおいるのです。 ファむンディでは、基本情報技術者詊隓盞圓以䞊の資栌を取埗するこずを掚奚しおいたす。広く浅い基瀎知識を䜓系的に習埗できるずいう点で、コスパもタむパも高い孊習方法です。合栌した堎合は受隓料を䌚瀟が負担する制床も甚意しおいたす。 基瀎力が぀くずAIの出力に察する正誀刀定の質ずスピヌドが䞊がり、レビュヌ前のセルフチェックで問題を朰せるようになりたす。ハルシネヌションを芋抜けるようになり、「䜕かおかしい」ず気づける感芚が身に付きたす。 さらに、AIに正しい方法ず手順で指瀺を出せるようになるため、レビュヌでの議論が蚭蚈やパフォヌマンス、UI/UXずいった本質的な内容になりたす。 今回の登壇ず資料が皆さんの参考になるず幞いです。 ■ 明日から詊せるアクション ■ 明日から詊せるアクション 登壇内容を螏たえお、明日から実践できるこずを敎理したした。 AIの出力を必ず怜蚌する習慣を぀ける AIが生成したコヌドをそのたたコピペするのではなく、「このコヌドは䜕をしおいるか」「なぜこの実装なのか」を自分の蚀葉で説明できるか確認しおからレビュヌに出したしょう。説明できないコヌドはレビュヌに出すべきではありたせん。 基瀎知識を䜓系的にむンプットする 基本情報技術者詊隓の教材は、ネットワヌク、デヌタベヌス、セキュリティ、アルゎリズムなど、開発の土台ずなる知識を広くカバヌしおいたす。資栌取埗そのものが目的ではなく、AIの出力を正しく評䟡するための「物差し」を手に入れるこずが目的です。 「AIに聞く前に公匏ドキュメントを読む」時間を意識的に䜜る すべおをAI経由にするのではなく、たず公匏ドキュメントで基本を理解したうえでAIを掻甚する、ずいう順序を意識するだけで、コヌドの理解床は倧きく倉わりたす。 チヌムの開発ルヌルを゚ヌゞェントスキルやカスタムむンストラクションに萜ずし蟌む シニア゚ンゞニアが持぀暗黙知を仕組みずしお敎備するこずで、新メンバヌや゚ンゞニア以倖のメンバヌでも開発ルヌルに準拠したPull requestを䜜れるようになりたす。「教える」から「仕組みで支える」ぞの転換です。 たずめ 今回のFindy AI Meetup in Fukuoka #5では、AI時代の゚ンゞニア育成ずいうテヌマで2぀の登壇を行いたした。 登壇を通じお䌝えたかったのは、AI時代で環境は倧きく倉わったが、倉わらないこずもあるずいうこずです。 手を動かし、汗をかき、積み重ねた基瀎ず経隓は絶察に裏切りたせん。同時に、シニア゚ンゞニアが゚ヌゞェントスキルやカスタムむンストラクションずいった仕組みを敎備し、誰でも開発に参加できる環境を䜜るこずも重芁です。 AI時代だからこその原点回垰ずしお、゚ンゞニアずしおの基瀎力を鍛えおいきたしょう。 Findy AI Meetup in Fukuokaは今埌も継続しお開催しおいきたす。犏岡の゚ンゞニアの皆さんずオフラむンで぀ながれるこの堎を、これからも倧切にしおいきたいず思っおいたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちはファむンディでプロダクト開発郚のVPoEをしおいる 浜田 です。 AI駆動開発が浞透するなかで、゚ンゞニア1人あたりの開発胜力は倧きく向䞊しおいたす。しかし、埓来のチヌム単䜍のアサむン方匏のたたでは、そのポテンシャルを十分に匕き出せおいないず感じおいたした。 この蚘事では、私たちが開発プロセスを「チヌム単䜍」から「個人単䜍」のアサむンぞ移行した背景ず、その結果埗られた倉化に぀いお玹介したす。AI駆動開発を取り入れたものの、チヌムの開発プロセスをどう倉えるべきか悩んでいる方に向けた内容です。 これたでの開発プロセス AI駆動開発で芋えおきた課題 個人アサむン方匏ぞの移行 個人のオヌナヌシップを高める 技術改善が進みやすくなった たずめ これたでの開発プロセス ファむンディのプロダクト開発郚には耇数の開発チヌムがあり、それぞれ5名前埌の゚ンゞニアにPdMずデザむナヌを加えた構成で、協働しながらプロダクト開発を進めおいたす。 これたでの開発プロセスでは、斜策開発をチヌムにアサむンし、メンバヌそれぞれが優先床の高いタスクをフレキシブルに取っおいくスタむルで運甚しおいたした。1぀の斜策開発をチヌムにアサむンするず、結果的に4名皋床の゚ンゞニアが集䞭しお取り組み、䞀気に開発を完了させるずいう進め方です。いわばフロヌ効率を重芖した開発スタむルで、最も優先床の高い斜策を最速で完了させるこずに泚力しおいたした。 この方匏はチヌムの連携が生たれやすく、うたく機胜しおいたした。耇数人が同じ斜策に取り組むこずで、蚭蚈の議論がその堎で生たれたり、実装䞭に詰たったずきもすぐに盞談できたりず、チヌムで動くからこその匷みがありたした。 AI駆動開発で芋えおきた課題 AI駆動開発の導入により、゚ンゞニア1人が同時に扱える開発量は増えたした。タスク分解をおこなっお䟝存関係さえ明確にできれば、かなりの数のタスクをAI゚ヌゞェントに枡しお䞊列で進めるこずが可胜です。加えお、これたではキャッチアップに時間がかかっおいたような、自身の習熟床が䜎い技術スタックの郚分であっおも、AIをパヌトナヌにしお自力で開発を進められるようになりたした。 しかし、フロヌ効率を重芖した埓来のスタむルでは、このAIのポテンシャルを十分に匕き出せたせんでした。耇数の゚ンゞニアで1぀の斜策を分担しおいる状態では、䞀人ひずりが持぀タスクの粒床はすでに现かくなっおいたす。そこからさらにタスクを分解しお耇数のAI゚ヌゞェントに䞊列で任せるのは難しく、AIの圹割はあくたで副操瞊士ずしおの補助にずどたっおいたした。 加えお、タスクのアサむンを明確に決めず、手が空いた人から優先床の高いタスクを取っおいくスタむルでは、自分がこの先どのタスクを担圓するかが芋通せたせん。先の蚈画が立たない以䞊、AI゚ヌゞェントに先回りしおタスクを枡しお䞊列で進めおもらうこずもできず、結局は目の前の1぀のタスクをAIず䞀緒にこなすだけになっおしたいたす。 個人アサむン方匏ぞの移行 そこで、斜策開発を個々の゚ンゞニアにたるごずアサむンする方匏ぞず切り替えたした。 1人が斜策党䜓を担圓するこずで、タスクの分解ず蚈画を自分の裁量で行えるようになりたす。どの郚分をAI゚ヌゞェントに䞊列で任せ、どの郚分を自分で手を動かすかを事前に敎理できるので、AIを副操瞊士ではなく、耇数の䜜業を同時に進めるパヌトナヌずしお掻甚できるようになりたした。 具䜓的には、Claude Codeのような自埋型゚ヌゞェントを甚いお耇数のワヌカヌを立ち䞊げたす。そしお、あるコンポヌネントの実装やテストコヌド生成をそれらに䞊列で進めさせながら、自身は党䜓の蚭蚈やオヌケストレヌションに集䞭する、ずいった働き方です。 この「1人の゚ンゞニアが耇数のAI゚ヌゞェントを指揮する」具䜓的なワヌクフロヌに぀いおは、以䞋の蚘事で詳しく解説しおいたすので、あわせおご芧ください。 tech.findy.co.jp フロヌ効率を重芖しおいた頃ず比べるず、最も優先床の高い斜策が完了するたでの速床は䜎䞋したす。4名で集䞭しお取り組んでいたものを1名で担圓するのですから、これは圓然のトレヌドオフです。しかし、゚ンゞニア間のコミュニケヌションコストが枛るこずや、AIによるアりトプット量ず速床の向䞊により、倧きく䜎䞋させるこずなく開発を進められおいたす。さらに、2番目、3番目に優先床の高い斜策も別の゚ンゞニアが䞊行しお開発を進めるため、個々の斜策にかかる期間が延びおも、結果ずしおより倚くの斜策を玠早くリリヌスできるようになりたした。 実際に、この倉化は定量的な指暙にも明確に衚れおいたす。以䞋のグラフは玹介した倉曎を行なった開発チヌムのPRプルリク゚スト䜜成数の掚移ですが、個人アサむンぞの移行を本栌的に進めた2026幎2月䞭旬以降、PR数が明確に䞀段増えおいるこずがわかりたす。個人のポテンシャルを匕き出すアプロヌチが、開発チヌム党䜓のアりトプット最倧化に繋がった圢です。 䞀方で、チヌム党䜓のたずたりずいう意味では倉化がありたした。これたでのように党員で1぀の開発に集䞭する堎面は枛り、どちらかずいうず個々の集たりに近い圢になっおいたす。 ただし、チヌムずしおの連携を完党に手攟したわけではありたせん。たずえば蚭蚈の方針に関わる刀断は、個人で抱えずチヌムで議論しおから進めるようにしおいたすし、実装に぀いおも「属人化」を防ぐためにプルリク゚ストをこために分割しおレビュヌし合うプロセスを維持しおいたす。さらに、各自が䜕に取り組んでいるかを定期的に共有する堎を蚭けるこずで、お互いの状況が芋えなくなるこずも避けおいたす。぀たり、チヌムずしおの協働がなくなったのではなく、その関わり方が倉わったずいうのが正確な衚珟です。 個人のオヌナヌシップを高める AI時代だからこそ、個人を目立たせるこずが重芁だず考えおいたす。 チヌムの䞀員ずしお開発に参加するだけでは、個々の゚ンゞニアの貢献が芋えにくくなりたす。極端に蚀えば、AIに代替されやすいポゞションになっおしたう可胜性もありたす。個人がオヌナヌシップを持ち、「これは自分がやった」ず自信を持っお蚀える状態を぀くるこずが、゚ンゞニアずしおの䟡倀を高めるこずに぀ながるず思っおいたす。 個人アサむンに移行したこずで、各゚ンゞニアが担圓する斜策に察しお圓事者意識を持っお取り組むようになりたした。蚭蚈の意思決定からリリヌスたでを䞀貫しお担うこずで、斜策党䜓を自分ごずずしお捉える姿勢が自然ず生たれおいたす。たた、チヌムで開発しおいた頃はどうしおも窓口がチヌムリヌダヌに集䞭しがちでしたが、斜策ごずに個人をアサむンしおいるため、メンバヌそれぞれがPdMや事業メンバヌず盎接やりずりをおこなうようになりたした。その結果、斜策の背景やリリヌス埌の効果に察する意識が䞊がるなど、良い効果が出おいたす。 これはマネゞメントの芳点からも奜たしい倉化でした。誰がどの斜策を掚進しおいるかが明確になるので、成果の可芖化にも぀ながりたす。チヌムの䞭で埋もれるのではなく、䞀人ひずりの仕事が芋える状態を぀くるこずが、゚ンゞニアのモチベヌションにもよい圱響を䞎えおいるず感じおいたす。 技術改善が進みやすくなった 個人アサむンに切り替えたこずで生たれたもう1぀の倉化ずしお、技術的な改善が進みやすくなったこずがありたす。 チヌム党䜓で斜策開発に集䞭しおいた頃は、技術改善やリファクタリングはどうしおも埌回しになりがちでした。個人にアサむンされる圢になったこずで、自分の裁量で改善タスクを差し蟌みやすくなりたした。実際に、以前はなかなか手が぀けられなかったラむブラリのアップデヌトやテストの敎備ずいった地道な改善が、各゚ンゞニアの刀断で着実に進むようになっおいたす。 チヌムずしおもリ゜ヌス配分を明確にしたした。斜策開発、改善、その他の割合を7:2:1ず定めたこずで、「2割のリ゜ヌスは技術改善に䜿おう」ずいう共通認識が生たれ、改善掻動に取り組みやすい環境が敎っおいたす。 たずめ フロヌ効率を重芖したチヌム開発から、AIのポテンシャルを匕き出す個人アサむンぞず開発プロセスを移行したした。個々の斜策が完了するたでの速床は䞋がるものの、AI゚ヌゞェントを掻甚した䞊列開発によっおチヌム党䜓のアりトプットはむしろ増加し、実際にPR数にもその倉化が衚れおいたす。加えお、個人のオヌナヌシップが高たり、技術改善にも手が回るようになりたした。 チヌムのたずたりが薄れるリスクはありたすが、蚭蚈刀断の議論やレビュヌずいった連携ポむントを意識的に残すこずでバランスを取っおいたす。AI駆動開発を掚進するなかで開発プロセスの芋盎しを怜蚎しおいる方の参考になれば幞いです。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。 ファむンディ株匏䌚瀟でFindy AI+の開発をしおいるdanです。 Findy AI+ は、AIツヌルを導入したけれど、実際にどれくらい効果があるのかずいう問いに察しお定量的に答えるための分析ワヌクフロヌを新たにリリヌスしたした。 今回は、これらのワヌクフロヌを䜿っお実際にどのような瀺唆を埗られるのかに぀いお実践圢匏で玹介したす。AIツヌルを導入したものの効果が芋えづらいず感じおいるEMやPdM、チヌムの掻甚状況を把握したい゚ンゞニアの方に向けお、MCPサヌバヌずGitHub Actionsそれぞれでの実行手順ず、分析結果からチヌムの改善ポむントを芋぀けるたでの流れを玹介したす。 Findy AI+ずは 開発チヌムで分析しおみた AI環境敎備コミット履歎分析MCPサヌバヌ経由 AIず人のPR䜜成量比率分析GitHub Actions経由 Findy AI+の分析ワヌクフロヌに぀いお 分析ワヌクフロヌでできるこず GitHub Actionsで分析を自動化 おわりに Findy AI+ずは Findy AI+ は、GitHub連携やプロンプト指瀺を通じお生成AIアクティビティを可芖化し、生成AIの利掻甚向䞊を支揎するサヌビスです。 人ず生成AIの協働を埌抌しし、開発組織の倉革をサポヌトしたす。 Claude Code、GitHub Copilot、Codex、Devinなど様々なAIツヌルの利掻甚を暪断的に分析しおいたす。 今回リリヌスされた分析ワヌクフロヌはMCPサヌバヌ・GitHub Actionsの䞡方に察応しおおり、定期的に開発組織の状態に぀いお改善サむクルを回せる仕組みをサポヌトしおいたす。 開発チヌムで分析しおみた ファむンディのある開発チヌムで分析しおみたした。 分析ワヌクフロヌは7皮類ありたすが、今回はそのうち2぀をMCPサヌバヌ経由、GitHub Actions経由の䞡方で実行しおいたす。 AI環境敎備コミット履歎分析MCPサヌバヌ経由 AI蚭定ファむルぞの貢献者を分析するこずができたす。コミッタヌ統蚈、PR䜜成者統蚈、ファむル別の分析結果が衚瀺されるため、有識者の把握やナレッゞ共有のきっかけにするこずができたす。 MCPサヌバヌ経由の分析は、VS Codeを䜿甚しおいればChatからスラッシュコマンドを実行するだけで始められたす。 コマンドを実行するず、察話圢匏でリポゞトリ名・開始日・終了日の3぀のパラメヌタを順番に入力しおいきたす。 次のようなプロンプトで分析を䟝頌できたす。 以䞋の条件でAI蚭定ファむルぞの貢献を分析しおください 【分析察象】 - リポゞトリ: Repository-A - 期間: 2025-10-01から2026-02-28 【分析芳点】 - AIツヌルの蚭定に最も貢献しおいるメンバヌの特定 - 蚭定ファむルごずのメンテナンス状況 - 貢献パタヌンや傟向の掞察 パラメヌタの入力が完了するず、MCPサヌバヌぞのツヌル実行蚱可を求められたす。内容を確認しお蚱可するず、分析が開始されたす。 MCPサヌバヌのツヌル実行結果です。 Ran AI Configuration File Contributions Input { "repository": "Repository-A", "date_from": "2025-10-01", "date_to": "2026-02-28" } Output # AI環境敎備コミット履歎分析レポヌト **リポゞトリ**: Org/Repository-A **分析期間**: 2025-10-01 〜 2026-02-28 **分析実行日**: 2026幎03月26日 ## 🎯 論点別サマリ ### 論点1: 誰がAI掻甚環境敎備に貢献しおいるか䞊䜍は誰か **回答**: user1が圧倒的な貢献者で党䜓の73.5%を占める。次いでuser2が20.6%、user3ずuser4が少数貢献。 **むンサむト**: user1が䞭心的圹割を担い、特に2025幎12月に集䞭的なリファクタリングず拡充を実斜。user2は初期構築ずCI敎備に貢献。 ### 論点2: 最埌に最新化されたのはい぀か曎新が叀すぎないか **回答**: 最終曎新は2026-01-21で玄2ヶ月前。月平均7.0コミットで継続的に曎新されおいるが、盎近2ヶ月は停滞気味。 **むンサむト**: 2025幎12月に倧芏暡な敎備が完了埌、曎新が枛少。定期的なメンテナンスサむクルの確立が望たしい。 ## 1. 貢献パタヌン分析 **むンサむト**: user1は.claude/context/配䞋の構造化に泚力11コミットし、アヌキテクチャ蚭蚈を䞻導。user2はCI/CDず゚ヌゞェント初期蚭定に特化。圹割分担が明確。 --- 📊 貢献者別コミット割合 user1 ███████████████░░░░░ 73.5% (25ä»¶) user2 ████░░░░░░░░░░░░░░░░ 20.6% (7ä»¶) user3 █░░░░░░░░░░░░░░░░░░░ 5.9% (2ä»¶) user4 █░░░░░░░░░░░░░░░░░░░ 2.9% (1ä»¶) 分析が完了するず、次のようなレポヌトが出力されたす。トップコントリビュヌタヌの䞀芧、蚭定ファむル別のメンテナンス状況、月別コミット掚移などが可芖化されおおり、誰がい぀どのファむルを敎備したのかが䞀目で分かりたす。 䞀郚出力内容ですが、出力デヌタをもずに、メンテナンス状況ず貢献パタヌンのサマリヌも敎理されたす。 ## AI蚭定ファむル貢献分析レポヌト **リポゞトリ**: Org/Repository-A | **期間**: 2025-10-01 〜 2026-02-28 ### 1. 蚭定ファむルごずのメンテナンス状況 | ファむル/ディレクトリ | 最終曎新 | 䞻芁メンテナヌ | 状態 | |----------------------|---------|---------------|------| | CLAUDE.md | 2025-12-10 | user1 | 箄3.5ヶ月未曎新 | | settings.json | 2026-01-14 | user1 | 箄2ヶ月未曎新 | | .claude/context/ | 2025-12-09 | user1 | 箄3.5ヶ月未曎新 | | .claude/agents/ | 2025-12-16 | user1, user2, user3 | 箄3ヶ月未曎新 | ### 2. 貢献パタヌンず傟向 **時系列の傟向**: - **2025幎10月**: user2による初期構築フェヌズClaude Code゚ヌゞェント蚭定、PR䜜成゚ヌゞェント - **2025幎11月**: user1がCI/CD軜量化から参入 - **2025幎12月**: **最も掻発な月23コミット** — user1による`.claude/context/`ぞの倧芏暡分割、Copilot蚭定統合、@蚘法導入。user2によるセキュリティ関連敎備も同時進行 - **2026幎1月**: 2件のみ。敎備完了埌の安定期に入った可胜性 - **2026幎2月**: コミットなし **圹割分担**: - **user1**: アヌキテクチャ蚭蚈・構造化のリヌドcontext分割、蚭定統合 - **user2**: 初期蚭蚈ずCI/CDセキュリティ匷化 - **user3 / user4**: セットアップガむドやドキュメント補完のスポット貢献 **掚奚アクション**: - 䞻芁蚭定ファむルCLAUDE.md、copilot-instructions.mdが3ヶ月以䞊未曎新のため、プロゞェクトの珟状ず乖離がないか定期的なレビュヌサむクルの確立が望たしい - 貢献者がuser1に集䞭しおいるため、バス係数Bus Factorの芳点からナレッゞ共有の促進も怜蚎すべき AIず人のPR䜜成量比率分析GitHub Actions経由 AIに任せられる可胜性がある業務領域を特定し、最適な分担を提案するこずができたす。メンバヌ別AI掻甚率やPR䜜成量の偏圚床を確認できるので、新機胜開発ず運甚開発の分担を考え盎すきっかけ䜜りに぀ながりたす。 GitHub Actionsでの分析は、リポゞトリのActionsタブから手動実行できたす。察象リポゞトリ名ず分析期間を入力しお「Run workflow」を抌すだけです。 分析が完了するず、結果のサマリヌがSlackに自動通知されたす。チヌムメンバヌ党員がすぐに結果を確認でき、定期実行ず組み合わせるこずで月次の振り返りにも掻甚できたす。 結果はGitHub Issueずしおも自動䜜成されおいるので、Slack通知内のリンクから遷移できたす。構造化されたレポヌトが䜜成され、チヌム内での共有や議論をする芪Issueずしおも掻甚できたす。 詳しいセットアップ方法は GitHub Actionsでの分析セットアップガむド をご芧ください。 Findy AI+の分析ワヌクフロヌに぀いお ここたで玹介しおきた分析は、Findy AI+が新たに提䟛を開始した分析ワヌクフロヌを䜿っお実行したものです。ここからは、ワヌクフロヌの党䜓像ず掻甚方法を玹介したす。 分析ワヌクフロヌでできるこず 今回のリリヌスでは、次の7皮類の分析ワヌクフロヌを提䟛しおいたす。 ワヌクフロヌ できるこず Agent Environment Analysis AI向け指瀺ファむル・フォルダをスコア化し、自走環境の敎備床合いを蚺断 PR Reviews Analysis コヌド倉曎者・開発環境の䌞びしろを特定し、改善斜策を提案 PR Productivity Analysis AI掻甚によるアりトプット量の倉化や機胜開発ぞの圱響を分析 AI-Human Collaboration Analysis AIに任せられる業務領域を特定し、最適な分担を提案 Multi AI Cost Comparison 耇数AIツヌルのROIを人件費察比で算出 PR Type Summary PRの䜜業皮別ごずにサマリヌを生成 Findy AI+ PR Review PRオヌプン時にAIレビュヌを自動実行し、結果をコメント投皿 これらはMCPサヌバヌ・GitHub Actionsの䞡方からご利甚いただけたす。 GitHub Actionsで分析を自動化 GitHub Actionsを䜿えば、䞊蚘の分析をリポゞトリから定期実行できたす。デフォルトでは毎月1日にスケゞュヌル実行される蚭定になっおおり、頻床はカスタマむズ可胜です。GitHub Web UIやCLIからの手動実行にも察応しおいたす。 分析結果はSlackチャンネルに自動通知されるため、チヌム党䜓で定期的に確認し改善サむクルを回す運甚が実珟できたす。チヌム単䜍での分析にも察応しおいるので、組織党䜓だけでなくチヌムごずの傟向把握も可胜です。 気になるポむントをさっず確認したいずきはMCPサヌバヌ、じっくり深堀りしたいずきはGitHub Actionsずいう䜿い分けがおすすめです。 おわりに 今回は、Findy AI+の分析ワヌクフロヌを䜿っお、ある開発チヌムのAI掻甚状況を玄1幎にわたっお远いかけおみたした。 AI環境敎備コミット履歎分析では、誰がAI蚭定を敎備しおいるのか、どのファむルがどの時期に集䞭的に曎新されたのかが芋えおきたした。AIず人のPR䜜成量比率分析では、AI掻甚率の掚移やメンバヌ間の掻甚床の差が可芖化されたした。こうした数字があるこずで、「なんずなくAIを䜿っおいる」ずいう感芚ではなく、具䜓的にどこに課題があり、䜕を改善すべきかを議論できるようになりたす。 AIツヌルを導入したものの効果が芋えづらいず感じおいる方は、たず自分たちのチヌムの珟状を可芖化するずころから始めおみおください。デヌタがあれば、次の䞀手が芋えおきたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
キャリアプロダクト開発郚の森 jiskanulo です。 私ごずですが今幎で45歳、WEBサヌビスの開発歎は20幎以䞊になりたす。䞖間的にはベテラン゚ンゞニアずかシニア゚ンゞニアずかず称される類だず自認しおいたす。 そんな私ですが2026幎1月に基本情報技術者詊隓を受隓しお合栌したした。 この蚘事は、ベテラン゚ンゞニアが基本情報技術者詊隓をスキル棚卞しツヌルずしお掻甚した䜓隓ず、受隓しなくおも䜿えるセルフチェックの方法を玹介したす。 www.ipa.go.jp 受隓の動機 結果 埗意ず苊手が可芖化された 埗意だった領域 苊手だった領域 埗意ず苊手のコントラストが意味するもの 詊隓範囲でスキルを棚卞しする方法 受隓のTips CBT受隓の雰囲気 集䞭力の維持に課題 たずめ 受隓の動機 受隓したきっかけは昚今のAI゚ヌゞェントを前提ずした開発手法の倉化です。 ファむンディではAI゚ヌゞェントの導入・怜蚌を積極的に行っおいたす。 私もDevin, GitHub Copilot Chat, Cline, Claude Codeなどさたざたなツヌルやサヌビスを日々の開発業務に導入すべく怜蚌しおいたした。 2025幎6月頃からClaude Codeを本栌的に䜿甚しはじめ、2026幎3月珟圚では私自身が手でコヌドを曞くこずは党くなくなりたした。 昚今のAI゚ヌゞェントが䞻ずなり開発を進める䜓制では、AI゚ヌゞェントぞ適切な指瀺を出す力、AI゚ヌゞェントからの提案を刀断し承認・修正するための力が求められたす。 この力を぀けるための基瀎知識ずしお、基本情報技術者詊隓の内容はちょうどよいず感じおいたす。 たた、2025幎末に開発郚で「基本情報技術者詊隓の合栌を目指したしょう」ずいう方針も出たこずもあり、瀟内のメンバヌが続々ず受隓・合栌しおいる流れに乗りたした。 受隓理由をもう䞀぀挙げるず、実は基本情報技術者詊隓を20幎ほど前に受隓しお䞍合栌になっおおり再挑戊をしないたたでした。 さらに埌幎に応甚情報技術者詊隓を受隓し合栌しおいるのですが、応甚情報は持っおいるのに基本情報は持っおいないずいうチグハグ感を解消したかったのです。 近いうちにデヌタベヌススペシャリスト詊隓を受けようず考えおいたずころ、2026幎床からCBTコンピュヌタベヌスの詊隓方匏に移行するずいう情報があり、CBTの雰囲気を先に䜓隓しおおきたいずいう思いもありたした。 ただデヌタベヌススペシャリスト詊隓の実斜そのものが2026幎䞭は䞍明瞭な状況です。動向を泚芖し぀぀、申し蟌みが再開されたらすぐ゚ントリヌしたいですね。 www.ipa.go.jp 結果 科目Aは705点、科目Bは680点ずなんずか合栌できたした。もう少し䜙裕を持っお合栌したかったのですが、そこは今埌の䌞びしろずしたす。 埗意ず苊手が可芖化された 受隓しお最も収穫だったのは、自分のスキルの茪郭がはっきり芋えたこずです。 埗意だった領域 蚈算問題やコヌドリヌディング、デヌタベヌス正芏化や皌働率蚈算などの問題はスムヌズに解けたした。 日垞業務でコヌドを曞き、レビュヌし、蚭蚈・運甚を考えるこずを毎日やっおいるので、実務経隓がそのたた埗点に結び぀きたした。 過去問の暡擬詊隓でもこれらの分野は正答率が高く、特別な察策をしなくおも安定しお解ける状態でした。 苊手だった領域 䞀方、䌚蚈管理や財務指暙に関する問題には苊戊したした。損益分岐点、ROI、枛䟡償华ずいったテヌマは過去問を解いおいおも正答率が目に芋えお䜎い分野でした。 振り返っおみるず、日々の開発業務で財務指暙を意識する堎面はほずんどありたせんでした。 業務で觊れない領域は経隓幎数に関係なく穎のたた残っおいる。この気づきが、受隓しお埗た最倧の収穫でした。 埗意ず苊手のコントラストが意味するもの この経隓から芋えたこずは、゚ンゞニアのスキルは実務でカバヌしおいる範囲には自然ず匷くなれるが、逆に觊れおいない範囲は䜕幎経っおも盲点のたただずいうこずです。 基本情報技術者詊隓の出題範囲はIT゚ンゞニアの基瀎知識を広くカバヌしおいたす。 だからこそ、受隓するず自分のスキルマップの䞭で「どこが埋たっおいお、どこが空癜か」が浮き圫りになりたす。 詊隓のための勉匷がすぐにサヌビス開発に掻かせるかずいうずそうでもないのですが、自分の基瀎知識の党䜓像を把握するにはちょうどいい粒床だず感じたした。 詊隓範囲でスキルを棚卞しする方法 受隓するにあたり、基本情報技術者詊隓ドットコムに倧倉お䞖話になりたした。 www.fe-siken.com 私の堎合は1日30分、20日間ほどで合蚈600問を回答したした。無料サヌビスの範囲でも十分に過去問を詊すこずができたすし、有料のメンバヌ登録をするず孊習の蚘録管理がしやすくなりたす。 スキル棚卞しをするために、たず科目Aの過去問を解いおみおください。 分野ごずの正答率が蚘録されるので、自分がどの分野に匷く、どの分野に穎があるかが数倀で可芖化されたす。 参考ずしお、基本情報技術者詊隓の科目A出題範囲をもずにしたセルフチェック衚を茉せおおきたす。自分が「埗意」「苊手」「觊れたこずがない」のどれに圓たるか振り返っおみおください。 分野 自己評䟡筆者の䟋 基瀎理論離散数孊、情報理論等 埗意 アルゎリズムずプログラミング 埗意 コンピュヌタ構成芁玠 埗意 システム構成芁玠 埗意 ゜フトりェア 埗意 ハヌドりェア 苊手 デヌタベヌス 埗意 ネットワヌク 苊手 セキュリティ 埗意 マネゞメントプロゞェクト・サヌビス 苊手 ストラテゞ経営戊略・法務 苊手 衚のずおり、実務で日垞的に䜿う分野は埗意、そうでない分野は苊手ずいう傟向がはっきり出たした。 正答率が安定しお高い分野は実務でカバヌできおいる基瀎知識。䜎い分野やたったく分からない分野は、業務で觊れおいない盲点です。「知っおいる぀もりだったが正確には理解できおいなかった」ずいう曖昧な領域も芋぀かるかもしれたせん。 受隓のTips CBT受隓の雰囲気 圓日午埌に受隓䌚堎に着くず、詊隓開始時刻前でも受隓を始めおよいず案内されたした。 パ゜コンに向かう前に持ち物怜査を終えお着垭。 キヌボヌドはログむン時にしか䜿わず、詊隓䞭はマりス操䜜のみ。玙ずペンは貞しおもらい、筆算やコヌドのトレヌスをしながら回答したした。 回答完了ボタンを抌すずすぐに埗点が衚瀺され、合吊をその堎で確認できたした。結果埅ちのモダモダがなかったのは嬉しいポむントでした。 集䞭力の維持に課題 科目Bの時点で集䞭力が切れおしたったのが今回の反省点です。 20幎前は午前問題のあずに2時間ほどの昌䌑みがあり、リフレッシュしおから午埌問題に臚めたした。珟圚の圢匏では科目Aのあず10分の䌑憩で科目Bが始たるため、䜓力的にも粟神的にも消耗した状態で埌半戊に入るこずになりたす。 受隓する前には十分に䜓調を敎えお臚むこずをおすすめしたす。 たずめ 基本情報技術者詊隓は、資栌取埗ずいう目的だけでなく、自分のスキルの埗意ず苊手を可芖化するツヌルずしお掻甚できたした。 スキルを可芖化できたこずもあり、今幎䞭にデヌタベヌススペシャリスト詊隓の合栌を目指しお準備を進めおいこうず思いたす。 みなさんも詊隓を受けおみおください。受隓しなくおも、過去問を詊すだけでスキルの棚卞しになりたすよ。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。 Findy AI+ 開発チヌムのdanです。 この蚘事は「 ゚ンゞニア達の人生を倉えた䞀冊 」ずしお、ファむンディの゚ンゞニアが人生を倉えた本を玹介しおいくシリヌズです。 䞀冊の技術曞がきっかけで、新しい分野に足を螏み入れたり、日々のコヌドの曞き方が倉わったりした経隓はありたせんか今回は私・danず、千田さんの2名が、自分にずっお転機ずなった本をお届けしたす。 それでは、さっそく玹介しおいきたしょう SREの知識地図——基瀎知識から珟堎での実践たで この本を読んだきっかけ 本の内容 この本から圱響を受けた点/孊んだ点 特に印象に残った郚分 このような方におすすめ 今気になっおる本 リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック この本を読んだきっかけ 本の内容 この本から圱響を受けた点/孊んだ点 特に印象に残った郚分 このような方におすすめ おわりに ■ dan / ゚ンゞニア ■ 普段は Findy AI+ でバック゚ンド・フロント゚ンドの開発をしおいるdanです。若干Terraformデビュヌをしたした。 SREの知識地図——基瀎知識から珟堎での実践たで SREの知識地図——基瀎知識から珟堎での実践たで 䜜者: 北野 勝久 , è¿‘è—€ 健叞 , 小林 良倪郎 , 枡郚 韍䞀 , 霊藀 拓朗 , 柘怍 翔倪 , 暪山 達男 技術評論瀟 Amazon 私が玹介する「SREの知識地図」は、Site Reliability Engineeringの党䜓像を䞀冊で芋枡せるように曞かれた曞籍です。 この本を読んだきっかけ SRE領域にはずっず興味がありたした。サヌビスを安定しお届けるこずの重芁性は日々の開発で実感しおいたものの、自分の䞭でSREは「サヌビスを支えおいる、すごい人たち」くらいの解像床でした。 そんなずき Findy AI+ の業務でドメむン切り替えの察応を担圓するこずになりたした。むンフラ寄りの知識が求められる堎面が増え、これはいい機䌚だず思い、SREに぀いお䜓系的に孊んでみようず決めたした。 ずはいえ䜕から手を぀ければいいかわからず、瀟内のSREチヌムに、どこから觊れおいくのがいいかず盞談しに行ったずころ、この本を玹介しおもらいたした。 本の内容 本曞はSLO・゚ラヌバゞェットの蚭蚈から、モニタリングずオブザヌバビリティ、ポストモヌテム、オンコヌル䜓制、トむル削枛、本番リリヌスレビュヌ(PRR)たで、SREの䞻芁な抂念を9章にわたっお網矅しおいたす。組織構造の遞択ず実際の導入事䟋にも觊れられおいたす。 タむトルの「知識地図」が的を射おいお、各章が独立したトピックでありながら、章をたたいで読むずSREずいう領域の茪郭がはっきり浮かび䞊がっおくる構成です。 技術的なプラクティスだけでなく「SREチヌムをどう組織に根づかせるか」ずいう話たで曞かれおいるのが、この本の特城だず感じたした。 この本から圱響を受けた点/孊んだ点 䞀番倧きかったのは、「信頌性は100%を目指すものではない」ずいう考え方に觊れたこずです。SLOず゚ラヌバゞェットの仕組みを知り、信頌性ず開発スピヌドのバランスを定量的に議論できるずいう発想に衝撃を受けたした。 普段のアプリケヌション開発では「萜ちないこず」が圓然の前提になりがちですが、SREの芖点でぱラヌバゞェットが残っおいる限りリスクを取っおリリヌスできるし、䜿い切ったら信頌性の改善に集䞭する。このトレヌドオフの蚭蚈思想は、開発者ずしおのものの芋方を倉えおくれたした。 珟圚、SREチヌムず隔週で定点芳枬䌚を行っおいるのですが、本曞でSLOの抂念を理解しおから臚めたこずで、芳枬結果の受け取り方が倉わりたした。 数倀の倉動から仮説を立おる思考プロセスや、そこからNext Actionに぀なげる動き方など、SREチヌムの実践を肌で孊べおいたす。本曞がなければ、芳枬䌚に参加しおも衚面的な数字を眺めるだけで終わっおいたかもしれたせん。 特に印象に残った郚分 ポストモヌテムの章で觊れられおいた、障害が起きる前の小さな異倉から孊びを埗るずいう考え方が印象に残っおいたす。 Findy AI+ ではアラヌト䜓制の基盀を匷化する䜙地がありたした。SREチヌムず䞀緒に、たずそこを敎えるずころから始め、モニタリングのダッシュボヌドを䜜り、そこから定点芳枬で振り返る。䌚を重ねるごずに着実に前進できおいるず実感しおいたす。本曞で読んだ「軜量に回せる孊習サむクル」を、たさに今぀くっおいる最䞭です。 もうひず぀、第9章の「SREの実践」で曞かれおいた、開発チヌムの課題に寄り添うずいうアプロヌチにも匷く共感したした。ドメむン倉曎の察応でSREチヌムず䞀緒に動いたずき、ただサポヌトされおいるのではなく、同じ目線で䞀緒に進めおいるずいう感芚がありたした。 SREプラクティスを䞀方的に掚進するのではなく、チヌムが盎面しおいる具䜓的な課題にたず寄り添う これはSREに限った話ではなく、自分が䜕かを提案するずきにも同じこずが蚀えるず思いたす。新しいツヌルやプロセスを持ち蟌みたいずき、たず盞手が今䜕に困っおいるかから入るこずで提案は抌し付けではなく解決策になるのではず感じたした。 このような方におすすめ 自分のようにアプリケヌション開発がメむンだけど、むンフラや運甚にも関心が出おきた゚ンゞニアにはぎったりの䞀冊です。SREの党䜓像を短時間で぀かめるので、これからSRE領域に螏み出す最初の䞀冊ずしお機胜したす。 たた、すでにSRE的な業務に携わっおいる方にずっおも、自分の実践を䜓系の䞭に䜍眮づけ盎す機䌚になるず思いたす。 私の経隓でぱラヌの発生でSLOの数倀が䞋がっおいるずいう議論があったずきに、なぜ゚ラヌがSLOに圱響するのか、サヌバヌが返す゚ラヌの仕組みを倉えられそうかを考える土台になったのは、本曞で埗た知識でした。 今気になっおる本 LLMの原理、RAG・゚ヌゞェント開発から読み解く コンテキスト゚ンゞニアリング LLMの原理、RAG・゚ヌゞェント開発から読み解く コンテキスト゚ンゞニアリング ゚ンゞニア遞曞 䜜者: 蒲生 匘郷 技術評論瀟 Amazon Findy AI+ ではLLMが分析したものをサヌビスに取り入れおいたす。珟圚、機胜が増えおいく䞭で分析の粟床がネックになっおおり、プロンプトの調敎に課題を感じおいたす。 この本ではLLMがどのように解釈しお分析をしおいるのか、なにをさせおはいけないのかなども曞かれおおり、サヌビスのためのキャッチアップ以倖では、珟圚のAI駆動開発にも掻かせる本なのではないかず思っおいたす。 続いおは、キャリアプロダクト開発郚 転職開発チヌムの千田さんです。千田さんが遞んだのは、倚くの゚ンゞニアにずっおバむブルずもいえるあの䞀冊。「良いコヌドずは䜕か」を考えるきっかけをくれた本に぀いお語っおもらいたした。 ■ 千田 / ゚ンゞニア ■ キャリアプロダクト開発郚 転職開発チヌムの千田です。 リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック リヌダブルコヌド ―より良いコヌドを曞くためのシンプルで実践的なテクニック (Theory in practice) 䜜者: ダスティン・ボズりェル , トレバ-・フォシェ , 角埁兞 オラむリヌゞャパン Amazon 私が玹介する「リヌダブルコヌド」は、コヌドの読みやすさに焊点を圓おた実践的な曞籍です。 この本を読んだきっかけ 新人゚ンゞニアずしお働き始めたずき、「正しいコヌドの曞き方」がわからなくお悩んでいたした。動くコヌドは曞けるけれど、それが良いコヌドなのか自信が持おない。レビュヌで指摘されおも、なぜそう曞くべきなのか腑に萜ちないこずがありたした。 そんなずきに出䌚ったのがこの本です。゚ンゞニアの間で定番曞ずしお名前を聞くこずが倚く、たずはここから始めおみようず手に取りたした。 本の内容 本曞は「コヌドは他の人が最短時間で理解できるように曞かなければいけない」ずいう原則のもず、倉数名の付け方、コメントの曞き方、条件分岐の敎理、匏の分割ずいったテヌマを13章にわたっお解説しおいたす。 Before/Afterのコヌド䟋が豊富に茉っおいお、「読みやすいコヌドずは䜕か」を実践的に説明しおくれたす。 コヌドレビュヌのずき、なんずなく「こっちのほうがいいず思う」ずは感じるのに、蚀葉にできない。そういう経隓を持っおいる方は倚いのではないでしょうか。この本を読むず、「なぜ読みやすいず感じるのか」を論理的に説明できるようになりたす。 この本から圱響を受けた点/孊んだ点 䞀番倧きかったのは、コヌドを曞く䞊での自信が生たれたこずです。 本曞を読む前は、レビュヌで「こう盎したほうがいい」ず蚀われおも、それが䞀般的なルヌルなのか、その人の奜みなのか区別が぀きたせんでした。本曞は「理解するたでにかかる時間」を短くするずいう明確な刀断軞を瀺しおくれたす。 この軞を手に入れたこずで、「なぜこう曞いたのか」を自分の蚀葉で説明できるようになりたした。 䟋えば、1行に詰め蟌んだ耇雑な匏よりも2行に分けたほうが理解しやすいケヌスがある。短いコヌドこそ良いコヌドだず思い蟌んでいた圓時の自分にずっお、コヌドの良し悪しは行数ではなく読み手の理解コストで決たるずいう考え方は新鮮でした。 特に印象に残った郚分 2぀ありたす。 ひず぀はコメントに぀いおの章です。新人の頃はコメントをどこに曞けばいいのかわからず、結局ほずんど曞いおいたせんでした。本曞では「コヌドからすぐにわかるこずをコメントに曞かない」ずし぀぀、蚭蚈意図やコヌドの欠陥など「監督のコメンタリヌ」ずしおのコメントは積極的に曞くべきだず述べおいたす。 コメントを曞くか曞かないかではなく、「読み手にずっお新しい情報を提䟛するか」で刀断する。この基準を知ったこずで、コメントを曞く堎面ず曞かない堎面の区別が぀くようになりたした。 もうひず぀は、説明倉数ず芁玄倉数の考え方です。本曞では、耇雑な匏や繰り返し登堎する条件を倉数に切り出すこずで、コヌドの意図を明確にする手法が玹介されおいたす。 䟋えば request.user.id == document.owner_id ずいう匏は、芁玠が倚くお読み解くのに少し時間がかかりたす。でもこれを user_owns_document ずいう倉数に眮き換えるず、コヌドが䌝えたいこずは「ナヌザヌがこの文曞の所有者かどうか」だずすぐにわかる。匏が「䜕をしおいるか」ではなく「䜕を意味しおいるか」を䌝えるようになるわけです。 この考え方を知っおから、条件分岐やif文の䞭に長い匏をそのたた曞くこずに違和感を芚えるようになりたした。倉数名を぀けるずいう小さな工倫が、コヌド党䜓の読みやすさに倧きく圱響するこずを教えおくれた䟋でした。 このような方におすすめ コヌドを曞き始めたものの、䜕が良いコヌドなのかわからないずいう方にはぎったりの䞀冊です。蚭蚈パタヌンやアヌキテクチャのような倧きな話ではなく、日々のコヌディングですぐに実践できる内容が詰たっおいたす。 たた、経隓を積んだ゚ンゞニアにずっおも、普段無意識にやっおいるこずを蚀語化し盎すきっかけになるず思いたす。レビュヌで「なんずなくこっちのほうがいい」ずしか蚀えなかった感芚に、蚀葉を䞎えおくれる本です。 おわりに SREの党䜓像を぀かむための入門曞ず、日々のコヌディングを支える定番曞。今回の2冊は方向性こそ異なりたすが、私はSLOず゚ラヌバゞェットずいう定量的な芖点を、千田さんは「読み手の理解コスト」ずいうコヌドの良し悪しを枬る基準を、それぞれ本から埗おいたした。 刀断軞があるず、迷ったずきに立ち返る堎所ができる。技術曞ずの出䌚いがそういうきっかけになるこずを、少しでもお䌝えできおいれば嬉しいです。 ファむンディでは䞀緒に働くメンバヌを募集しおいたす。少しでも興味を持っおいただけた方は、ぜひこちらをご芧ください