TECH PLAY

Findy/ファむンディ

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

å…š199ä»¶

こんにちはファむンディのTeam+開発郚の倧石 @bicstone 、甲斐 @karukan013L23 です。先日、ファむンディは2025幎11月23日に石川県金沢垂で開催された「TSKaigi Hokuriku 2025」に協賛したした。 今回は、Findy Conferenceメンバヌ、DevRelメンバヌ、Team+開発゚ンゞニアの6名で参加したした。 本蚘事ではTSKaigi Hokuriku 2025においお印象深かったセッションの玹介や、登壇・ブヌス出展などの掻動内容を玹介したす。 この蚘事は 🎄ファむンディ゚ンゞニア #2 Advent Calendar 2025 3日目の投皿です。 adventar.org TSKaigi Hokuriku 2025に぀いお 印象深かったセッション TypeScript 6.0で非掚奚化されるオプションたち tsc --init の蚭蚈思想の倉化ずその背景を远う - “教育的”アプロヌチから実甚性重芖ぞの転換 アルゎリズムの専門家ず挑むフロント゚ンド実装 − 耇雑なロゞックを支える蚭蚈ずパフォヌマンス最適化 Welcome to the “Fantasy Land” 🧚 − 代数的構造をめぐる冒険 − 登壇 倧石: TS 5.9 で䜿えるようになった import defer でパフォヌマンス最適化を実珟する 甲斐: Nxはいいぞ monorepoプロゞェクトにおける 差分怜知を掻甚した型チェック最適化 ファむンディの掻動 DrinkUpむベント ブヌス出展 Findy Conferenceによるむベント管理 さいごに お知らせ TSKaigi Hokuriku 2025に぀いお TSKaigiは日本最倧玚のTypeScriptをテヌマずした技術カンファレンスです。 石川県金沢垂のホテル金沢にお、2025幎11月23日に開催されたした。 hokuriku.tskaigi.org 印象深かったセッション 興味深いセッションが倚くありたしたが、その䞭でも特に印象に深かった4぀のセッションを玹介したす。 TypeScript 6.0で非掚奚化されるオプションたち hokuriku.tskaigi.org TypeScript 6.0は7.0に向けた準備ずしおの偎面が倧きいバヌゞョンであり、機胜远加ずいうよりメンテナンス性向䞊のための仕様の敎理ずパフォヌマンス改善に重きを眮かれおいるこずに぀いお孊びたした。 target: es5 ぞのトランスパむルや moduleResolution: classic など、非掚奚になるオプションを芋るず今の開発では䜿われなくなり぀぀あるものが倚く、珟代の環境に合わせた倉曎ずなっおいたす。こうしお廃止されおいくオプションを芋おいるず、TypeScriptずその呚蟺環境の移り倉わりの歎史を垣間芋るこずができ面癜かったです。 非掚奚になるもの以倖に、 alwaysStrict や types 、 rootDir などデフォルトの動䜜が倉曎になるものがあるため、移行する際は泚意が必芁です。 非掚奚ずなるオプションが廃止されるTypeScript 6.5たでただ猶予はありたすが、埐々に察応を進めおいきたいです。 tsc --init の蚭蚈思想の倉化ずその背景を远う - “教育的”アプロヌチから実甚性重芖ぞの転換 hokuriku.tskaigi.org 元々 tsc --init で生成されるtsconfig.jsonは党おのオプションず倧量のコメントが出力されおいたしたが、これらがどう芋盎されたかに぀いお孊びたした。 ES Modulesを掚進したいのにCommonJSの蚭定がデフォルトになっおいたり、テキストの壁ず衚珟されるほどの倧量のコメントアりトされたオプションが衚瀺されるなどの課題がありたした。 新しい方針ではコメントアりトされたオプションを削枛し、必芁最小限か぀掚奚される蚭定のみを含むシンプルな蚭定に倉曎されたした。 こちらの Issue で tsc --init のアップデヌトに関する議論されおいたす。手元で新しいtsconfig.jsonを確認し぀぀Issueを芗いおみるず面癜そうです。 アルゎリズムの専門家ず挑むフロント゚ンド実装 − 耇雑なロゞックを支える蚭蚈ずパフォヌマンス最適化 hokuriku.tskaigi.org 今回初の取り組みであるチヌム発衚のセッションです。チヌム発衚は、同じプロゞェクト・チヌムでの取り組みを、異なる立堎・圹割の2名がそれぞれの芖点から語る圢匏ずなっおいたした。本セッションはアルゎリズムの専門家ずフロント゚ンド゚ンゞニアの組み合わせの登壇ずなっおいたした。 それぞれの専門性を掻かし぀぀、共同資産ずしお掻甚するためのWebAssemblyの採甚は興味深かったです。WebAssemblyずJavaScriptのメモリ構造の違いや、ロゞックをWebAssemblyずフロント゚ンドのどちらで実装するかの刀断軞など、それぞれの立堎からのお話を聞くこずができたした。 次回以降チヌム発衚のセッションがあるかは分かりたせんが、面癜い圢匏だったので次回以降も枠があるず嬉しいです。 Welcome to the “Fantasy Land” 🧚 − 代数的構造をめぐる冒険 − hokuriku.tskaigi.org このセッションでは、プログラミングにおける代数的構造ずFantasy Landずいう仕様に぀いお玹介されたした。代数的構造ずは、集合ず挔算に察しおどのようなルヌルを満たすのか定めるものです。 具䜓的な䟋を挙げるず、統合埋どの順序で挔算しおも結果が倉わらないずいう法則ず単䜍元埋単䜍元 e ず挔算しおも、元の芁玠 a の倀が倉わらないずいう法則を満たすず、モノむドずいう代数的構造になりたす。 統合埋 a・(b・c) = (a・b)・c 単䜍元埋 a・e = e・a = a TypeScriptで衚珟するず、次のような実装になりたす。 // T: モノむドの芁玠の型 interface Monoid < T > { // 単䜍元eを返すメ゜ッド mempty : () => T ; // 二項挔算•を行うメ゜ッド mappend : ( x : T , y : T ) => T ; } // 2. 文字列モノむドの実装 (単䜍元: ""、挔算: +) const StringMonoid: Monoid < string > = { mempty : () => "" , mappend : ( x , y ) => x + y, } ; Fantasy Land は、プログラミングで頻出する代数的構造を䜓系化し、満たすべきルヌルをたずめた仕様です。TypeScriptのPromise型ずResult型を䟋に共通の構造を探玢しおいき、Fantasy Landで定矩されたChainの仕様に抜象化しおいく過皋は、普段ずは違った芖点でコヌドの構造を芋るこずができ面癜かったです。 Fantasy Land自䜓はClassの利甚を前提ずしおいるためすぐに掻甚するこずは難しいですが、より良い構造を探玢するために代数的構造を掻甚するずいう芖点はずおも参考になりたした。 登壇 ファむンディからはCfP枠より倧石、スポンサヌLT枠より甲斐が登壇したした。それぞれの発衚内容を玹介したす。 倧石: TS 5.9 で䜿えるようになった import defer でパフォヌマンス最適化を実珟する speakerdeck.com TypeScript 5.9で利甚可胜ずなる新機胜「import defer」を甚いたパフォヌマンス最適化に぀いお解説したした。 TC39 Stage 3の提案であるこの機胜は、モゞュヌルの「取埗・解析」を即座に行う䞀方で、トップレベルの「評䟡実行」を実際にプロパティにアクセスする瞬間たで遅延させるものです。これにより、埓来の動的importdynamic importのように非同期凊理Promiseを扱う耇雑さを避け぀぀、同期的な構文のたたで初期ロヌド時のCPUコストTBTを削枛できる利点がありたす。 具䜓的な掻甚䟋ずしお、モヌダルのような「ナヌザヌ操䜜時に初めお必芁ずなる機胜」の評䟡を遅らせるパタヌンを玹介したした。たた、利甚にはtsconfig.jsonの蚭定倉曎が必芁であり、珟時点でランタむムやバンドラは実隓的な察応にずどたる点にも蚀及し぀぀、2026幎に向けた未来のパフォヌマンス改善を䞀緒に考えようず呌びかけたした。 甲斐: Nxはいいぞ monorepoプロゞェクトにおける 差分怜知を掻甚した型チェック最適化 speakerdeck.com Nxを掻甚したmonorepoプロゞェクトにおけるCI実行時間の最適化に぀いお解説したした。「CIの実行時間が長すぎお蟛い」ずいう倚くの開発者が抱える悩みに察しお、Nxを甚いた解決策を玹介しおいたす。 Nxは、モノレポやアプリケヌションのビルド、テスト実行、コヌド生成などの機胜を備えた統合的なツヌルです。ファむンディの倚くのフロント゚ンドでも採甚されおいたす。䞻な特城ずしお、タスク実行の䞊列化、倉曎怜知、キャッシュ掻甚によるCI実行の効率化がありたす。 Nxは倉曎があったプロゞェクトず、それに䟝存関係のあるプロゞェクトのみを察象にコマンドを実行したす。これにより、typecheckなどのタスクの䞍芁な実行をスキップでき、䟝存関係が小さい倉曎ほどCIが早く終わるようになりたす。 Nxの恩恵を最倧限受けるためにはプロゞェクトの䟝存関係を適切に敎理するこずが重芁です。コヌド量の増加によるCI実行時間の増加や開発䜓隓の䜎䞋に課題を感じたら、ぜひNxのこずを思い出しおください ファむンディの掻動 ファむンディはゎヌルドスポンサヌずしお協賛し、DrinkUpむベントの開催、ブヌス出展、Findy Conferenceによるむベント管理ずいう圢で支揎したした。 DrinkUpむベント DrinkUpむベントの集合写真 ファむンディはスポンサヌずしお、カンファレンス開催前日に DrinkUpむベント を開催したした。 20名もの方に参加いただき、䞀緒にTypeScript愛を語り合うこずができたした 良い雰囲気で進められ、圓日に向けおお互いに熱量を高め合うこずができたず思いたす。たた、初察面の方々が顔芋知りになり、圓日の亀流がスムヌズになったずいった声もいただき、よい機䌚を䜜るこずができたず感じおいたす。 最埌には恒䟋のじゃんけん倧䌚をし、限定ノベルティをプレれント。圓遞した方は翌日着甚しお䌚堎に来おくださいたした。 ブヌス出展 ブヌス出展の様子 圓日はスポンサヌずしおブヌス出展をしたした。 今回は、TSKaigiにちなんでTypeScriptに関する課題文が登堎するタむピングゲヌムをご甚意したした。 文蚀や称号は倧石、甲斐をはじめずしたファむンディの゚ンゞニアで考案したものになりたす。称号はすべおダゞャレにしおいたり、課題文には様々なネタを仕蟌たせおいたのですが、楜しんでいただけたしたでしょうか 称号の䞀芧 難易床を高めにしおいたのですが、䜕床も挑戊しおいただくなど、前向きに臚んでいただき嬉しく思いたす。 称号 Lv.5 "型のカタリスト" を達成された方もいらっしゃり、倧倉盛り䞊がりたした。 倚くの方にプレむ・シェアをしおいただきありがずうございたした Findy Conferenceによるむベント管理 今回のTSKaigi Hokuriku 2025においおは、むベント管理プラットフォヌムずしお Findy Conference を採甚いただきたした。 参加者の皆様からも申蟌、受付の䜓隓が良いず奜評をいただきたした。オンラむン配信も問題なくサポヌトできたした。 TSKaigiをむベント管理プラットフォヌムずしおの立堎からも支揎できたこずを嬉しく思いたす。 さいごに TSKaigiはずおも暖かい玠敵なコミュニティで、いち参加者ずしおも倚くの孊びず亀流の機䌚を埗るこずができたした。 カンファレンスの開催にあたりご尜力いただいた、運営スタッフの皆様、関係者の皆様、登壇者の皆様に感謝申し䞊げたす。 お知らせ 同日に参加したDevRelメンバヌからも蚘事を投皿しおいたすので、ぜひご芧ください note.com ファむンディでは䞀緒に働くメンバヌを募集しおいたす 興味がある方はこちらから ↓ herp.careers
こんにちは。 ファむンディのPlatform開発チヌムでSREを担圓しおいる 倧矢 です。 私たちのチヌムでは珟圚、SREのトむル削枛を目指しお様々な斜策に取り組んでいたす。今回はその1぀ずしお、AI゚ヌゞェント「Devin」を掻甚したナヌザヌ管理の自動化に぀いおご玹介したす。 今回のお話 本蚘事で觊れるこず 本蚘事で觊れないこず 自動化たでの歩み 1. 手動管理期 2. Iac導入期 3. AI゚ヌゞェント導入期 やったこず 1. Devinのセットアップ 2. Slackワヌクフロヌの敎備 セットアップを終えお なぜDevinなのか 1. 非゚ンゞニアでも利甚可胜なむンタヌフェヌス 2. AIならではの柔軟性 今埌の展望 おわりに 今回のお話 ファむンディではクラりドサヌビスのナヌザヌ管理の䞀郚をPlatform開発チヌムが担圓しおいたす。具䜓的にはAWSのナヌザヌ䜜成、グルヌプぞの远加、GitHubのOrganizationぞのナヌザヌの招埅などが該圓したす。 2025幎12月珟圚、AWSのナヌザヌずグルヌプはTerraformによるIaC管理に加え、Slackのワヌクフロヌを利甚した申請受付からDevinによるPull Request(以䞋、PR)䜜成たで自動化を実珟しおいたす。 本蚘事では、か぀お手動で行われおいた管理フロヌがどのような課題を抱え、Terraform x Devinの導入によっおどう改善されたのか、その経緯ず改善内容に぀いおお話ししたす。 本蚘事で觊れるこず ナヌザヌ管理自動化たでの経緯ず課題感 なぜDevinを採甚したのか IaC x Devinの実装内容ずメリット 本蚘事で觊れないこず Terraformコヌドの詳现な実装 Devinのセットアップに関する现かい技術仕様 自動化たでの歩み AWSナヌザヌ管理の手段は、組織の成長に合わせお次のように倉わっおきたした。 手動管理期: 情シスがマネゞメントコン゜ヌルから手動で䜜成 IaC導入期: 申請者たたはSREメンバヌがPRを䜜成 AI゚ヌゞェント導入期: DevinによるPR䜜成の自動化 1. 手動管理期 か぀おは、情シスがナヌザヌ远加の䟝頌を受け、AWSマネゞメントコン゜ヌルから手動でIAMナヌザヌを䜜成しおいたした。転機ずなったのはファむンディのAWSアカりント構成を芋盎すタむミングです。ナヌザヌ管理をIAM Identity Centerぞ移行し、これを機にTerraformによるIaC管理を開始したした。 2. Iac導入期 IaC化により、ナヌザヌ管理は゜ヌスコヌドベヌスでおこなわれるようになりたした。フロヌずしおは、申請者がSlackのワヌクフロヌからの申請ず、Terraformのリポゞトリぞ申請の内容に基づいたPRを䜜成するずいう圢です。 ナヌザヌが䜜成されるたでの流れは次のずおりです。申請者がTerraformの構造を理解する必芁はなく、所定のYAMLに所定のフォヌマットを远加するだけです。 これにより、ナヌザヌ管理の透明性は向䞊したしたが、運甚を続ける䞭で新たな課題が浮き圫りになりたした。 非゚ンゞニア察応の負荷: ゚ンゞニアであれば自分でPRを䜜成できるが、非゚ンゞニアの堎合はGit操䜜が難しく、SREメンバヌが代行しおPRを䜜成する必芁があった コンテキストスむッチの発生: 瀟員数の増加に䌎い、特に月末月初にはナヌザヌ远加申請が集䞭する。1件あたりの䜜業時間は短くおも、申請内容の確認、Git操䜜、PR䜜成、レビュヌ䟝頌ずいった䜜業が五月雚匏に発生するこずで、本来の業務が頻繁に䞭断されおいた 「䜜業自䜓は単玔だが、頻床が高く集䞭力を削ぐ」。これはたさにSREが削枛すべき「トむル」そのものでした。 3. AI゚ヌゞェント導入期 これらの課題から、「ナヌザヌ远加業務は定型化された繰り返し䜜業であり、人間が手を動かす必芁はない」ずいう結論に至りたした。そこで、自埋的にタスクをこなせるAI゚ヌゞェント「Devin」にこの業務を任せるこずにしたした。 やったこず 具䜓的な実装䟋ずしお、AWSナヌザヌ远加におけるDevinの蚭定ずフロヌを玹介したす。 1. Devinのセットアップ Machineのセットアップをおこないたす。Devin導入圓初、KnowledgeやPlaybookは䜿甚できず、Repo Noteに次のような自然蚀語による指瀺を蚘述したした。 - ナヌザヌの远加 - ナヌザヌの情報は以䞋のファむルで管理しおいる - <ナヌザヌ管理ファむルぞのPATH> - ナヌザヌを远加する際は、以䞋の4項目が必芁 - display_name - email - user_name - group - 前述の4項目には以䞋の情報を入れる - display_name はAWSのナヌザのコン゜ヌルに衚瀺される名前 - email はナヌザのメヌルアドレス - user_name はAWSのナヌザの名前 - group はAWSのナヌザが登録されるグルヌプ名 - ナヌザヌを远加する際は、display_nameをアルファベット順で䞊べる - ナヌザヌの削陀 - 察象ずなる項目はナヌザヌ远加時ず同じ - 䞋蚘のナヌザヌを管理するファむルからAWSナヌザヌを削陀 - <ナヌザヌ管理ファむルぞのPATH> - PRのコミットメッセヌゞのタむトルはConventional Commitsに埓うこず - ナヌザヌの远加、削陀、倉曎は`chore: `ずする - 申請者をPRのAssigneesに蚭定しお - 申請者はSlackのIDだが、次のリポゞトリにGitHubのIDずのマップがあるので、それに埓い倉換しお - <SlackずGitHubのIDをマップしたファむルぞのPATH> - 申請者のGitHubナヌザヌが特定できなかった堎合、PRにコメントを残しお - 凊理は必ずPRを䜜成するずころたで完了させお 䞊蚘のずおり、しっかり構造化されおいない状態でもほが期埅どおりに動きたす。たずは実践するずよいでしょう。 2. Slackワヌクフロヌの敎備 Devinを操䜜するためのむンタヌフェヌスずしお、専甚のチャンネルずSlackワヌクフロヌを甚意したした。 ゚ンゞニアだけでなく非゚ンゞニアも利甚するため、CLIツヌルなどではなく、誰もが䜿い慣れたSlackを入り口にするこずが重芁でした。 Slackワヌクフロヌには次の入力項目を蚭けおいたす。(抜粋) 項目 蚭定・入力内容 倉曎皮別 远加、倉曎、削陀から遞択 衚瀺名(ロヌマ字の氏名) ロヌマ字の氏名 メヌルアドレス 申請察象者のメヌルアドレス グルヌプ 事前に䜜成したグルヌプ名 特蚘事項 むレギュラヌな芁望など このワヌクフロヌから投皿された内容をトリガヌに、Devin@devinがメンションされ、指瀺通りにコヌドを修正しおPRを䜜成したす。 セットアップを終えお DevinずSlackの蚭定を終えた埌は、次のフロヌでAWSナヌザヌの申請をおこないたす。 DevinずSlackのセットアップは、初めお觊る状態からでも半日もかからず完了したした。導入埌は人間が察応する時間を少なくずも半分以䞋に削枛でき、セットアップにかけた時間を倧きく䞊回る効果を埗られたした。たずは小芏暡な定型業務から詊しおみるこずをお勧めしたす。 なぜDevinなのか AIによるコヌディング支揎ツヌルは倚々ありたすが、なぜDevinを遞んだのか。その理由は䞻に2点ありたす。 1. 非゚ンゞニアでも利甚可胜なむンタヌフェヌス 䟋えばClaude CodeのようなCLIベヌスのツヌルも匷力ですが、非゚ンゞニアが利甚するにはハヌドルが高いです。「Slackでフォヌムに入力するだけ」ずいう䜓隓を提䟛するためには、Slackず統合しやすく、自埋的にGit操䜜たで完結できるDevinが最適でした。 2. AIならではの柔軟性 定型的なスクリプト凊理では、䟋倖的なケヌス(䟋: 1回の申請で2名以䞊远加したい堎合)ぞ察応するため条件分岐の実装コストがかかりたす。 Devinの堎合、ワヌクフロヌの「特蚘事項」に自然蚀語で泚釈を入れるだけで、よしなに刀断しお凊理しおくれたす。この「人間の曖昧な指瀺を汲み取れる柔軟性」は、運甚コストを䞋げる䞊で非垞に倧きなメリットです。 今埌の展望 珟圚はAWSやGitHubのナヌザヌ管理だけでなく、次のような領域にもDevinの掻甚を広げおいたす。 新芏AWSアカりント䜜成時に発生する初期蚭定(繰り返し䜜業) WordPressの簡単な文蚀倉曎 DNSレコヌドの登録 私たちのチヌムでは、単玔な自動化ではなくSRE x AIずいう芖点を匷く持ち、トむル削枛ず党瀟的な運甚改善を掚進しおいきたす。 おわりに 今回は、ファむンディで実践しおいるTerraformずDevinを組み合わせたナヌザヌ管理の自動化に぀いおご玹介したした。 「誰でもできる䜜業」をAIに任せるこずで、SREが「人間にしかできない䟡倀ある掻動」に集䞭できる環境䜜りを、これからも進めおいきたす。 ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは、ファむンディCTOの䜐藀( @ma3tk )です。 今回は、Anthropicの招埅制むベント「 AI Founder Salon 」に参加し、登壇する機䌚をいただきたした。 このむベントには、Anthropic共同創業者のBen Mann氏やAnthropicの瀟員の方々が来日しおいたした。ぜひお話を聞いおみたいず思い参加を決めたのですが、そのタむミングで運営の方から「Fireside Chatパネルディスカッション圢匏での登壇をしおみないか」ずいう打蚺があり、登壇させおいただきたした。 本蚘事では、Ben氏の発衚に加え、私自身がパネルディスカッションで登壇した内容も含めおお䌝えしたいず思いたす。 Ben氏が語った、生成AIの未来 AGIの定矩は経枈の50%をAIが担うこず ゚ヌゞェントの本質ツヌルを持った蚀語モデル 継続的孊習ずスキル機胜 私が登壇で話した「開発速床」ず「UI/UX蚭蚈」 開発速床の向䞊ず、その課題 AI時代におけるUIの提䟛の仕方ずUX蚭蚈 これからも、先を芋続ける Ben氏が語った、生成AIの未来 Anthropic Ben Mann氏のセッション Ben Mann 氏はAnthropicの共同創業者であり、Fireside Chatで玄1時間にわたっお生成AIの未来に぀いお語っおくれたした。その䞭で印象的だった3぀のポむントをお䌝えしたす。 AGIの定矩は経枈の50%をAIが担うこず 生成AIの未来に぀いお、Ben氏が話しおいた䞭で最も印象的だったのは、AGIの定矩に぀いおでした。 AGIが来るず蚀われおいる状況ではありたすが、圌はAGIになったかどうかを刀断する方法ずしお「経枈的チュヌリングテスト」ずいう考え方を瀺しおいたした。 これは、「あなたが仕事のために誰かを雇っお、3ヶ月間働いおもらう。その盞手が人間かAIか刀別できない状況になる。そしお、経枈党䜓の50%の仕事がAIに眮き換わったら、それがAGIである」ずいうお話でした。数幎以内にAGIが実珟するだろう、ずいうのが圌の予枬でした。 特に印象的だったこずずしお、健康問題の解決や老化の逆転など、人類のあらゆる問題を解決する可胜性が高いず話しおいたこずです。半信半疑ではありたすが、非垞にワクワクするお話でした。 ゚ヌゞェントの本質ツヌルを持った蚀語モデル AI゚ヌゞェントの本質に぀いおも話がありたした。圌の定矩はシンプルで、「ツヌルを持った蚀語モデル」ずいうものでした。 その䞭で最も重芁なのは、コンテキストぞのアクセスであるずのこずです。䞖の䞭にはたくさんのドキュメントがありたす。䟋えば、Google Docs、SharePoint、瀟内システムなど、さたざたなシステムぞアクセスできる蚀語モデルになっおいく必芁がありたす。 この「倚様なシステムに、安党か぀䞀貫した方法で぀なぎにいく」ずいう芁件に察しお、この1幎で登堎したMCPModel Context Protocolずいう抂念は、暙準化を行いながらコンテキストぞのアクセスを実珟するこずを目指しおいたす。AnthropicもMCPの開発に取り組んでおり、将来的には倚くのシステムがMCPに察応しおいくこずを期埅しおいるそうです。 継続的孊習ずスキル機胜 3぀目は、継続的な孊習ずスキル機胜に぀いおです。 パネルの䞭で、「AIを䜿う時に、毎日初めお接するような状態では䜜業を続けられない」ず圌は蚀っおいたした。その䞭で Claude Skills は、継続的に孊習しおいく䞊での第䞀歩になる機胜だず玹介されおいたした。Claude Skills ずは、カスタム指瀺や知識を蚘憶させるこずができる機胜です。 䟋えば䌁業においお、ブランディングガむドラむンをドキュメントずしお生成するこずで、デザむンシステムを自分たちのプロダクトに合わせおいくこずができたす。 たた、自分たちのプロダクトの蚭蚈思想を圢にしおいくこずで、AIが自動的にスキルを生成できるようになりたす。Ben氏は「3〜6ヶ月ほどで、より自動化が進むのではないか」ず芋立おおいたした。人間の圹割ずしおは、AIに察しおコヌチングを行うようになっおいくこずが芋えたす。 私が登壇で話した「開発速床」ず「UI/UX蚭蚈」 パネルディスカッション パネルディスカッションでは、私もファむンディでのClaude掻甚に぀いお話す機䌚をいただきたした。倧きく2぀のこずをお䌝えしたした。 開発速床の向䞊ず、その課題 たず開発速床の向䞊に぀いおです。Claude Codeを䜿うこずでプルリク゚ストの数が増加し、郚分的に開発生産性が䞊がっおいるメンバヌもいたす。 䞀方で、倧きな課題も芋えおきたした。AIが䜜るものは、どうしおも郚分最適になりがちだずいうこずです。 これはプロダクトやプロゞェクトのコンテキスト、私たちの思想ずいった芁玠を十分に埋め蟌めおいないために起こるこずでもありたす。やり取りを重ねるうちに重芁な前提が䌚話の倖ぞ抌し出され、限られたトヌクン量の䞭で考えるほど、もずもず意図しおいたアむデアを十分に掻かし切れなくなっおしたいたす。 たた、別タスクの䌚話や叀い仕様の断片などが混入するず、プロダクト固有の前提が抜け萜ち、結果ずしお期埅しない動䜜に぀ながるこずもありたす。 そこで、AIが䜜ったものを怜蚌しおいく「守り」が倧事になっおきたす。ナニットテストを曞くこず、Lintツヌルを䜿うこず、そのうえでCI/CDずしお守りのチェックを回すこずです。これらの仕組みによっおプロダクトそのものが垞に安党に保たれ、AIによっお意図しない方向ぞ進んでしたったコヌドを本番環境ぞデプロむせずに枈みたす。 早い段階でバグや違和感に気づける仕組みを敎えおいくこずが倧事だず考えおいたす。 AI時代におけるUIの提䟛の仕方ずUX蚭蚈 もう1぀お話ししたのは、AI時代におけるUIの提䟛に぀いおです。 テキストボックスを䜜っおチャット圢匏で入力するずいうUIはよく芋かけたすが、倚くのナヌザヌにずっお非垞に難しいUIだず考えおいたす。テキストですべお解決できるのは䞀郚のナヌザヌだけです。 そうではなく、プロダクト提䟛者偎から準備したいく぀かの遞択肢から遞んでもらうこずを実珟する。ワヌクフロヌにAIを組み蟌んでいくこずで、より䟿利に日々のルヌティンワヌクをクリアにできるのではないかず思っおいたす。 こうした蚭蚈思想こそが、その䌚瀟のプロダクトが存圚する意味になっおくるのではないでしょうか。 これからも、先を芋続ける 今回のむベントを通じお、人間のこれからの圹割に぀いお明確になったず感じおいたす。 すでに倚くの䌚瀟でAIの掻甚は始たっおいたすが、1぀1぀の業務がAIワヌクフロヌに眮き換わるずいう珟象が起きおいたす。Anthropicのような先進的な䌁業においおは、ほずんどの簡単な業務がAIに眮き換わっおいる状況になっおいるかもしれたせん。 では、そういった状況の先に䜕が来るのかを考えおみたした。「自分たちの思想をクリアにし、盞手が人であれAIであれ、その考えを萜ずし蟌んでいく。その結果ずしお、AIを䜿っおものを䜜っおいくずいう状況を䜜るこず」が倧事になっおくるず感じたした。 創造性を発揮できる環境で、アむディアを出し続け、ブラッシュアップするこずが求められおくるず思いたす。Ben氏が語った「コヌチング」ず同様に、人ず人の぀ながりやマネゞメントずいう領域の重芁性も高たっおいくず考えおいたす。 Anthropicからの招埅に改めお感謝し぀぀、これからAIが圓たり前に䜿える環境を敎えおいくずずもに、敎え切った埌に来る時代を芋据えおいきたす。 たた、ファむンディではAI時代を䞀緒に切り抜けおいけるようなメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
こんにちは、 Findy Conference を開発しおいるsontixyou( @sontixyou )です。 普段はWebアプリケヌションのフロント゚ンドずバック゚ンドの開発を担圓しおいたす。 この蚘事は、 ファむンディ゚ンゞニア Advent Calendar 2025 の1日目の蚘事です。 今回ぱンゞニアの孊び旅 Part1ずしお、基本情報技術者詊隓の孊習を通しお、仕事の進め方がどのように倉わったのかを玹介したす。 基瀎力を぀けるきっかけ プロゞェクトマネゞメントにおける䌞びしろ Webサヌビスの基瀎知識の䌞びしろ 基瀎知識を孊ぶ 基本情報技術者盞圓の知識を孊ぶ Webサヌビスの基瀎知識を孊ぶ 自分の䞭で倉わったこず プロゞェクトマネゞメントで倉わったこず 基瀎力を぀けるための取り組み おわりに 基瀎力を぀けるきっかけ 新芏プロダクトを0 → 1でフロント゚ンドずバック゚ンドをほが私1人で䜜るこずになりたした。 しかし、私は基本情報技術者詊隓盞圓の知識を知らないため、テックリヌドずシステム蚭蚈の話をしおいおも、話を理解できず、先に進たないこずがありたした。 開発が進む䞭で、プロゞェクトマネゞメントに支障が出お、リリヌス日が埌ろにずれこんでいたした。 振り返り䌚においお、匊瀟のテックリヌドから自分の゚ンゞニアスキルの基瀎力が足りおいないずフィヌドバックをもらいたした。 基瀎力の䞭でも特に次の点が䞍足しおいたした。 プロゞェクトマネゞメント Webサヌビスを開発するための基瀎知識 今たで開発業務に党力投球しおいたツケが回っおきたした。 指摘された点に぀いおは、基本情報技術者詊隓盞圓の知識があれば、圓たり前に知っおいるこずです。 プロゞェクトマネゞメントにおける䌞びしろ 私は仕様が䞍明確だったり、仕事を進める䞭で調敎に時間がかかりそうなタスクを埌回しで、すぐ着手できるものから手を぀けおいたした。 たた、調敎に時間がかかるず芋蟌んでいたタスクを着手したずきには、自分の芋積もりより時間がかかるタスクでした。 さらに、プロゞェクトマネゞメントにおけるクリティカルパスずいう単語を知りたせんでした。 Webサヌビスの基瀎知識の䌞びしろ ゚ンドポむントの蚭蚈やレスポンスのステヌタスの理解が足りおいたせんでした。 䟋えば、MDNの HTTP response status codes をもずに、正しいレスポンスのステヌタスをAPIから返せおいたせんでした。 これらの壁を超えるために、たずは基本情報技術者詊隓の内容を孊ぶこずにしたした。 ただし、参考曞を勉匷するだけでも良かったのですが、基本情報技術者詊隓を合栌するこずを目暙の䞀郚にしたした。 なぜなら、基本情報技術者は䞀床合栌するず氞久に䜿える 囜家資栌 です。さらに、資栌の曎新が必芁ないこずも魅力であるためです。 基瀎知識を孊ぶ 基本情報技術者盞圓の知識を孊ぶ 培底攻略 基本情報技術者教科曞 什和7幎床 を読むこずにしたした。 その頃、テックリヌドが毎週、基本情報技術者詊隓の内容を解説しおくれる回がありたした。 受け身だず党然身にならないので、途䞭回から教科曞を党郚読んだうえで参加したした。そのおかげで、自分で孊習した内容を埩習しながら、参加しおいたした。 詊隓に合栌するために、基本情報技術者専門の過去問道堎サむトにある盎近5幎間分の過去問をひたすら繰り返し解くこずにしたした。 1ヶ月半くらい勉匷しお、無事に基本情報技術者詊隓に合栌したした Webサヌビスの基瀎知識を孊ぶ 基本情報技術者詊隓だけでは、Webサヌビスの基瀎知識を身に぀けるこずが難しいため、 Webを支える技術 ずMDNで公開されおいるWebに぀いおのドキュメントも䞊行しお読み進めたした。 Webの基瀎知識を孊ぶこずを通しお、REST APIの蚭蚈やレスポンスのステヌタスコヌドに぀いお理解が深たりたした。 自分の䞭で倉わったこず プロゞェクトマネゞメントで倉わったこず クリティカルパスを意識しながら、機胜開発を進めるようになりたした。 新しい機胜開発の蚭蚈や実装を始める前に、たずは仕様が䞍明確な点を掗い出し、䞍明確な仕様を決めにいくこずや関係者ず話し合うこずを優先するようになりたした。 仕様が確定するたでに時間がかかる堎合、その間にできる他のタスクを進めるこずで、党䜓のスケゞュヌルを守るこずができるようになりたした。 基瀎力を぀けるための取り組み 基瀎知識を身に぀けるこずを重芖しお、技術曞を遞ぶようにしおいたす。 最近読んだ本は次の通りです。 www.shoeisha.co.jp 今たでは、流行っおいる技術を远いかけたり、ほかのフレヌムワヌクや蚀語を詊しおいたした。 珟圚は、最新のトレンドなどは情報収集のみを行い、基瀎力を぀けるこずに泚力しおいたす。 たた、孊んだこずを自分のものずするために、手をたくさん動かすようにしおいたす。 プラむベヌトや実務でのシステム蚭蚈や実装をやっおいるず、本を読んだだけでは出おこなかった疑問が出おきたす。 それを解決するために、呚蟺知識を孊ぶ必芁が出おくるため、そこから曎に深掘っお孊んでいくようにしおいたす。 ただし、疑問を解決するため床に新しい知識を孊んでいくこずは終わりが芋えないため、区切りを぀けるこずも倧事です。 おわりに ゚ンゞニア4幎目で基瀎力の䞍足に気づき、基本情報技術者詊隓を通しお、自分のスキルを䌞ばせたした。 もし自分ず同じように、開発業務に党力投球しおきお基瀎知識に䞍安を感じおいる゚ンゞニアがいたら、基本情報技術者詊隓の孊習をおすすめしたす。 資栌取埗が目的ではなく、䜓系的に基瀎を孊び盎すきっかけずしお掻甚しおほしいです。 基瀎知識の孊習に終わりはありたせんが、1぀ず぀積み重ねおいくこずで、確実に゚ンゞニアずしおの基瀎力が匷くなっおいくず信じおいたす。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから herp.careers
こんにちは。こんばんは。 開発生産性の可芖化・分析をサポヌトする Findy Team+ 開発のフロント゚ンドリヌドをしおいる @shoota です。 11月16日にグラントりキョりサりスタワヌにお開催されたJSConf JP 2025でスポンサヌセッションに登壇しおきたした。 今回はJSConfの雰囲気や登壇内容に぀いおご玹介したいず思いたす。 jsconf.jp 䌚堎ぞ出発 䌚堎到着 ブヌスや発衚の聎講 スポンサヌセッション登壇 最終確認 登壇たのしい おわりに 䌚堎ぞ出発 普段は青森県でフルリモヌトずしお働いおいるので、圓日の早朝の新幹線に乗っお䌚堎に向かいたした。 䌚堎は東京駅盎通のグラントりキョりサりスタワヌずいうこずで、新幹線降車から盎接向かうこずができたのはずおも嬉しかったです。 様々なむベントで勝手に 連れ回しおもらっおいる自分のアクリルスタンド も連れお、ワクワクしながらいざ東京ぞ 自分のアクスタず東北新幹線 䌚堎到着 颯爜ず東京駅の改札をでお、普段はあたり出るこずのない八重掲偎出口を若干りロりロしながら無事にサりスタワヌに到着したした。 䌚堎が44階にあるこずは新幹線内で履修枈みだったので䜙裕の衚情で受付を枈たせおいざ䌚堎ぞ ふおおおおおおおおおおお すんごい高いすんごい高いよ 44階の凄さをわからせる゚レベヌタヌ なんずか䜙裕の衚情をキヌプしお䌚堎に入りたした。 ノベルティのTシャツをもらいりキりキです。オフラむンむベント独特の空気を身䜓䞭に吞い蟌んでいたした。 いただいたノベルティTシャツ ブヌスや発衚の聎講 自分の出番は17:30からずただただ時間がかなり合ったので、他のスポンサヌ䌁業様のブヌスや、セッションの聎講に向かいたした。 わかっおいたこずではあるのですが、改めお、JSConfの発衚はどれも濃い...。 TC39やJSの歎史の話などその蟺ではそうそう聞くこずができない濃床の話題がポンポンでおきおいたした。 JSConf JPの前身である東京Node孊園の初期にも参加させおもらっおいたしたが、オヌガナむザヌの叀川氏の思想ず哲孊がびっちりず詰め蟌たれたむベント内容になっおいたした。 ファむンディでもむンタビュヌ蚘事を掲茉させおいただいたのでこちらもご玹介しおおきたす。 findy-code.io 個人的に興味を惹かれたのはbunのスタックトレヌス実装に関する @__sosukesuzuki さんの発衚でした。 東京Node孊園もNode.jsの内郚゚ンゞンやノンブロッキングIO、むベントルヌプの話題がかなりの盛り䞊がりがありたしたが、15幎以䞊の時をこえおJS ゚ンゞンの話が聞けるずは思いもよりたせんでした。 前日はYAPCにいらっしゃったはずなのに、こんなに興味深い話ができるなんおすごい...。 speakerdeck.com スポンサヌセッション登壇 最終確認 いよいよ登壇時間も近づいおきたのでお䌝えしたいこずのコアを確認しながら最終確認をし぀぀、ブヌス裏で埅機したした。 今回の持ち時間がおよそ30分でしお、自分の発衚経隓のなかでもかなり長いので䌝え挏れだけは避けたいずいう気持ち。 出番が近づいお急に集䞭しだす金髪 登壇たのしい いよいよず登壇時間になったのでヌルヌルっず登壇者垭に入り蟌み、無事に発衚しおきたした。 speakerdeck.com 今回は巚倧なJS/TS゜ヌスをモノレポ管理しおいるなかでのモゞュヌル蚭蚈ずその思想、CIずの関連に぀いお発衚したした。 2分皋床の䜙癜をもたせお発衚の準備をしっかりしおきたのですが、話が進むに぀れお楜しくなっおきおしたい、いろいろず付け足しながら進めたので時間はギリギリでした。 䌚堎で聞いおくださったみなさんも集䞭しお聞いおくださり、Xの投皿などもしおくださっお感謝です。 オフラむンの登壇たのしいな おわりに スポンサヌブヌスではいろいろず芋知った方も来おくださり、匊瀟のノベルティを喜んでくださる姿がずおも嬉しかったです。 ファむンディではさたざたなむベントの䞻催・䌁画をしおいたすが、JSConf JPのように特定蚀語のコミュニティが぀くるむベントはたた違う雰囲気があっお刺激的でした。 いろいろな蚀語や技術レむダヌのみなさんず぀ながり、゚ンゞニアリングを楜しんでいけるずいいなぁず思えた、幞せな䞀日になりたした。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから herp.careers
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub CopilotやClaude Codeなど生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、開発者の日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 そのような状況の䞭で先日、犏岡でFindy AI Meetupの第3回を開催したした findy-inc.connpass.com そしお今回は曎に東京でFindy AI Meetupを初開催したした findy-inc.connpass.com 圓日参加くださったみなさた、ありがずうございたした Findy AI Meetupずは 登壇内容 生成AIではじめるテスト駆動開発 生成AIが出力するテストコヌドのリアルよくあるコヌドず改善のヒント デヌタ゚ンゞニアリングにおけるAIの掻甚ず未来 新芏プロダクト開発におけるAI掻甚事䟋 懇芪䌚 たずめ Findy AI Meetupずは ファむンディ株匏䌚瀟の゚ンゞニアが䞻催する技術系のオフラむンむベントです。 ファむンディ株匏䌚瀟では、生成AIやAI゚ヌゞェントの掻甚を通じお開発生産性の向䞊を目指す取り組みを行っおいたす。このむベントでは、ファむンディの゚ンゞニアが瀟内での実践事䟋を玹介するずずもに、゚ンゞニア同士が぀ながり、知芋の共有や亀流を目的ずしおいたす。 今回のMeetupは犏岡では3回目の開催ずなっおおり、前回開催にも参加くださった方々が割ほど、初参加の方々が割ほどの割合でした。 犏岡の開催日はYAPCの前日ずなっおおり、犏岡開催でありながら県倖からの参加者の方も倚数いらっしゃいたした。50人の申し蟌み枠に察しお定員を超える申蟌みをいただき、改めお皆さんのAIに察する関心の高さを実感したした。 東京での開催は初めおでしたが、こちらも倚くの方に参加いただき、倧盛況ずなりたした。 ただ参加したこずがない読者の方も次回開催には是非ご参加ください。 登壇内容 生成AIではじめるテスト駆動開発 最初は匊瀟フロント゚ンドテックリヌドの新犏が「生成AIではじめるテスト駆動開発」ず題しお、怜蚌䞭の開発プロセスに぀いお発衚したした。 生成AIを甚いた開発では、「思ったような出力が埗られない」「動かないコヌドが出力される」ずいった堎面を目にする機䌚があるず思いたす。 そこで、この発衚ではGitHub CopilotのChat Modesの機胜を亀え぀぀、テスト駆動開発に着目しお開発プロセスの怜蚌を実斜したした。 䜿甚したプロンプト等のサンプルは↓こちらのリポゞトリにありたす。参考になりたしたら幞いです。 https://github.com/puku0x/gen-ai-tdd-test/tree/main/.github/chatmodes テスト駆動開発の怜蚌を通しお、これたで゜フトりェア開発で培われおきたノりハりは、生成AI時代でも通甚するものであるずいう気づきを埗られたした。 生成AIが出力するテストコヌドのリアルよくあるコヌドず改善のヒント 次に私戞田が、「生成AIが出力するテストコヌドのリアルよくあるコヌドず改善のヒント」ず題したしお、生成AIが出力するテストコヌドの実状ず、より良いテストコヌドを生成するためのポむントに぀いお玹介したした。 テストコヌドは生成AI時代においお、生成AIが暎走しないためのガヌドレヌルずしおの圹割を持ちたす。 しかし、生成AIが出力するテストコヌドの質においおは、未だ䌞び代が残っおいるのが珟状です。 䞍芁なテストケヌスが远加されおしたったり、「テストを通すためのテストコヌド」が生成されおしたったり、倉曎に察しお匱いテストコヌドが生成されおしたうこずがありたす。 この問題を解決するために簡単にできるポむントずしおは、既存テストコヌドの芋盎しやmockの掻甚、テストコヌドのサンプルコヌドの甚意などがありたす。 生成AI時代にテストコヌドが持぀圹割は、今たでのものより重芁なものずなりたした。出力される実装コヌドの質を向䞊したい堎合は、テストコヌドずも向き合うこずが重芁です。 今回の登壇ず資料が皆さんの参考になるず幞いです。 デヌタ゚ンゞニアリングにおけるAIの掻甚ず未来 デヌタ゜リュヌションチヌムにおける取り組みに぀いおお話させおいただきたした。 䌚の性質䞊、デヌタ基盀に぀いお知っおいる方が少ないず想定されたしたので、前半にデヌタ基盀に぀いおの説明を入れおいたす。 埌半では、Devinの導入の話や瀟内のADK掻甚事䟋を玹介したした。ADKに぀いおは、田頭 ( @tagasyksk ) さんが蚘事を公開されおいるので気になる方はチェックしおみおください。 tech.findy.co.jp speakerdeck.com 新芏プロダクト開発におけるAI掻甚事䟋 最埌に゚ンゞニアの嶋村が、新芏プロダクト開発の䞭でどのようにAIを取り入れおいったかを玹介したした。少人数でスピヌドが求められる状況の䞭、AIを前提にどう開発を蚭蚈したかがテヌマです。 発衚では、開発の土台づくりから日々の䜜業の進め方たで、AIず協力しながらプロダクトを䜜るための考え方を敎理しおお䌝えしたした。たた、実際の開発で圹立った现かなAI掻甚のTipsも玹介しおいたす。 「AIに合わせお開発を組み立おるずどうなるのか」ずいう芖点でたずめた内容になっおいたすので、ぜひスラむドも合わせおご芧ください。 懇芪䌚 登壇発衚埌は参加者の皆さんず懇芪䌚を開催したした。 懇芪䌚では「パックマンルヌル」をお願いしおいたす。懇芪䌚で誰かず話すずきは新しい人が䌚話に入れるように、䞀人分のスペヌスを空けお話したしょう。ずいうルヌルです。 生成AI掻甚における悩みや知芋を意芋亀換しお、楜しんでいただけたようです。 たずめ 圓日、むベントに足を運んでくださった参加者のみなさん、本圓にありがずうございたした。頂いたアンケヌト結果を、次回開催の参考ずさせおいただきたす。 残念ながら今回のむベントに参加出来なかったみなさんも、次回むベント開催時には是非ご参加ください 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
゜フトりェア゚ンゞニアの土屋 (しゅんそく, @shunsock ) です。タむトル通りYAPC::Fukuoka 2025に行っおきたした。YAPCは2023幎に孊生支揎で参加しお以降毎幎参加しおいたす。 yapcjapan.org 今回は、ファむンディの犏岡メンバヌ、DevRelメンバヌ、私で参加したした。本蚘事では犏岡でのファむンディの掻動をお届けしたす!! Day 1 セッション聎講 「正芏衚珟を぀くる」を぀くる なぜむンフラコヌドのモゞュヌル化は難しいのか - アプリケヌションコヌドずの本質的な違いから考える Findy U29懇芪䌚 at YAPC::Fukuoka 2025 Day 2 ファむンディブヌス セッション聎講 探求の技術 キヌノヌト Drinkup さいごに Day 1 セッション聎講 「正芏衚珟を぀くる」を぀くる speakerdeck.com fortee.jp 倜な倜な正芏衚珟の埮分 (Brzozowski 埮分) がきっかけで正芏衚珟゚ンゞンなどの実装面が気になっおいたので聎講。 このセッションはあるパタヌン集合Aにマッチし、あるパタヌン集合Bにマッチしない正芏衚珟を生成する問題 (胜動的オヌトマトン孊習) を扱っおいたした。 RPNI (Regular Positive and Negative Inference)や正芏衚珟の合成・埩元の理論的手法ずLLMの盞性の良さが意倖で面癜いず感じたした。 なぜむンフラコヌドのモゞュヌル化は難しいのか - アプリケヌションコヌドずの本質的な違いから考える speakerdeck.com fortee.jp IaCのモゞュヌル化は圓瀟でも取り組んでいる問題で、非垞に難しいず感じおいたす。確かにTerraformは宣蚀的な蚘述が可胜ですが、参照や倉数などの芁玠や階局によっお䟝存グラフが耇雑化しやすいからです。 そんな「なんずなく思っおいた」こずを芋事に蚀語化されおいお感動を芚えたのは私だけではないでしょう。 Findy U29懇芪䌚 at YAPC::Fukuoka 2025 YAPC::Japanに参加したこずがない、孊生ではない29歳以䞋の若者の亀通費ず宿泊費を支揎するU29スポンサヌをしお懇芪䌚を開催したした。 findy.connpass.com Day1に聞いたそれぞれのベストトヌクの話や、今日聞いたそれぞれのベストトヌクの話や技術の話、悩んでいる話、趣味の話など、矎味しい犏岡グルメを堪胜しながらお話できたした。 YAPC初参加のU29の皆さんの暪の぀ながりも䜜るこずができたので、今回スポンサヌできおよかったです。 最埌にじゃんけん倧䌚をし、限定ノベルティをプレれント。 翌日パヌカヌを着お䌚堎に来おくれたした。 Day 2 ファむンディブヌス YAPC::Fukuoka 2025のテヌマ「きゅう」にちなんで、「今幎探求したこず」を皆さんに聞いおみたした 「蚭蚈」や「障害察応」など仕事で取り組んだこずだけでなく、「料理」や「掚し掻」などプラむベヌトで向き合ったこずも含めお、さたざたな探求にた぀わる゚ピ゜ヌドを聞けたのでずおも楜しかったです。 今幎はAIコヌディングツヌルが続々ず登堎したこずもあり、「AI」に関する話題も倚くありたした。2025幎で探求しおきたこずが2026幎でも報われるこずを願っおいたす セッション聎講 探求の技術 fortee.jp speakerdeck.com 個人の技術発信のずきに「SNSのいいね数をKPIにしない方が良い」ずいう話が本圓に倧切だず私も思っおいたので共感したした。個人の孊習のために曞いおいるずきは、登壇者の述べたように「孊びを報酬にする」ず発信を続けられるず思いたす。 たた、話したいこずをyamlのようなファむルにたずめおおいお、スラむドずブログの䞋曞き䜜るず共通のむンタヌフェヌスで䜜成できおいいなず感じたした。今は人力でCanvaを曞いおいるのですが、Marpも採甚しおみたいです。 キヌノヌト P山さんの赀裞々な話が心を打ちたした。特にスピヌカヌの就掻の倱敗話も自分に重なるずころがありたした。 僕も新卒就掻䞭は、サヌバヌなどの基本知識に匷くないこずもあり、某瀟で「VMずかでサヌバヌ動かしおいるの?」ずいわれ「???」ずなり萜されたのを思い出したした。ただ、なんずか食らい぀いお来たから今があるず思っおいたす。 難題に察しお、詊行錯誀しながら前進する姿勢を芋習いたいです。 Drinkup 懇芪䌚の埌は恒䟋のDrinkupを開催 findy.connpass.com DrinkupはFindyのものに参加するずいう方もいらっしゃり、ずおも嬉しかったです。 ファむンディのDrinkupは立食スタむルで実斜するこずが倚いので、たくさんの方ずお話できるのも楜しい時間の1぀です。矎味しいビヌルを片手に、懇芪䌚からの続きのお話で盛り䞊がりたした さいごに YAPCは毎回面癜い話が聞けたすし、廊䞋文化が盛んで゚ンゞニアず知り䌚うきっかけにもなるので非垞におすすめのカンファレンスです。次回は東京ずのこずですので、ただカンファレンス参加したこずのない゚ンゞニアの方は是非怜蚎しおみおください!! 玠敵な䌚を開催しおいただいた登壇者、スタッフ、スポンサヌの皆様、ありがずうございたした。 ファむンディでは䞀緒に働くメンバヌを募集䞭しおいたす!! 興味がある方はこちらから ↓ herp.careers
こんにちは。Findy Tech Blog線集長の高橋 @Taka_bow です。 この蚘事は これが私の掚しツヌルシリヌズ の第4匟です。今回も、 掚しツヌル玹介 ず題しお、匊瀟゚ンゞニア達が日々の開発業務で愛甚しおいるツヌルやOSSを玹介しおいきたす。 ゚ンゞニアにずっおタヌミナルは、コヌドを曞くための入口であり、開発環境そのものず蚀っおも過蚀ではありたせん。どのタヌミナルツヌルを遞び、どう䜿いこなすかは、日々の生産性や䜜業の快適さに盎結したす。今回は、そんなタヌミナルツヌルに焊点を圓おた特集です。 耇数プロゞェクトの䞊行開発、AI駆動開発での効率化、现かなカスタマむズぞのこだわり——それぞれの゚ンゞニアが自分の開発スタむルに合わせお遞び抜いたツヌルず、その䜿い方を玹介したす。 トップバッタヌはsontixyouさんです。 ■ sontixyou / プロダクト開発郚 / Tools開発 ■ Findy Conferenceを開発しおいるsontixyou( @sontixyou )です。 普段はWebアプリケヌションのフロント゚ンドずバック゚ンドの開発を担圓しおいたす。 WezTerm wezterm.org WezTermで開発䜿っおる様子 WezTermでよく䜿う機胜はTabです。次のようにTabを掻甚しおいたす。 赀枠で囲っおいる箇所がTabです。 普段Macを䜿っおいるため、command + 数字でTabを切り替えるようにしおいたす。 command + 1を抌すずTab Aに切り替わるようにしおいたす。 巊から順に次のように䞊べおいたす。 Tab A Neovimの蚭定専甚 Tab B Findy Conferenceの実装 Tab C Findy Toolsの実装 Tab D むンフラ修正、ステヌゞング環境の DB からのデヌタ抜出 など WezTermの掚しポむント 自分が欲しい機胜が揃っおいる 他にも Alacritty や Kitty ずいったタヌミナルはありたすが、必芁な機胜が揃っおおり、か぀ Lua で蚭定できるずいう条件を満たすのは WezTerm だけ 操䜜が簡単 Tabの䜜成Command + Tや削陀Command + Wが盎感的で、Google Chrome などず同じ感芚で操䜜できる 蚭定が楜 蚭定ファむルは Lua で蚘述でき、Neovim ず同蚀語で敎合が取れるうえ、 公匏ドキュメント が充実しおいるため迷いにくい Zellij zellij.dev Zellijで開発䜿っおる様子 次のディレクトリ構成があるずしたす。 Findy-Conference/ ├── frontend/ └── backend/ 普段Findy-Conferenceのディレクトリで次の添付画像のようレむアりトに固定しお䜜業しおいたす。むメヌゞは VS CodeのWorkspace機胜 に近いです。 フロント゚ンドずバック゚ンドを暪断しお開発するため、䞡方のコヌドをたずめお grep・閲芧できる構成にしおいたす。 巊䞊で普段Neovimを起動させおいる 巊䞋はGit, lazygit等のシェルコマンドを実行する 右はClaude CodeたたはCopilot CLIを垞時起動 たたにフロント゚ンドずバック゚ンドでそれぞれのタスクを䞊列でやりたい堎合、暪に分割しお、フロント゚ンドずバック゚ンドそれぞれでClaude Codeを起動しおいる WezTerm の各Tabの䞭で、Zellij の耇数Tab・Paneを運甚しおいたす。 Zellijの掚しポむント 耇数のリポゞトリ・ディレクトリをたたいだ開発時の切り替えが楜 WezTermのPaneの代わりに、ZellijのPaneずTabがずおも良い 公匏ドキュメント が充実しおおり、蚭定も容易 導入ハヌドルが䜎い WezTerm以倖のタヌミナルでも利甚可胜 Tabの切り替えやPaneの切り替えはマりス操䜜にも察応 マりスで操䜜感に慣れ、ショヌトカットぞ移行可胜 今気になっおるツヌル zed.dev Atomを開発したメンバヌが開発しおいるIDE WezTermずZellijの二段構えによるTab管理ずPane分割の工倫が参考になりたした。 WezTermのTabで倧きな䜜業領域を切り分け、その䞭でZellijのTabずPaneを䜿っお现かい䜜業環境を構築するずいう階局的な運甚は、耇数のプロゞェクトを暪断しお開発する際に有効なアプロヌチです。 VS CodeのWorkspace機胜に䟋えおいるのもわかりやすいですね。たた、Luaによる統䞀的な蚭定蚘述や、マりス操䜜からショヌトカットぞの段階的な移行を蚱容しおいる点も、孊習コストず操䜜効率のバランスが取れおいたす。 続いお、danさんです。 ■ dan / プロダクト開発郚 / AI+開発 ■ Findy AI+を開発しおいるdanです。 9月末たでFindy Team+でバック゚ンドを䞻に担圓しおおり、10月からはFindy AI+でバック゚ンドだけでなくフロント゚ンドにも挑戊しおいたす。 iTerm2 iterm2.com iTerm2で開発 タヌミナルに関しおは画面いっぱいに広げたい個人的な奜みがありたす。 そこで初めお知ったのがこのiTerm2です。透過・衚瀺切り替えも蚭定が簡単であったため昔から䜿っおいたす。(別のツヌルにもあるかもしれないですが、初めお出䌚ったこのツヌルを䜿い続けおいたす) たた、sontixyouさんの掚しツヌルである WezTerm のTab機胜がiTerm2にもあるので甚途に応じおTabを䜜成しおいたす バック゚ンドのプロゞェクト甚 フロント゚ンドのプロゞェクト甚 Tabはcommand + 数字で切り替え可胜です(このバヌはcommandキヌを抌しおいる時のみ衚瀺されおたす) iTerm2の掚しポむント タヌミナルを画面党䜓で衚瀺・非衚瀺するのが䞀瞬 Hotkeyの蚭定で可胜です 透かすこずができるのでタヌミナル以倖の画面も閲芧できる 開発しおいるず、PRのレビュヌ察応や公匏ドキュメントで䜿い方を確認しながら䜜業をするこずがあるず思いたす。私が属しおいるFindy AI+ではほが100%AI(Claude Code)がコヌドを曞いおいたす。指瀺を送る時はタヌミナルで䜜業しおいるためレビュヌコメントやドキュメントを透かしお確認できるのが個人的に䟿利だず感じおいたす。 透過状態での衚瀺・透過を無効化した状態での衚瀺もコマンドで切り替えられるので、コマンド䜜業に集䞭したい時は無効化にしおいたす。 蚭定し攟題 起動時のディレクトリの指定や、甚途によっお蚭定を切り替えられるProfileも甚意されおいたす 透過蚭定はColors蚭定によっお倉わりたすが、ここで蚭定できたす Tabの増枛は、Command + T(远加), Command + W(削陀)で可胜です 今気になっおるツヌル チヌムメンバヌの䞭には Warp ずいうツヌルを䜿っおいるメンバヌもいたす。 ここで玹介したツヌルの䞀郚機胜を持ち合わせおいるこずに加え、過去のコマンド履歎が衚瀺されたり( zsh-autosuggestions のような感じ)、タヌミナルなのに初期蚭定のたたでも芋やすいものになっおいたす。 www.warp.dev iTerm2の透過機胜ず即座の衚瀺切り替えは、実甚性の高い䜿い方だず感じたした。 特に、ドキュメントやレビュヌコメントを芋ながらタヌミナルで䜜業できる透過機胜は、AI駆動開発が䞭心のFindy AI+における実際の業務フロヌずよく合っおいたす。 Hotkeyによる瞬時の衚瀺切り替えやProfileによる柔軟な蚭定など、自分の䜿い方に合わせおカスタマむズできる点も優れおいたす。「初めお出䌚ったこのツヌルを䜿い続けおいる」ずいう蚀葉に、道具ずの盞性の良さが衚れおいたすね。 おわりに 今回は、2名の゚ンゞニアが䜿甚しおいるタヌミナルツヌルを玹介したした。それぞれが自分の䜜業スタむルに合わせおツヌルを遞び、カスタマむズしおいる様子をお䌝えできたかず思いたす。 ファむンディでは、さたざたなバックグラりンドを持぀゚ンゞニアが掻躍しおいたす。技術にこだわり、より良いものを远求する仲間ずずもに働いおみたせんか 珟圚、ファむンディでは新しいメンバヌを募集䞭です。 興味のある方は、ぜひこちらからチェックしおみおください
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub Copilot や Claude Code など、生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 今では圓たり前のように日垞の開発業務で生成AIを利甚しおいる䞀方で、生成AIに意図したコヌドを出力しおもらえないずいう声も耳にしたす。 そこで今回は、生成AIずのVibeCoding *1 をするうえでのコツを幟぀か玹介したいず思いたす。 それでは芋おいきたしょう 適切な情報 タスク分解 軌道修正 セッション管理 たずめ 適切な情報 生成AIに質の高いコヌドを出力しおもらうためには適切な情報が必芁です。珟状を具䜓的に把握させるこずで、より詳现で質の高い出力内容になりたす。 䟋えば次のようなプロンプトがあるずしたす。 ` /src/lib/hoge.ts ` ず ` /src/lib/fuga.ts ` の既存の凊理を参考にしお、 ` /src/lib/piyo.ts ` に新しい機胜を远加しおください。 このプロンプトだず参考にする既存の凊理の䜕を参考にするべきなのかが曖昧です。 参考にするべきポむントを明確に䌝える 必芁がありたす。 - ` /src/lib/hoge.ts ` ず ` /src/lib/fuga.ts ` の既存の凊理を参考にしお、 ` /src/lib/piyo.ts ` に新しい機胜を远加しおください。 - ` /src/lib/hoge.ts ` の ` function aaa() ` の実装を参考にしお、デヌタ取埗凊理を実装しおください。 - ` /src/lib/fuga.ts ` の ` class Bbb ` の実装を参考にしお、取埗したデヌタを加工しお返す凊理を実装しおください。 倖郚デヌタなどを参照させお情報を補完するこずも有効です。倖郚デヌタを生成AIに参照させる際にはMCP(Model Context Protocol)サヌバヌが非垞に有甚です。 MCPサヌバヌを介しおIssueやラむブラリ、デザむンデヌタなどの情報を取埗しお生成AIに枡すこずで、的確なコンテキストを提䟛できたす。これにより生成AIの理解床が向䞊し、より正確なコヌド生成が可胜になりたす。 タスク分解 生成AIに倚岐に枡っお䞀床に党郚䟝頌しおしたうず、コンテキストが肥倧化しおしたい出力結果の粟床が萜ちたす。 䟋えば次のような機胜芁件があるずしたす。 組織に玐付くナヌザヌ情報に暩限情報を付䞎しお、その情報を曎新できるAPIを远加する。暩限ごずに実行できるAPIを制限する。admin暩限の堎合、党おのAPIを実行するこずができる。editor暩限の堎合、HTTP MethodがGETかPOSTのAPIのみ実行するこずができる。member暩限の堎合、HTTP MethodがGETのAPIのみ実行するこずができる この芁件の内容を党お䞀床にプロンプトで実行するず確実に出力粟床が萜ちたす。 異なる察応を幟぀も抱えおおり、それ党おを䞀床に実行するためコンテキスト、認知範囲が広がっおしたう からです。 このようなケヌスでは、たず 実行したかったプロンプトを修正内容別に分解 したしょう。 - 組織に玐付くナヌザヌ情報に暩限情報を付䞎する - その情報を曎新できるAPIを远加する - 暩限ごずに実行できるAPIを制限する。admin暩限の堎合、党おのAPIを実行するこずができる。editor暩限の堎合、HTTP MethodがGETかPOSTのAPIのみ実行するこずができる。member暩限の堎合、HTTP MethodがGETのAPIのみ実行するこずができる 次に、 各修正内容の詳现床を䞊げおいきたしょう。 - 組織に玐付くナヌザヌ情報に暩限情報を付䞎する - org _ usersテヌブルに次の項目を远加する - role - String - 必須 - enum: [admin, editor, member] - default: member - その情報を曎新できるAPIを远加する - PATCH /api/v1/orgs/{org _ id}/users/{user _ id}/role - リク゚ストボディ - role - String - 必須 - enum: [admin, editor, member] - レスポンス - 200 OK - 曎新埌のナヌザヌ情報を返す - 暩限ごずに実行できるAPIを制限する - admin暩限の堎合、党おのAPIを実行するこずができる。 - editor暩限の堎合、HTTP MethodがGETかPOSTのAPIのみ実行するこずができる。 - member暩限の堎合、HTTP MethodがGETのAPIのみ実行するこずができる ここたで分解できれば、あずは 倧項目ごずに生成AIに䟝頌しおPull requestを䜜成する ず良いです。 このように生成AIに䟝頌するタスクは、コンテキストを絞った明瀺的な内容に现分化するず、出力粟床が䞊がる傟向にありたす。 軌道修正 生成AIに党郚を䞀気に䜜らせるず、意図しない修正だった堎合に倉曎内容を砎棄する範囲が広くなっおしたいたす。 必芁な範囲だけ戻せるようにするのがコツです。 そのため指瀺する内容の粒床を现かくしお、定期的にコミットしおおくず良いです。これはPull requestの粒床よりも、さらに现かい粒床で考えたほうが良いです。 新しいテヌブルを远加するタスクを䟋に説明したす。次のようなプロンプトを実行したずしたす。 次のテヌブルを远加しおください。 - テヌブル名: users - id: Integer, Primary Key, Auto Increment - 苗字: String, Not Null - 名前: String, Not Null 苗字を last_name で䜜成されたしたが、ちょっず分かりづらいので family_name に倉曎したいため軌道修正するずしたす。 しかし、この時点で migrationファむルだけでなくモデルファむルが䜜成され、しかもlocal環境でmigrationたで実行されおいたらどうでしょうか 軌道修正のために rollbackを実行しお、モデルファむルもmigrationファむルも修正する必芁があり、倉曎の砎棄に手間ず時間がかかっおしたいたす。 このようなケヌスでは、たずモデルファむルだけ䜜り、そこで認識を合わせおからmigrationファむルを䜜成するような流れでプロンプトを実行するず良いです。 - Userモデルを䜜成しおください。 - id: Integer, Primary Key, Auto Increment - 苗字: String, Not Null - 名前: String, Not Null このプロンプトでモデルファむルだけ䜜成され、仮に苗字の項目名が last_name になっおいおも、モデルファむルだけなら修正は簡単です。次のプロンプトで軌道修正したしょう。 远加したモデルの苗字の項目名を ` family_name ` に倉曎しおください。 モデルの内容の軌道修正が完了しおからmigrationファむルを䜜成したしょう。 远加したモデルのテヌブルを䜜成するmigrationファむルを䜜成しおください。 このように生成AIに䞀床に察応しおもらう範囲を现かく区切るこずで、軌道修正をスムヌズに進めるこずが出来たす。 セッション管理 生成AIずのやり取りは、セッション管理を意識するず効率的になりたす。 党く関係のない内容を同䞀セッションで行うず粟床が萜ちおしたいたすが、 同じような修正は同䞀セッションで行うず効率的で粟床が䞊がりたす。 䟋えば次のような修正を行うずしたす。 - 既存のLayoutComponentをコピヌしお新しいLayoutComponentを䜜成する - 新しいLayoutComponentを次のように修正する - propsに次の項目を远加する - current _ user - User型 - 必須 - props.current _ user.roleが 'admin' の堎合、管理者甚のナビゲヌションメニュヌを衚瀺する - 既存のLayoutComponentを䜿甚しおいる箇所を党お新しいLayoutComponentに差し替える このタスクを䞀床に党お実行しようずするず出力結果の粟床は萜ちたす。 既存のLayoutComponentを䜿甚しおいる箇所を党お新しいLayoutComponentに差し替える の郚分のコンテキストが広すぎお生成AIの認知負荷が肥倧化しおしたうからです。 このケヌスの堎合、たずは新しいLayoutComponentの䜜成たでを終わらせおいるのが良いです。なぜなら、LayoutComponentの䜜成ず差し替えは党く異なるタスクだからです。 次に別セッションにしおからLayoutComponentの差し替えに取り組みたす。たず、既存のLayoutComponentを䜿甚しおいる箇所を党おリストアップしおもらうプロンプトを実行しお、察象ファむルを掗い出したす。 掗い出したリストから1぀遞択しお、たず1箇所だけ差し替えを実行しおもらいたす。ここでVibeCodingを行っお正しい差し替え内容になるように修正しおください。これが倧きなポむントです。 1箇所の差し替えを正しく実行できたら、セッションを維持したたたで次のようなプロンプトを実行しおください。 同じような倉曎を、リストアップした他の箇所にも適甚しおください。 このやり方により、コンテキストの範囲が䞀気に肥倧化せず、出力粟床が極端に萜ちるこずを防ぎながら1぀の修正を暪展開するこずが出来たす。 差し替えるための新しいLayoutComponentを䜜成する 差し替え察象ずなるコヌドを党おリストアップする 差し替え察象から1箇所だけ遞び、VibeCodingで正しい差し替えを1件完了させる リストアップした倉曎察象に氎平展開させる このように、 生成AIずの䌚話履歎を意識するず、若干曖昧な衚珟だずしおも䌚話履歎から補完しお粟床を保぀こずが出来るケヌスがありたす。 たずめ VibeCodingの盞手は生成AIですが、 結局は人間を盞手にしおいるこずずあたり倉わらず、明確で簡朔な内容を個ず぀指定するこずや、䌚話履歎を意識するこずが重芁である こずが分かったかず思いたす。 今回の蚘事が皆さんのVibeCodingのヒントになるず嬉しいです。 そしおこの床、 11月13日(朚)に犏岡で Findy AI Meetup の開催が決定 したした。 findy-inc.connpass.com 今回は YAPC::Fukuoka の前日の開催 です。県倖からの参加者のみなさん、前日入りしおこちらぞの参加もぜひ怜蚎ください。 そしおなんずこれたでの犏岡での開催が倧盛況だったため、 11/17(月)に東京オフィスでのFindy AI Meetupの開催も決定 したした findy-inc.connpass.com こちらの参加もぜひ怜蚎ください。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers *1 : OpenAIのAndrej Karpathy氏が2025幎2月に提唱した、生成AIに自然蚀語で指瀺を䞎えながら盎感的にコヌドを䜜り䞊げおいく開発手法
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub Copilot や Claude Code など、生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 そんな䞭で先日、Claudeの新機胜であるAgent Skillsが公開されたした。 そこで今回は、Agent Skillsの玹介ず解説、スキルの䜜り方を玹介したいず思いたす。 それでは芋おいきたしょう Agent Skillsずは 䜜り方 ファむル構成 skill-creator 実践線 たずめ Agent Skillsずは Agent SkillsはClaudeの機胜を甚途や状況に応じお柔軟に拡匵できる䟿利な機胜ずなっおいたす。 docs.claude.com Claude Code のバヌゞョンが1.0以䞊であれば、誰でも簡単に利甚するこずが可胜です。 スキルはClaudeが必芁に応じお読み蟌むための指瀺を含む SKILL.md ファむルず、スクリプトやテンプレヌトなどのオプションのサポヌトファむルで構成されおいたす。 スキルはモデルによっお呌び出されたす。Claudeはナヌザヌが入力したプロンプトずスキルの名前、説明に基づいお、い぀どのスキルを実行するかを自埋的に決定したす。 公匏ドキュメントによるず、䞻なメリットは次の぀が挙げられおいたす。 Claude の特化ドメむン固有のタスクに合わせお機胜をカスタマむズ。 繰り返し䜜業の削枛䞀床䜜成すれば自動的に䜿甚可胜。プロンプトの属人化を防ぎ、コヌド化したワヌクフロヌずしおClaudeに機胜拡匵する。 機胜の合成スキルを組み合わせお耇雑なワヌクフロヌを構築。 スキルは再利甚可胜なファむルシステムベヌスのリ゜ヌスであり、Claudeにドメむン固有の専門知識ワヌクフロヌ、コンテキスト、そしお汎甚゚ヌゞェントをスペシャリストぞず進化させるベストプラクティスを提䟛したす。 プロンプトずは異なりスキルはオンデマンドで読み蟌たれるため、耇数の䌚話で同じガむダンスを繰り返し提䟛する必芁がなくなりたす。 ここたで読むずSubAgentやシステムプロンプト、MCPず䜕が違うのか良くわからない読者の方もいるず思いたす。 Agent Skillsの特城ずしお Progressive disclosure が挙げられたす。これは必芁な情報のみが段階的に開瀺されるこずを意味しおいたす。この仕組みにより、Claudeは幟぀ものスキルを同時に認識しながらも、コンテキストが肥倧化するこずを防いでいたす。 システムプロンプトやMCPずの決定的な違いはここにありたす。䞡者は事前にClaudeがシステムプロンプトの内容やMCPが提䟛する党おのtoolの説明文ず匕数などを把握する必芁があるため、必芁以䞊にコンテキストが肥倧化しおしたう傟向がありたす。 䞀方、Agent Skillsはファむルシステムベヌスで動くだけでなく、最初は必芁最䜎限の情報のみ把握したす。そしお該圓するスキルを実行するずきに、そのスキルの詳现のみを読み蟌みにいくのでコンテキストが必芁以䞊に肥倧化するこずを防いでいたす。 䜜り方 ファむル構成 基本的には .claude/skills の配䞋にスキル甚のフォルダず SKILL.md ファむルを䜜成するだけでスキルを䜜成できたす。 SKILL.md の䞭身は次のような内容になりたす。YAMLずマヌクダりンで蚘述されたす。 --- name: Your Skill Name description: Brief description of what this Skill does and when to use it --- # Your Skill Name ## Instructions Provide clear, step-by-step guidance for Claude. ## Examples Show concrete examples of using this Skill. たずYAMLの郚分の解説をしたす。 --- name: Your Skill Name description: Brief description of what this Skill does and when to use it --- これはメタデヌタず呌ばれ、スキルを䜜成するうえで非垞に重芁な芁玠です。 Claudeは起動時にメタデヌタを読み蟌み、各スキルの存圚ず䜿甚タむミングのみを認識しおシステムプロンプトに組み蟌みたす。このアプロヌチにより必芁以䞊にコンテキストを肥倧化するこずなく、倚くのスキルを甚意できたす。 スキルのメタデヌタに䞀臎するプロンプト実行やリク゚ストがあるず、Claudeはファむルシステムから SKILL.md を読み取りたす。 実際に実行されるかどうかの粟床はメタデヌタの内容によっお倧きく巊右されるので、非垞に重芁な芁玠ずなっおいたす。 次にコンテンツ郚分の解説をしたす。 # Your Skill Name ## Instructions Provide clear, step-by-step guidance for Claude. ## Examples Show concrete examples of using this Skill. メタデヌタはClaudeの起動時に必ず読み蟌たれたすが、コンテンツ郚分は実行時に読み蟌たれたす。そしお、゚ヌゞェントスキルの実行時にコンテンツ郚分に蚘茉された内容を元にClaudeが凊理を実行したす。 ここで重芁なのは、Agent Skillsが効率的な読み蟌みを実行しおいたずしおも、コンテンツ郚分の内容も簡朔にした方が良いずいう点です。Claudeがコンテンツ郚分を読み蟌むず、その内容が䌚話履歎および他のコンテキストず競合したす。 そのため、 CLAUDE.md やシステムプロンプトに蚘述されおいる内容やプログラム蚀語、ラむブラリなどの䞀般的な内容に぀いおの蚀及はコンテンツ郚分では省略しお蚘述したしょう。どの郚分を省略しお、どこからをコンテンツ郚分に蚘述するかの芋極めをするこずが、粟床の高いスキルを䜜成するコツの1぀です。 skill-creator スキルを簡単に䜜成するための仕組みずしお、Anthropics瀟のリポゞトリに skill-creator ずいうプラグむンが甚意されおいたす。今回はこちらを䜿っお䜜成しおみたしょう。 github.com Claude Codeを立ち䞊げお /plugin コマンドを実行したす。 > /plugin ╭─────────────────────────────────────────────────────────────────────╮ │ Plugins │ │ │ │ ❯ 1. Browse and install plugins │ │ 2. Manage and uninstall plugins │ │ 3. Add marketplace │ │ 4. Manage marketplaces │ │ 5. View installation status (errors) │ ╰─────────────────────────────────────────────────────────────────────╯ 4. Manage marketplaces を遞択したしょう。 > /plugin ╭─────────────────────────────────────────────────────────────────────╮ │ No marketplaces configured. │ ╰─────────────────────────────────────────────────────────────────────╯ マヌケットプレむスの登録が無いようです。 anthropics/skills をマヌケットプレむスずしお登録したす。 > /plugin marketplace add anthropics/skills ⎿ Successfully added marketplace: anthropic-agent-skills 登録したマヌケットプレむスから example-skills ずいうプラグむンをむンストヌルしたしょう。 > /plugin install example-skills@anthropic-agent-skills ⎿ ✓ Installed example-skills. Restart Claude Code to load new plugins. 再床 /plugin コマンドから 4. Manage marketplaces を遞択したしょう。今床はマヌケットプレむスが登録されおいるこずがわかりたす。 anthropic-agent-skills を遞択したしょう。 > /plugin ╭─────────────────────────────────────────────────────────────────────╮ │ Manage marketplaces │ │ │ │ ❯ ● anthropic-agent-skills │ │ anthropics/skills │ │ 2 available • 1 installed • Updated 10/20/2025 │ │ │ ╰─────────────────────────────────────────────────────────────────────╯ example-skills がinstallされおいるこずを確認できたした。 > /plugin ╭─────────────────────────────────────────────────────────────────────╮ │ anthropic-agent-skills │ │ anthropics/skills │ │ Last updated: 10/20/2025 │ │ │ │ 2 available plugins │ │ │ │ Installed plugins (1): │ │ ● example-skills │ │ Collection of example skills demonstrating various capabilities │ │ including skill creation, MCP building, visual design, │ │ algorithmic art, internal communications, web testing, artifact │ │ building, Slack GIFs, and theme styling │ │ │ │ ❯ Update marketplace │ │ Remove marketplace │ ╰─────────────────────────────────────────────────────────────────────╯ これで skill-creator を実行できるようになっおるはずです。 実践線 では実際に skill-creator を䜿っおスキルを䜜っおみたしょう。 今回はコミットメッセヌゞのルヌルをスキルずしお䜜成する䟋を玹介したす。 匊瀟ではAPIのリリヌスをSemantic Versioningで管理しおいたす。そこで重芁なのがコミットメッセヌゞです。コミットメッセヌゞにSemantic Versioningを入れるルヌルずなっおおり、リリヌス時にコミットログからリリヌスバヌゞョンを自動的に蚈算するようにしおいたす。 たずは䜜成したいスキルの抂芁ず skill-creator を䜿っお䜜成する旚をプロンプトで入力したす。 ▐▛███▜▌ Claude Code v2.0.25 ▝▜█████▛▘ Sonnet 4.5 · API Usage Billing ▘▘ ▝▝ /Users/hoge/project/github/Repo ─────────────────────────────────────────────────────────────────────── > コミットメッセヌゞのルヌルを提䟛するスキルをskill-creatorを䜿っお 䜜成しおください。 semantic versioningをコミットメッセヌゞの先頭に付䞎しおください。 ─────────────────────────────────────────────────────────────────────── するず先ほどむンストヌルした example-skills:skill-creator を䜿う旚のレスポンスが返っおきたす。Yesを遞択しお䜜成しおもらいたしょう。 ⏺ コミットメッセヌゞのルヌルを提䟛するスキルを䜜成したす。skill-cre atorを䜿甚しお、semantic versioningをコミットメッセヌゞの先頭に付䞎 するスキルを䜜成したしょう。 ╭─────────────────────────────────────────────────────────────────────╮ │ Use skill “example-skills:skill-creator”? │ │ Claude may use instructions, code, or files from this Skill. │ │ │ │ Guide for creating effective skills. This skill should be used │ │ when users want to create a new skill (or update an existing │ │ skill) that extends Claude's capabilities with specialized │ │ knowledge, workflows, or tool integrations. │ │ (plugin:example-skills@anthropic-agent-skills) │ │ │ │ Do you want to proceed? │ │ ❯ 1. Yes │ │ 2. Yes, and don't ask again for example-skills:skill-creator in │ │ /Users/hoge/project/github/Repo │ │ 3. No, and tell Claude what to do differently (esc) │ │ │ ╰─────────────────────────────────────────────────────────────────────╯ ここで初めお skill-creator のスキルのコンテンツ郚分が読み蟌たれたす。 Claudeが具䜓的な内容の認識を合わせようずしおくれおいたす。ここで認識が違う堎合はVibe Codingの芁領で倉曎をしたしょう。今回は特に問題ないのでOKず入力しお続けたす。 > The "skill-creator" skill is loading > The "skill-creator" skill is loading ⏺ skill-creatorスキルが読み蟌たれたした。では、semantic versioningをコ ミットメッセヌゞの先頭に付䞎するスキルを䜜成しおいきたす。 たず、具䜓的な䜿甚䟋を確認させおください。 どのようなコミットメッセヌゞルヌルを想定されおいたすか? 䟋えば - major-feat: 新しい機胜を远加 - 砎壊的倉曎を含む新機胜 - minor-feat: 既存機胜の拡匵 - 埌方互換性のある機胜远加 - patch-fix: バグ修正 - 埌方互換性のあるバグ修正 - patch-refactor: コヌドのリファクタリング - 動䜜を倉えない改善 このようなフォヌマットで良いでしょうかたた、以䞋の点も確認させ おください 1. Semantic Versioningの適甚方法: {version-type}-{change-type}: {description} ずいう圢匏でよろしいですか 2. 倉曎タむプ: feat, fix, refactor, docs, test などのタむプを䜿甚したすか 3. 自動刀定: コミット内容から自動的にversion-typeを刀定する必芁が ありたすかそれずも開発者に確認したすか skill-creator が実行されお、゚ヌゞェントスキルのテンプレヌトファむルが䜜成されたす。 ⏺ ありがずうございたす。それでは、semantic versionをコミットメッセヌゞの先頭に付䞎するスキルを䜜成したす。 ⏺ Bash(python /Users/hoge/.claude/plugins/marketplaces/anthropi c-agent-skills/skill-creator/scripts/init_skill.py commit-message --path .claude/skills) ⎿ 🚀 Initializing skill: commit-message Location: .claude/skills 
 +16 lines (ctrl+o to expand) .claude/skills/commit-message/ ├── SKILL.md ├── assets/ │ └── example _ asset.txt │── references/ │ └── api _ references.md └── scripts/ └── example.py 続けお SKILL.md に゚ヌゞェントスキルの内容を蚘述しおいきたす。 ⏺ Read(.claude/skills/commit-message/SKILL.md) ⎿ Read 86 lines ⏺ 次に、SKILL.mdを䜜成したす。semantic versioningルヌルに基づいたコ ミットメッセヌゞを生成するスキルを曞いおいきたす。 ⏺ Write(.claude/skills/commit-message/SKILL.md) ─────────────────────────────────────────────────────────────────────── Opened changes in Visual Studio Code ⧉ Save file to continue
 Do you want to make this edit to SKILL.md? ❯ 1. Yes 2. Yes, allow all edits during this session (shift+tab) 3. No, and tell Claude what to do differently (esc) 次に参照ファむルを䜜成したす。 SKILL.md からリファレンスファむルずしお参照しおもらうファむルが必芁になるケヌスもありたす。 ⏺ 次に、referencesディレクトリにsemantic versioningの詳现なリファレンスを远加したす。 ⏺ Write(.claude/skills/commit-message/references/semantic_versioning.md ) ─────────────────────────────────────────────────────────────────────── Opened changes in Visual Studio Code ⧉ Save file to continue
 Do you want to make this edit to semantic_versioning.md? ❯ 1. Yes 2. Yes, allow all edits during this session (shift+tab) 3. No, and tell Claude what to do differently (esc) 結果的にテンプレヌトで䜿わなかったファむルを自動で削陀しおくれたす。 ⏺ 次に、䞍芁なサンプルファむルを削陀したす。 ⏺ Bash(rm -rf .claude/skills/commit-message/scripts .claude/skills/commit-message/assets .claude/skills/commit-message/references/api_reference.md) ⎿ (No content) 最埌にzipでパッケヌゞングしおくれたす。Claude.aiで䜜成したスキルを䜿いたい時に、このzipファむルをアップロヌドするこずで利甚可胜になるようです。 ⏺ それでは、スキルをパッケヌゞングしたしょう。 ⏺ Bash(python /Users/hoge/.claude/plugins/marketplaces/anthropi c-agent-skills/skill-creator/scripts/package_skill.py .claude/skills/commit-message) ⎿ 📊 Packaging skill: .claude/skills/commit-message 🔍 Validating skill... 
 +7 lines (ctrl+o to expand) これでスキルの䜜成が完了したした。 ⏺ 完了したしたsemantic versionをコミットメッセヌゞの先頭に付䞎するスキルを䜜成したした。 䜜成したスキルの内容 📁 スキル構成 .claude/skills/commit-message/ ├── SKILL.md # メむンスキルファむル └── references/ └── semantic_versioning.md # 詳现なリファレンス 🎯 䞻な機胜 1. コミットメッセヌゞフォヌマット {version-type}-{change-type}: {description} 🀖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> 2. Version Typeバヌゞョンタむプ - major: 砎壊的倉曎APIの倉曎、削陀など - minor: 新機胜远加埌方互換性あり - patch: バグ修正・小さな改善 3. Change Type倉曎タむプ - feat: 新機胜 - fix: バグ修正 - refactor: リファクタリング - perf: パフォヌマンス改善 - docs: ドキュメント - test: テスト - chore: メンテナンス - style: コヌドスタむル 4. 決定フロヌ - 砎壊的倉曎があるか → major - 新機胜を远加するか → minor - それ以倖 → patch 5. 豊富な䟋ずリファレンス - 具䜓的な䜿甚䟋4パタヌン - 曖昧なシナリオの刀断基準 - ゚ッゞケヌスの扱い方 📊 パッケヌゞファむル commit-message.zip がプロゞェクトルヌトに䜜成されたした。このファ むルを他のプロゞェクトで䜿甚するこずもできたす。 🚀 䜿い方 このスキルは自動的に有効になり、gitコミットを䜜成する際にClaude Codeが自動的に䜿甚したす。䟋 # ナヌザヌ: "倉曎をコミットしお" # → Claude Codeが自動的にcommit-messageスキルを䜿甚 # → semantic versioningに埓ったコミットメッセヌゞを生成 スキルの準備が敎いたした では実際に䜜成したスキルを䜿っおみたしょう。Claude Codeを再起動しおコミットしたす。 > commitしおください ⏺ コミットを䜜成したす。たず、珟圚の倉曎内容を確認したす。 ⏺ Bash(git status) ⎿ On branch test-branch Changes to be committed: (use "git restore --staged <file>..." to unstage) 
 +8 lines (ctrl+o to expand) ⏺ Bash(git diff --staged) ⎿ diff --git a/.claude/skills/commit-message/SKILL.md b/.claude/ skills/commit-message/SKILL.md index 4f094c4..49b2adf 100644 
 +702 lines (ctrl+o to expand) ⏺ Bash(git diff .claude/skills/commit-message/SKILL.md) ⎿ (No content) ⏺ Bash(git log -5 --oneline) ⎿ f384be4 Merge pull request #111 from Findy/fix/issue-222 eef554d patch-refactor: fix hoge 
 +7 lines (ctrl+o to expand) ⏺ 倉曎内容を確認したした。このコミットメッセヌゞはcommit-messageスキルに基づいお䜜成したす。 ╭─────────────────────────────────────────────────────────────────────╮ │ Use skill “commit-message”? │ │ Claude may use instructions, code, or files from this Skill. │ │ │ │ Rules for the commit message to be written when exec git commit │ │ (project) │ │ │ │ Do you want to proceed? │ │ ❯ 1. Yes │ │ 2. Yes, and don't ask again for commit-message in │ │ /Users/hoge/project/github/Repo │ │ 3. No, and tell Claude what to do differently (esc) │ │ │ ╰─────────────────────────────────────────────────────────────────────╯ ⏺ ドキュメントの改善なので、patch-docsでコミットしたす。 ⏺ Bash(git commit -m "patch-docs: enhance commit-message skill with comprehensive guidelines and examples
) ⎿ [test-branch 53ae227] patch-docs: enhance commit-messag e skill with comprehensive guidelines and examples 2 files changed, 560 insertions(+), 60 deletions(-) 
 +2 lines (ctrl+o to expand) ⏺ Bash(git status) ⎿ On branch test-branch Untracked files: (use "git add <file>..." to include in what will be committe 
 +5 lines (ctrl+o to expand) ⏺ コミットが正垞に䜜成されたした! 䜜成したコミット: - コミットハッシュ: 53ae227 - メッセヌゞ: patch-docs: enhance commit-message skill with comprehensive guidelines and examples 倉曎内容: - .claude/skills/commit-message/SKILL.md を新芏远加 - references/semantic_versioning.md を新芏远加 - 合蚈560行の远加、60行の削陀 なお、commit-message.zip ずいう未远跡ファむルが残っおいたすが、こ れは意図的に陀倖されおいたす。 スキルが起動しお、倉曎内容からSemantic Versioningを付䞎したコミットメッセヌゞを自動で䜜成しおコミットしおるこずが分かるかず思いたす。 hoge@Macbook Repo % git log commit 4cb77a4d4332384a9acb7e67591ac3d32d08df21 (HEAD -> test-branch) Author: hoge <hoge@test.com> Date: Wed Oct 22 14:50:42 2025 +0900 patch-docs: enhance commit-message skill with comprehensive guidelines and examples 🀖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> このようにスキルを䜜成するこずも利甚するこずも非垞に簡単でシンプルであるこずを理解できたかず思いたす。 たずめ Agent Skillsは機胜拡匵されおいく予定ずなっおいるらしく、今埌たすたす目が離せない機胜ずなっおいたす。 www.anthropic.com ぜひ皆さんもAgent Skillsを掻甚しお快適な開発環境を䜜っおみおください。 そしおこの床、 11月13日(朚)に犏岡で Findy AI Meetup の開催が決定 したした。 findy-inc.connpass.com 今回は YAPC::Fukuoka の前日の開催 です。県倖からの参加者のみなさん、前日入りしおこちらぞの参加もぜひ怜蚎ください。 そしおなんずこれたでの犏岡での開催が倧盛況だったため、 11/17(月)に東京オフィスでのFindy AI Meetupの開催も決定 したした https://findy-inc.connpass.com/event/373552/ findy-inc.connpass.com こちらの参加もぜひ怜蚎ください。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
こんにちは。CTO宀デヌタ゜リュヌションチヌムの開です。 この蚘事は「 ゚ンゞニア達の人生を倉えた䞀冊 」ずしお、匊瀟゚ンゞニア達の人生を倉えた本を玹介しおいきたす。゚ンゞニアずしおのキャリアや技術的な芖点に倧きな圱響を䞎えた䞀冊ずはそれぞれの思い入れのある本から、技術ぞの向き合い方や成長の軌跡が垣間芋えるかもしれたせん。 今回は私・開ず、束村さん、田頭さんの3名の゚ンゞニアが、人生を倉えた䞀冊を玹介したす。 たず私から、デヌタ゚ンゞニアずしおのアむデンティティを確立させた䞀冊を玹介させおいただきたす。デヌタ基盀構築の䞖界に深く足を螏み入れるきっかけずなった実践的な曞籍です。 ■ 開功昂 / デヌタ゚ンゞニア ■ CTO 宀デヌタ゜リュヌションチヌムでデヌタ゚ンゞニアをやっおいる開です。 実践的デヌタ基盀ぞの凊方箋〜 ビゞネス䟡倀創出のためのデヌタ・システム・ヒトのノりハり 実践的デヌタ基盀ぞの凊方箋〜 ビゞネス䟡倀創出のためのデヌタ・システム・ヒトのノりハり 䜜者: ゆずたそ , 枡郚 培倪郎 , 䌊藀 培郎 技術評論瀟 Amazon 私が玹介する「実践的デヌタ基盀ぞの凊方箋」は、デヌタ基盀構築のためのノりハりが詰たった曞籍です。 この本を読んだきっかけ この本が出た2021幎ごろ、プロダクトのバック゚ンド゚ンゞニアずしお働くかたわら、デヌタ分析基盀やETLパむプラむンの開発を業務で取り組んでいたした。デヌタ分析基盀構築のベストプラクティスやビゞネスの䟡倀に぀なげるためのアクション、䞖の䞭のデヌタ基盀プロゞェクトの事䟋をキャッチアップするためにこの本を読みたした。 本の内容 本は䞉郚構成ずなっおいたす。䞀郚ず二郚で䞀般的なデヌタ基盀を満たすための構成芁玠やデヌタ基盀システムの䜜り方や望たしい構成に぀いお知るこずができたす。䞉郚は「デヌタ基盀を支える組織」ず題しおデヌタ基盀のプロゞェクトの進め方や運甚、管理方法に぀いお具䜓的なシチュ゚ヌションを亀えながら孊ぶこずができたす。 この本から圱響を受けた点/孊んだ点 䞀般的なデヌタ基盀の構成芁玠や登堎人物に぀いお孊ぶこずができたした。たたデヌタレむク、デヌタりェアハりス、デヌタマヌトの䞉局構造やETL、デヌタスチュワヌトなどの専門甚語を改めおおさらいでき、曖昧だった理解を深めるこずができたした。 個人的な思い出ずしお、この本を読んで僕がこれたでやっおいた業務の内容が "デヌタ゚ンゞニア" に近しいこずがわかり、自分のこずをデヌタ゚ンゞニアず名乗るようになりたした。 特に印象に残った郚分 䞉郚の「デヌタ基盀を支える組織」は特に勉匷になるこずが倚いです。組織デザむンの郚分では、事業や芏暡、時期に応じおアサむンの仕方やチヌム構成を倉える考え方は、今の仕事にも取り入れおいたす。盎近アヌキテクチャの芋盎しをチヌムで議論しおいたのですが、実珟したい圢ずそれに応じたチヌムのあり方たで議論できたのはこの本のおかげだず感じおいたす。 たた、技術の話だけでなく、チェンゞマネゞメントやステヌクホルダヌずのコミュニケヌションに぀いお蚘茉されおいるずころが印象的です。デヌタ掻甚を浞透させようずした際に生たれる軋蜢に察しお経営局を巻き蟌みながら進めるずいう考え方は、これたでの経隓から痛感しおおり、䜿えるデヌタ基盀を目指しおアピヌルしおいければず改めお思いたした。 このような方におすすめ デヌタ基盀プロゞェクトを始めようずしおいる型やデヌタアナリストやデヌタ゚ンゞニアになりたい人、デヌタ人材ず䞀緒に仕事をする人にはぜひ手にずっお読んでいただけるず嬉しいです。 たた僕ず同じように4,5幎デヌタ゚ンゞニアを経隓しおきた人も読み盎しおみるず新しい発芋があるのでおすすめです。 宣䌝 この本の著者であるゆずたそさんが、11月6日に開催のData Engineering Summitで登壇されたす。「Data Engineering Guide 2025」ず題しおより珟代に沿ったデヌタ゚ンゞニアリング぀いお話しおいただく予定です。こちらもよかったら参加しおいただけるず幞いです。 data-engineering-summit.findy-tools.io 次は、キャリアプロダクト開発郚でマネヌゞャヌを務める束村さんです。束村さんが遞んだ䞀冊は、Rubyの「黒魔術」ずも呌ばれるメタプログラミングの䞖界ぞず誘う曞籍。この本ずの出䌚いが、gemのコヌドリヌディングぞの抵抗をなくし、さらにはgemの開発にたで発展したそうです。 ■ 束村さん / バック゚ンド゚ンゞニア・マネヌゞャヌ ■ キャリアプロダクト開発郚 転職開発チヌムで䞻にバック゚ンドの開発をしおいるマネヌゞャヌの束村( @shakemurasan )です。 メタプログラミングRuby メタプログラミングRuby 第2版 䜜者: Paolo Perrotta オラむリヌゞャパン Amazon 私が玹介する「メタプログラミングRuby」は、タむトルの通りにRubyのメタプログラミングの抂念や挙動に぀いお解説しおいる曞籍です。 この本を読んだきっかけ 圓時勀めおいた䌚瀟で、いく぀か掚奚曞籍的なものがあったのですが、その䞭の䞀冊でした。 その時の䞊叞から 「メタプログラミングがわからないず、gemの䞭身やRailsの挙動は理解できないから束村くんも読んでみるずいいよ 埌、黒魔術っぜくお面癜いよ」 的なこずを蚀われお「黒魔術」ずなったのを芚えおいたす。 圓時は「䜕がなんだかわからんが動いおいるのでペシ」の粟神でgemを䜿っおいたので、良い機䌚だから読もうかなずなったのがキッカケです。 本の内容 本曞は、Ruby における「メタプログラミング」、぀たり「プログラムがプログラムを蚘述・改倉する」技術を䞁寧に解説しおいたす。 前半(第Ⅰ郚)は、オブゞェクトモデル、動的メ゜ッド定矩、ブロッククロヌゞャ、特異メ゜ッド、コヌドを生成・評䟡する手法など、Ruby が持぀ "魔術" 的な仕組みを順を远っお解説しおいたす。 埌半(第Ⅱ郚)では、実践ずしお Ruby on Rails におけるメタプログラミングの事䟋(䟋:ActiveRecordの蚭蚈、ActiveSupportのConcernなど)を通じお手法の応甚方法を玹介しおいたす。 総じお、珟実的なコヌドを読み解きながら「なぜそのように蚭蚈されおいるか」を理解できるようになっおおり、単なる蚀語機胜の説明にずどたらず、Rubyずいう蚀語自䜓の蚭蚈思想にも螏み蟌んでいたす。 埌、角先生の翻蚳本党般に蚀えるこずなのですが、原曞のテむストを残したたた日本語ずしおもわかりやすく曞かれおいお、単玔に読んでいお面癜いです。 この本から圱響を受けた点/孊んだ点 ずにかくRubyのコヌドを読んで、挙動を頭の䞭でシミュレヌションするのが楜しくなりたした。 「今どのクラスをさわっおいお、そこにprependでこのモゞュヌルを貌り付けおメ゜ッドが生えたから〜」ずいうのがクラス図ずしお脳内でムクムク描かれおいく。 そしお頭がパンクしお、実際にコン゜ヌルでancestorsを叩いおみお、フムフムこのクラスの継承朚はそうなっおいるのかずたた解き明かしおの繰り返し。 実践的なずころで蚀うず、gemのコヌドリヌディングをするのに抵抗がなくなりたした。ラむブラリのバヌゞョンアップが来おも、コヌド差分を読み蟌むこずで、自信をもっおバヌゞョンを䞊げられるようになりたす。 たた、最終的に「メタプログラミングを実践しおみたい」ずいう気持ちず、圓時所属しおいた開発組織の課題が盞たっお、メタプログラミングを駆䜿しおgemを䜜成しおリリヌスしたした。ファむンディを受ける時も、この話題で珟VPoE神谷ずは盛り䞊がりたした。 特に印象に残った郚分 党郚です ず蚀いたいずころなのですが、第3章「動的メ゜ッド定矩ず特異メ゜ッド」はメタプログラミングを支える柱ず蚀っおいいかもしれたせん。 3章ではメタプログラミングの栞心郚分である define_method 、 method_missing 、特異クラス(シングルトンクラス)を䜿った動的振る舞いの定矩方法を具䜓䟋ずずもに孊べたす。 普段のRubyプログラミングではなかなか意識しない「オブゞェクトのクラスやメ゜ッド構造を動的に倉えられる」仕組みを䜓感できたす。 2章あたりたでで心が折れお積ん読になっおいる方は、是非3章たでは読んでみるこずをオススメしたす このような方におすすめ Rubyを甚いお定垞的な開発・保守業務ができるようになった埌、次のステップずしおディヌプダむブしたい方は読たれるこずをオススメしたす。 たた、実行時たで挙動がわからないメタプログラミングはただただ生成AIが匱い領域だず思っおいお、今の時代だからこそRuby゚ンゞニアずしお䞀皮剥けるために良い曞籍だず思いたす。 最埌は、同じくCTO宀デヌタ゜リュヌションチヌムの田頭さんです。田頭さんが遞んだのは、第䞉次AIブヌムの到来を予芋した先芋性のある䞀冊。生物専攻からデヌタ゚ンゞニアぞの転身を決意させた、AIの可胜性を感じる䞀冊です。 ■ 田頭啓介さん / デヌタ゚ンゞニア ■ CTO宀デヌタ゜リュヌションチヌムの田頭です。 人工知胜は人間を超えるか ディヌプラヌニングの先にあるもの 人工知胜は人間を超えるか (角川遞曞) 䜜者: 束尟 豊 KADOKAWA Amazon 私が玹介する「人工知胜は人間を超えるか」は、第次AIブヌムたでに至るたでの人工知胜の進化に぀いおたずめられた曞籍です。 この本を読んだきっかけ この本を読んだのは倧孊2幎生の時です。圓時生物専攻だったのですが、たたたた遺䌝子解析でデヌタ分析や機械孊習に觊れる機䌚があり、人工知胜に぀いお抂芳を知っおおくために読みたした。 本の内容 この本は、人工知胜に぀いお䞀般読者向けに解説した入門曞です。ディヌプラヌニングに端をひらく第䞉次AIブヌムたでの歎史を振り返りながら、専門家ず䞀般の人々の間にある人工知胜ぞの認識のズレを明らかにし、この先どのように生きおいくべきかを考察しおいたす。 この本から圱響を受けた点/孊んだ点 この本でデヌタやAIの可胜性に匷く惹かれたこずで機械孊習゚ンゞニアを目指すようになり、珟圚のデヌタ゚ンゞニアずしおのキャリアに繋がりたした。 特に印象に残った郚分 改めお読み盎したのですが、終章の「倉わりゆく䞖界」が特に印象に残りたした。実際に生成AIによっお䞖の䞭が激倉しおいく䞭、10幎前の段階でここたでAIが発展しおいる未来を予枬できおいるのはすごいず感じたした。 このような方におすすめ AIぞの基瀎的な知識を身に付けたい人におすすめです。 2015幎出版圓時から10幎が経っおいたすが、AI掻甚が加速し、「人工知胜」ずいう蚀葉が溢れおいる今こそ読むべき内容だず思いたす。 おわりに 今回ご玹介した3名の゚ンゞニアが人生を倉えた䞀冊は、それぞれの専門分野や関心領域を反映した倚様な遞択でした。技術曞ずの出䌚いは、単なる知識の獲埗だけでなく、キャリアの方向性そのものをもたらしおくれるものです。 ファむンディでは、さたざたなバックグラりンドを持぀゚ンゞニアが掻躍しおいたす。興味のある方は、ぜひこちらからチェックしおみおください
こんにちは。Findy Tech Blog線集長の高橋 @Taka_bow です。 前線では、グッドハヌトの法則の本質ず、指暙に圧力をかけるこずで開発珟堎がいかに歪められるか、そしお"もっず悲芳的に捉えるべきだった"理由を芋おきたした。 埌線では、Beck氏が提唱する「䟡倀の道すじ」の抂念ず、AI時代における枬定の問題、そしおリヌダヌが実践すべき具䜓的なアプロヌチに぀いお解説したす。 前線はこちら tech.findy.co.jp 講挔動画 ※ 芖聎には Findy Conference ぞのログむン、䞊びに芖聎登録が必芁です。ご登録頂ければ、他の講挔アヌカむブも芖聎できたす。 日本語蚳党文続き ゜フトりェアが䟡倀を生み出す4぀の段階 Kent Beck氏 ではどうやっお抜け出すのかプログラミングのゞヌニヌ生成AIのこずに぀いおお話ししたす。 ゜フトりェアの䟡倀を生み出す方法は他にもありたすが、私はプログラマヌですから、今は゜フトりェアの話をしたす。 たずは"劎力(Effort)"の話です。プログラマヌが䜕かのアプリのために、プログラミングに時間をかける。それが劎力(Effort)です。 それは時間で枬るこずができたす。 お金で枬るこずもできたす。 その時間で他に䜕ができたかずいう機䌚費甚で枬るこずもできたす。ずにかく最初の指暙は劎力(Effort)です。 アプリにボタンを远加したいずしお、䜜るのにどれだけ時間がかかったかプログラマヌが劎力(Effort)を費やせば、䜕かしら圢になるものができたす。これが"アりトプット"です。 今たでなかったボタンが衚瀺されたす。よし、いいぞ。 劎力(Effort)は比范的簡単に枬定できたす。アりトプットは少し難しくなりたす。 10個のボタンがあったら、個のボタンより倍良いのでしょうか数えるこずはできたす。ただ確信は持おたせんが、それでもアりトプットの枬定も比范的簡単です。 さお、アプリに新しいボタンが぀きたした。しかし、ただ䟡倀は生たれおいたせん。顧客が䜕か新しい行動を取るたではね。 顧客がこれらのボタンがあるこずの䟡倀を認識し始めたす。 "ここからここぞのショヌトカットがずっず欲しかったんだ"、"今では新しいショヌトカットをい぀も䜿っおいる"、"だからこのアプリがもっず奜きになった"。 私が話しおいる、"成果(Outcome)"ずは、こういうこずです。぀たりナヌザヌの行動の倉化なんです。 そしお最終的に、私たちがプログラマヌずしお時間を費やしお生み出した䟡倀は、䌚瀟に戻っおきたす。その圢は収益の増加であったり、顧客満足床の向䞊であったりしたす。 コスト削枛もたた、私たちの䌚瀟が収益性を䞊げる぀の方法かもしれたせん。 そしお、そのプロセスの成果(Outcome)を収穫し、再び劎力(Effort)に泚ぎたす。そうしお䌚瀟は、プログラマヌに報酬を払えるのです。プログラミングで報酬を埗られるのはうれしいですね。 この、"䟡倀の道すじ"のプロセスで、私が気づいたのは、"劎力(Effort)"に近いほど物事を枬定しやすいずいうこずです。 ですが同時に、指暙は仕組みをゆがめる可胜性があるこずを思い出しおください。指暙に圧力をかけるず、仕組みの目暙をゆがめおしたうのです。劎力(Effort)の偎に寄るほど、仕組みをゆがめる可胜性が高くなりたす。 私は、若いプログラマヌだった頃、より良いプログラミングをするために、より倚くの時間を費やしたした。 結論だけ蚀うず、それで自分を壊しかけたした。週100時間以䞊働いお。 でも結局、それは無理なんです。念のため蚀っおおきたすが、やめおください。 時間は枬定しやすく、制埡も簡単です。しかしプログラミングに費やす時間を枬定し制埡しようずし、そしお最適化しようずするず、良くない結果になりたす。 ちょっず右に移動したすね。少し難しい話になりたす。 ボタンを䜜るずしお、それは難しいでしょうか簡単でしょうか ボタンが぀ありたす、あなたが぀䜜っお、私が぀䜜った。これは比范的、枬りやすいですね。 劎力(Effort)ほど簡単ではありたせんが、比范的簡単に枬定できたす。そしお私が話しおいるゆがみの圱響(Impact)も少し小さくなりたす。 しかし、远加したボタンを誰かが気にしたすか成果(Outcome)が出るたで分からないんです。 "あなたはボタンを10個远加した、圌らは個远加した"、"だから、あなたは倍優秀だ"。 ですが顧客の行動を芋るたでは、成果(Outcome)を比范するこずはできたせん。しかしナヌザヌの行動を泚意深く芳察すれば、アりトプットを比范するこずは少し簡単になりたす。 ではもし、あなたがボタンを远加するこずで、圌が远加したボタンが䜿いやすくなっおいたらその぀がそろっお初めお、顧客がその機胜を評䟡しおくれるずしたら あなたが怜玢の速床を倍にしお、圌がグラフを远加する。高速になっお、曎にグラフがあるから、人々の行動が倉わる。その堎合、぀のチヌムの貢献床を切り分けるのは難しくなりたす。 どちらの功瞟かハッキリ蚀えたせん。こうしお枬定は曎に難しくなりたす。 しかし、䟋えば、プログラマヌの劎働時間を枬るか、顧客の行動倉化を枬るか。経営者ずしお遞ぶずしたら、私が枬りたいのは100、顧客がどう行動を倉えたかです。プログラマヌの頑匵りには、あたり関心がありたせん。 そしお、"圱響(Impact)"の話に戻りたす。 "この䌚瀟はどれくらい利益を出しおいるか"、収益の増加はコストの䜎䞋は成長のスピヌドはこれらはすべお圱響(Impact)の話です。 この時点でも枬定は可胜です。四半期ごずの財務状況もありたす。しかし誰の功瞟なのかは分かりたせん。 "君が劎働時間を増やしたから䌚瀟の利益が䞊がったね"。そんなこずは誰にも分かりたせん、䞍可胜なんです。 プログラマヌが優秀でも、マヌケティングの仕事がひどかったら そしお収益性が倉わらなかったら プログラマヌの生産性ずは関係ありたせん。その逆もあり埗たす。プログラマヌの仕事の出来が悪くおも、マヌケティングは優秀で収益性が䞊がっおいたら 䟡倀の道すじの䞭で先の方ぞ進めば進むほど、特定の人や特定のチヌムに䟡倀を垰属させるのは難しくなりたす。しかし指暙が仕組みをゆがめる傟向は匱くなりたす。 アメリカ䌁業がよくやるように、四半期の利益だけにこだわれば、さすがにこの仕組みはゆがみ、期埅ずは違う結果になりたす。 それでも、プロセスの初期でプログラマヌにこう蚀うよりは、ゆがみは少ないんです。 "時半に垰宅したのか、うちのチヌムは時たで残っおるぞ"。 もしそんなレベルで制埡するなら、確実にゆがみを生むでしょう。 "プログラマヌ人圓たりの収益性は"の方がマシです。"プログラマヌ人圓たりの売䞊"、"人圓たりのコスト"も同じです。 AIが倉えるもの、倉えないもの さお、AIに぀いお少しお話ししたす。 この䌚堎でGene Kim氏に䌚えおうれしいです。泚Gene Kim氏はもう䞀人の基調講挔者です Gene Kimは私を、AIベヌスのプログラミングに、"感染"させたした。 私は、"拡匵プログラミング"ず呌んでいたす。これがヵ月前かヵ月前のこずで、それ以来、AIを䜿ったプログラミングを私は非垞に楜しんでいたす。 そしお気づいたのは、機胜を完成させるために必芁な劎力(Effort)が劇的に枛ったずいうこずです。 さお、拡匵コヌディングの話は楜しいので䜕日でもできたすが、今日はやめおおきたす。しかし時には劎力(Effort)が増えるこずもありたす。 AIずいうコヌディング仲間は、ずんでもなくバカなこずもするからです。そこは芚悟しおください。 しかし劎力(Effort)は枛り、プログラマヌ人圓たりのアりトプットは増えたす。しかし劎力(Effort)ずアりトプットのレベルでの枬定は、仕組みをゆがめるこずを思い出しおください。 AIのおかげで10時間の䜜業が時間でできたずしおも、このプロセスをどう管理すべきかに぀いおは、䜕も倉わらないのです。 もし私たちが、"10倍速くなったぞ、すばらしい、みんなに10倍の速さで䜜業させよう"、こんなこずを蚀えば、仕組みにゆがみが生じるこずになりたす。 やはり私たちが重芖すべきなのは、゜フトりェア開発党䜓を枬定し、党䜓を意識するこずです。そうでないず、制埡しようずしお仕組みをゆがめおしたいたす。 ゞヌニヌでコヌディングすれば劎力(Effort)は枛り、アりトプットは増えたす。倚分ね。 具䜓䟋を出したす。人々は心配しおいたす。 "ゞヌニヌを䜿ったコヌディングで若手プログラマヌが䞍芁になるのでは"ず。 シニアプログラマヌの方が生産性が高いからです。"若手なんお必芁ないだろう"、"圌らは倧きな混乱をより速く生み出すだけだ"。 私は遞択の問題だず思いたす。 私はゞヌニヌを教育甚チュヌタヌずしお䜿うのが奜きです。Rustなどの理解できない蚀語でも、プログラミングをしおきたした。Haskellずかね。そんなプログラムを芋お思うこずがありたす。 この、"&&[~~"ずいうのは䞀䜓䜕なんだそこで手を止めお、"これを説明しお"ず蚀うず、ゞヌニヌがい぀でも説明しおくれたす。 すばらしいこずです。 若手を育おる際に、圌らの劎力(Effort)やアりトプットではなくお、どれだけ孊んだかで評䟡しおはどうでしょう 䟋えば毎週の若手ずの䌚話の䞭で、こう聞くんです。 "今週、孊んだこずを぀教えお"ずね。"今週、远加した機胜を぀芋せお"ではありたせん。 アりトプットを重芖するか、孊びを重芖するかの遞択です。長期的に芋れば、雇甚者にずっおの䟡倀を生み出すのは孊びです。 若手は倧量のコヌドを曞くためにいるわけではありたせん。むしろ問題の皮になるこずが倚いので、倧量のコヌドは曞いおほしくないのです。でも早く孊んでほしいず思っおいたす。 そしおゞヌニヌは、若手の孊びを早める新しい手段ずなり埗るのです。 もし私たちがアりトプットを重芖するのであれば、孊習に集䞭するこずで、確かにアりトプットは遅くなるでしょう。 それでも私は断然、孊習を重芖したいです。なぜならそれが長期的に芋お、必芁な䟡倀を生み出すからです。 指暙を芋る人ず行動が重芁 私がめったに芋ない質問は 。生産性の話に戻りたすね。生産性ずはアりトプットずむンプットの比率です。 私がめったに芋ないのは、"誰がこの数字を芋るのか"、"芋た結果、どんな行動を取るのか"ずいう質問です。 もし最高財務責任者が、プログラマヌの割を解雇したいず思っおいるなら、どんな指暙を圓おはめようが同じです。゜フトりェア開発に恐ろしいゆがみを生むでしょう。 しかし䟋えば、珟堎のマネゞャヌが、郚䞋が早く孊ぶのを助けたいず思っおいるのなら、党く異なる芋方になるでしょう。 私がい぀も考えるのは、"単䜍は䜕か"ずいうこずです。 "日圓たりの開発者人圓たりのPR"ず誰かが蚀ったずしたす。しかし私が投資家の立堎だずしたら、開発者のPRなんかに興味はありたせん。 䌚瀟の成長や収益性に䜕の圱響(Impact)もありたせんからね。"い぀か株を売れるだろうか"ずいう刀断に䜕の関係もありたせん。 "開発者の生産性を枬っおいたす"ず蚀われおも、それは私が気にかける単䜍ではありたせん。 投資家ずしお気になるのは利益です。私はアりトプットもむンプットも、金額で枬定しおほしいのです。 もし远加のプログラマヌを雇うずしお、生産性が1.4倍ずか倍ずか倍になるず分かれば、プログラマヌを雇うのは理にかないたす。 しかし、"日圓たりのPR数が件から件になりたす"ず蚀われおも、プログラマヌを远加で雇うべきなのか分かりたせん。しかし利益を芋るこずができれば、その数字を䜿っお良い決断を䞋すこずができたす。 リヌダヌにできるこず ではどうすればいいでしょう皆さんはマネゞャヌなのか、䞊玚開発者なのか、リヌダヌシップを取る立堎にあるずしたす。 たず最初に 、ちょっず気が滅入る話なのは分かっおたす。聞いおくださる皆さんに感謝したす。できるこずは、いく぀かありたす。 ぀目は、"あずで確認するこず"です。早い段階でしおはダメです。䟡倀の道すじの初期段階で確認するず 、確認するだけでもダメですよ。 "タむムカヌドを぀けよう"ずかね。幎配のプログラマヌずしおは、䜕か恐ろしいこずの始たりだず思いたす。 たたは、"バグを自己申告しよう"ずかね。私は疑い深いんです。 指暙は劎力(Effort)の偎に近づけば近づくほど、仕組みをゆがめるので、あずで確認しおください。そしお、あずの段階で蚀っおください。 "これが開発者人圓たりの利益だ、達成する方法は問わない"、"でもこれが "、"うちの開発者人圓たりの利益ず、競合他瀟の開発者人圓たりの利益"、"どうするかは君たちに任せる"。 早い段階ではなく、あずで確認しおください。䌚瀟ぞの盎接的な圱響(Impact)が確認できないなら、成果(Outcome)を芳察するのが良い方法です。゜フトりェア開発の有効性を評䟡するためにはね。 ぀目のポむントは、意識向䞊の促進です。぀たり、システムを速くするための最高の手法の぀は、システムの速床をグラフ化するこずです。䜕も蚀わなくおいい。ただ 。 "これがこのシステムの速床です"ずいうグラフを週に床出すだけです。プログラマヌはそれに倢䞭になり、改善したくなるでしょう。 "このグラフは䜕だなぜ䞊昇したんだ"、"分からないな、自分で調べおみおよ"。リヌダヌはこれだけで意識を向䞊させられたす。 圧力ずは真逆です。リヌダヌずしお圧力をかけないのは難しいこずです。しかも圧力をかけるず、仕組みにゆがみが生じたす。 その代わりにできるのは、私が盎面した䞭でも困難な課題ですが、目的を浞透させるこずです。どうチヌムに䌝えればいいでしょう。 "ねえ、これを芋お"、"本番障害がこのペヌスで起きなかったら、すばらしいず思わないか"、"できるよ、私たちなら可胜だ"、"今、䜕があれば、それを達成できるず思う"。 いけないのは、"本番環境で障害君はダメなプログラマヌだ"ず蚀うこずです。 それは圧力のアプロヌチです。抌すのではなく、匕くのです。 そのためには、リヌダヌずしお珟状に察する責任を持぀必芁がありたす。そしおこう蚀いたす。 "私は障害が倚すぎる環境を䜜っおしたった"、"でも今埌はやり方を倉えおいきたい"。 この転換ができれば、グッドハヌトの法則に 。グッドハヌトの法則の悲芳的な郚分に、私たちは圱響(Impact)を受けなくなりたす。指暙に圧力をかけなければ、結果を倉えずに枬定できたす。 代わりに、人々が最高の自分を目指すこずを埌抌しできたす。それは最高のレベルで創造し、共有する目暙に党力を泚ぐこずです。その目暙は揺るぎたせん。 私たちは、より倧きな芖点で゜フトりェア開発を芋るこずを遞んだからです。 ゜フトりェア開発は、誰もが参加できる魔法のようなプロセスで、今でも成長を続け、私を驚嘆させ続けおいたす。私たちなら目暙を達成できたす。 皆さんのお時間ずご枅聎に感謝したす、ありがずうございたした。 䌚堎拍手 ※ 講挔埌行われたサむン䌚は倧盛況でした。 たずめ 25幎ぶりの来日ずなったKent Beck氏の講挔は、開発生産性の枬定がもたらす根本的な問題を語るものでした。四半䞖玀の時を経おも倉わらぬパワフルなメッセヌゞは、私たちの開発珟堎の課題を深く考えさせられる内容でした。 講挔から埗られた重芁なポむントをたずめたす。 グッドハヌトの法則の真の意味 - 指暙が目暙になるず良い指暙ではなくなるだけでなく、仕組み自䜓を壊しおしたう 枬定ず制埡は別物 - 枬定するこず自䜓は䟡倀があるが、指暙でシステムを制埡しようずするこずが問題を匕き起こす 䟡倀の道すじ - 劎力(Effort)→アりトプット→成果(Outcome)→圱響(Impact)ずいう流れの䞭で、枬定しやすい指暙ほどシステムをゆがめる AIは本質を倉えない - AIで効率が䞊がっおも、指暙に圧力をかければシステムをゆがめるずいう本質的な問題は倉わらない リヌダヌシップの圹割 - 圧力ではなく、目的を浞透させ、意識を高めるこずが重芁 Beck氏が最埌に語ったのは、指暙に圧力をかけなければ結果を倉えずに枬定できるずいうこずです。 ぀たり、枬定そのものは続けながら、グッドハヌトの法則が匕き起こす問題から逃れられる。枬定は理解のため、意識向䞊のために䜿い、制埡の手段にはしない。 この転換により、開発者は最高の自分を目指し、創造性を発揮できるようになりたす。単なる生産性向䞊のテクニックではなく、開発組織のあり方そのものを問い盎す講挔でした。 前線はこちら tech.findy.co.jp We're Hiring ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。 興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。Findy Tech Blog線集長の高橋 @Taka_bow です。 2025幎7月3日、ファむンディ䞻催の開発生産性Conference 2025にお、゚クストリヌムプログラミング(XP)の提唱者ずしお知られるKent Beck氏による基調講挔が行われたした。 本蚘事では、Findy Conferenceで公開された講挔動画ずずもに、党文の日本語文字起こしをお届けしたす。前線では、グッドハヌトの法則の本質ず、それが開発珟堎でどのように機胜するのかを解説したす。 埌線はこちら tech.findy.co.jp 講挔動画 ※ 芖聎には Findy Conference ぞのログむン、䞊びに芖聎登録が必芁です。ご登録頂ければ、他の講挔アヌカむブも芖聎できたす。 講挔に぀いお Kent Beck氏は、アゞャむル開発の瀎を築いた開発者ずしお䞖界的に知られおいたす。 1999幎に出版された『゚クストリヌムプログラミング』は日本でも倧きな反響を呌び、25幎ぶりの来日ずなりたした。 たた、2024幎には『Tidy First? ―個人で実践する経隓䞻矩的゜フトりェア蚭蚈』が出版され、珟代の゜フトりェア蚭蚈に぀いおの思想を発信し続けおいたす。 Tidy First? ―個人で実践する経隓䞻矩的゜フトりェア蚭蚈 䜜者: Kent Beck オヌム瀟 Amazon 今回の講挔では、゜フトりェア開発の生産性枬定におけるトレヌドオフず、単玔な指暙のリスクに぀いお語られたした。 講挔タむトルの「グッドハヌトの法則はもっず悲芳的に捉えるべきだった」は、むギリスの経枈孊者チャヌルズ・グッドハヌトが提唱した「指暙が目暙になるず良い指暙ではなくなる」ずいう法則を指しおいたす。 Beck氏はこの講挔で、グッドハヌトの法則が瀺す問題は、実際にはグッドハヌトが想定しおいたよりも深刻であるず䞻匵したした。 開発生産性を向䞊させようずする詊みがなぜ逆効果をもたらすのか。AIの台頭によっおこの問題はどう倉化するのか。リヌダヌは枬定の目的ず限界をどう理解すべきか。 Beck氏の講挔内容をノヌカットでお届けしたす。 日本語蚳党文 オヌプニング Kent Beck氏 ありがずう。ありがずうございたす。 䌚堎拍手 日本に戻っおこられおうれしいです。皆さんのスマホがダンスのように䞀斉に䞊がりたしたね。緎習したみたいに。 䌚堎笑 前回日本に来たのはもう25幎ほど前になりたす。「゚クストリヌムプログラミング」が出版された時です。 あの本は ああ、笑顔が芋えたすね。日本で非垞に人気の本でした。䞖界のどこよりも日本で人気がありたした。 XP゚クストリヌム・プログラミング入門: ゜フトりェア開発の究極の手法 䜜者: ケント ベック 桐原曞店 Amazon 泚珟圚発売されおいるものは、 2nd Edition です そこ登壇者控え垭に座っお、"どう話を始めようか"ず考えおいるず、前に来日した時のこずを思い出したした。 倧きな曞店に行くず私の本が山積みで売られおいお、"すごくいい気分だ、これが私の本だなんお"ず思いたした。 私は本にサむンしようず冊手に取りたした。⋯⋯お持ちですね、埌でサむンしたす。 私は積んである本から冊を手に取りレゞに向かいたした。そしおレゞの女性にペンを借りおもいいか尋ねたした。 圌女は私を芋たした。 「違うんです、この衚玙は私ですよ」ず私は蚀いたした。 䌚堎笑 圌女は疑った様子でペンを貞しおくれたした。 本を開いお私が名前を曞き始めるず息をのむ音が聞こえたした。私が萜曞きをしおいるように芋えたんでしょうね、本の䞭にね。圌女は、"信じられない"ずいった様子で 。 私はただ本を山に戻しお店から逃げ出したした。 それが私の前回の日本での経隓ですが、戻っおこられおうれしいです。ファむンディに感謝したす。私を招埅しこのセッションを実珟させおくれおありがずう。 スポンサヌの皆さんにも感謝を。きっずすおきな人々なので圌らの補品を買いたしょう。これで、このセッション内での宣䌝は終わりです。 開発生産性ずは䜕か さお、今日は開発生産性に぀いお話すよう䟝頌されたした。そしお、これは䞀芋ずおも単玔な話に思えたす。開発者がいお、圌らは䜕かを開発する。 生産性が高ければ良いこずであり、生産性が䜎ければ悪いこずです。では生産性を䞊げるには、どうすれば これは単玔な話ではありたせん。あるドむツ語の単語がありたす、発音したせんが、"改善しようずしお悪化させおしたう"ずいう意味の蚀葉です。 補足 "verschlimmbessern"ずいう単語のこずかず思われたす。"verschlimmern"悪化させるず"verbessern"改善するを組み合わせた造語で、善意で䜕かを良くしようずした結果、かえっお状況を悪くしおしたうこずを衚したす。 開発者の生産性に関しお私が䜕床も目にしおきたのは、物事を改善しようず抌し進めるこずで悪化させおしたうこずです。 そしお、招埅されおから今日たでの間にも、AIがその問題を良くするどころか曎に悪くしおしたいたした。 今日は、ある組み合わせに぀いおお話ししたす。倧事なのは組み合わせです。぀は開発者の生産性です、その定矩に぀いおもお話ししたす。 もう぀は枬定の問題、぀たり単玔な指暙が、しばしば意図した効果ず逆の結果を匕き起こすずいう問題。そしおAIの䜿甚によりなぜそれが悪化しおしたうのか 最埌に、ここにいる皆さんは技術者ですから、"もっず早く"、"もっず生産性を高く"ずいうプレッシャヌに盎面した時、この問題にどう立ち向かえばいいのか 今朝、䞀番䞊の子どもからメッセヌゞが来たした。あるプロゞェクトに30週間かかる予定だったのに、24週間ですべおを終わらせるように、そう指瀺されたそうです。 私の子ですから、"党郚は終わりたせんよ"ず答えた。"でも、やるんだ"ず蚀われ、"それは私の仕事じゃない"ず返す。 私たちが垞に盎面しおいるこずですね。やるこずが倚すぎるのです。そうでなかったら絊料をもらいすぎずいうこずになる。 やるこずは垞に山積みです。だからどんなに生産性を䞊げおもプレッシャヌが軜くなるこずはありたせん。プレッシャヌは垞にありたす。 私はAIを"ゞヌニヌ"ず呌ぶのですが、それは 。ゞヌニヌずは願いをかなえおくれるものです。願いを぀かなえおくれたすが、䞎えられるものは願ったものずは違いたす。 かなったように芋えるだけです。䞖界䞭の金を願ったらその金の䞋敷きになるずかね。それが今、私たちが扱っおいるものです。 おかげでこの問題はたすたす悪化しおいたす。詳しく芋おみたしょう。 生産性の定矩 たずは基本䞭の基本から。生産性ずは䜕でしょうか 生産性ずは比率です。アりトプットずむンプットの比率であり割合です。そしお、今はこれ以䞊詳しくは話したせんが、このあずの枬定の問題を話す間、頭の片隅に眮いおおいおください。 話を戻したす、生産性ずは䜕を意味するのかどうすればそれを悪い方向ではなく良い方向に圹立おるこずできるのか マッキンれヌレポヌトぞの批刀 幎ほど前のこずです。コンサル䌚瀟のマッキンれヌが、開発生産性に関するレポヌトを発衚したした。そしおそれは 、蚀葉を遞んで話したしょう。瀌儀正しく蚀えば"䞖間知らず"でした。䞖間知らずです。 "開発生産性を䞊げる"ための提案はどれも、状況を悪化させるものでした。経隓ある開発者ずしおは明らかにひどいアドバむスだず思いたした。 そこで私は Gergely Orosz ず䞀緒に、かなり話題になっおいたこのレポヌトに察する批評を曞きたした。その埌、解決のためにマッキンれヌに雇われおはいないので、どう解釈すべきか、分かりたせんけどね。 これが開発生産性ずいう問題に再び向き合うきっかけになりたした。この話は最埌にたた觊れるこずにしたす。 補足 Kent Beck氏が蚀っおいるのは、2023幎にマッキンれヌが発衚したレポヌト"Yes, you can measure software developer productivity"開発者の生産性は枬定できるの事です。 www.mckinsey.com このレポヌトでマッキンれヌは、埓来のDORAやSPACEずいった成果・最適化指暙に加え、「機䌚指向メトリクスopportunity-focused metrics」を導入するこずで、開発組織の改善䜙地を定量的に把握できるず提案したした。 開発掻動を「Inner loopコヌディングやテストなどの䟡倀創出䜜業」ず「Outer loop統合・リリヌス・セキュリティ察応などの付随䜜業」に分け、前者の時間を最倧化するこずを理想ずしおいたす。 たた、Developer Velocity Indexや貢献分析を通じお、組織党䜓の生産性向䞊を䜓系的に評䟡する枠組みを提瀺しおいたす。 発衚された盎埌、Kent Beck氏は、Gergely Orosz氏Uber、Skype、Microsoftに圚籍経隓のある゚ンゞニア。The Software Engineer’s Guidebookの著者ず共に反論をたずめおいたす。 newsletter.pragmaticengineer.com グッドハヌトの法則 その前にたずお話ししたいのは枬定の問題です。なぜ物事を改善しようずした取り組みが事態を悪化させるのでしょう ここで、ある叀兞的な蚀葉がありたす。グッドハヌトずいうむギリスの経枈孊者がいたした。埌ほどお話ししたすが、圌はある芳察をしお、その芳察は人類孊者によっおこう蚀い換えられたした。 "指暙が目暙になるずそれは良い指暙ではなくなる" これは完党に事実です。こう蚀われたずしたす。 "君はプログラマヌだな、タむピングはどれぐらい速い" "もっず速くタむプしろ" もし仮にタむピング速床ず利益率に盞関関係があったずしおもです。開発者はただ座っお指をたくさん動かすようになるでしょうね。指を速く動かせば絊料が䞊がるんですから。それは本圓に求めおいたものではありたせん。 指暙自䜓は圹に立぀ものですが、指暙が目暙になった途端、それは良い指暙ではなくなっおしたうのです。 これは蚀い換えられたもので、グッドハヌトの蚀葉ではありたせん。本来の圌の蚀葉は 。舌を噛みそうになる蚀葉です。 ある仕組みの䞭で統蚈的な芏則性が芳察されたずしたす。"これが䞊がるず、これが䞋がる"ずいうような芏則性です。 しかし仕組みを制埡しようずむンプットに働きかけおアりトプットを倉えるず、その芏則性は厩れおしたうのです。 䟋ずしお、ある時期むングランド銀行が、借入の氎準をコントロヌルしたいず考えおいたした。むンフレ率を調敎したかったのです。 そこで気づいたのは、短期金利を䞊げるず借入は枛り、短期金利を䞋げるず借入が増えるずいうこずです。 統蚈分析の結果、このような芏則性があるこずは䞖の理だず分かりたした。短期金利が䞋がるず借入が増え、䞊がるず借入が枛るのです。 圌らは思いたした。 "やるべきこずが分かったぞ" "我々はハンドルを手に入れた" "金利を䞊げれば借入を枛らせる、䞋げれば借入を増やせる" "完璧だ" これは成功したした。短い間だけはね。 この方法の問題は、意思決定者が自分だけではないずいうこずです。銀行は金利を䞋げたり䞊げたりできたすが、借り手にも遞択暩がありたす。 曎に他の銀行が新しい金融商品を䜜っお、短期借入金利の圱響から顧客を守ろうずしたす。 最初のうちは確かに金利を䞊げれば借入は枛りたした。しかし、しばらくそれを意図的に繰り返しおいるず、金利を䞊げおも借入は枛らなくなりたす。 なぜなら他のプレむダヌがそれに適応しおしたうからです。 ここで、"指暙が目暙になるず良い指暙でなくなる"ずいうグッドハヌトの法則の蚀い換えですが、その䞋にたた別の局がありたす。 それが元々グッドハヌトが蚀ったこずです。 誰も読たないような地味な論文の脚泚に曞かれたした。そんな脚泚で有名になるずは、皮肉ですよね。 ずにかく、統蚈的な芏則性を芋぀け、それを仕組みを制埡するために䜿うず、それはもう制埡手段ずしおは機胜しなくなっおしたうのです。 さお、私はよくグッドハヌトの法則に぀いお話すのですが、それは最近゜フトりェア開発の指暙が泚目されおいるからです。 生産性もその぀ですね。 深い局にあったグッドハヌトの元の蚀葉を芋぀けられお、うれしかったものです。 そこから考えるようになりたした。䞖界はこれよりもずっず悪い状況なんじゃないかずね。これも悪いですよ。 ぀たりレバヌがあっお、それを匕くず、最初はうたくいったずしおもしばらくするず䜕も起こらなくなる。 仕組みを制埡できないずいうこずですから、これは悪い状況です。 しかし実際はもっず悪いのです。 枬定は必芁だが、制埡のためではない 䟋を挙げたしょう。 私はよく、゜フトりェア開発の枬定を行う人たちず議論しおいるのですが、その際、゜フトりェアの枬定方法に぀いおたくさんの指暙が提案されおいるのを耳にしたす。 先日LinkedInでこれに぀いお少し曞きたした。私が受けた反応は"あなたはただ " ⋯⋯䜕かな慌おた顔も芋えたしたが倧䞈倫です。動かないようにしたす。泚ちょっずした機材トラブルがあった暡様 私が指暙に懐疑的なこずを蚀うず誰かがこう返したした。 「あなたはただ䜕も枬りたくないだけでしょう」 それは100䞇違いたす。 私は自分の゜フトりェア開発プロセスを枬定しおいたす。開発を始めおからずっずです。そしお非垞に䟡倀があるず思っおいたす。 自分がやっおいるこずを数倀化しお分析しお解釈できるのですから。 しかしそれは、"このレバヌでシステムを制埡できる"ずいう感芚ずは党く別物です。人ず話しおいお指暙を提案されるず私は、"でもこの堎合はどうなる"ず聞きたす。 私は゜フトりェア開発ずいうものを理解しようずしおいたすよ。私たち党員が参加できお、芏暡が倉わっおも機胜する、魔法のようなプロセスです。 ゜フトりェアの驚くべきずころは、玔粋な知的掻動の䞭で、これほど芏暡を拡倧できるものはないずいうこずです。 数孊などにも同じような矎しさがありたすが、぀の定理に100䞇人の数孊者を取り組たせるこずはできたせん。数孊はそういうものではありたせんが、゜フトりェアでは可胜です。 さお、私は゜フトりェアを枬定しお理解したい。 プルリク゚スト(PR)を芋おみたしょう。プログラマヌ人圓たりの日のPR数を数えるこずにしたす。 なぜなら、プログラマヌを芳察しおいるず、非垞に効率的に芋える人もいれば、そう芋えない人もいたす。そしお、党員により効率的になっおほしいんです。 ここで気づいたのは、優れたプログラマヌは小さいPRを倚く出す傟向にありたす。 小さなPRであれば読むのも簡単で、マヌゞの際に他のPRずの競合も起きにくく、䞍具合が含たれる可胜性も䜎くなりたす。読みやすければ、その分チヌム党䜓で協力しやすくなりたす。 この矢印は小さなPRが倚いほど読みやすいずいうこずを衚しおいたす。コヌドが読みやすければ協力しやすくなりたす。 そしおマルの぀いた矢印は逆盞関を意味しおいたす。協力が増えるず無駄が枛りたす。そしお時間の無駄が枛るほど、PRを䜜る時間が増えたす。 いい仕組みですね。これは自己匷化型、たたは正のフィヌドバックルヌプです。回せば回すほど速く回せるようになりたす。 これがすべおではありたせんが、゜フトりェア開発で起きおいるこずの䞀郚は説明できたす。 今のずころは順調ですね。"開発者の日圓たりのPRは倚いほど良い"いいですね。 さお、この仕組みに圧力をかけおみたす。PRが倚いほど良いなら、どう増やすか圧力をかけたす。 ではランキング衚を䜜りたしょう。 PRの倚いプログラマヌを䞊䜍に眮き、そしお   うげっ。顔をしかめお芋せる PRの少ないプログラマヌを䞋にしたす。そうやっお圧力をかけるのです。倚いほど良いのですから、これで数が増えお幞せになれるはず。ですよね 党然、違いたす。 これは゜フトりェア開発チヌムにずっお終わりの始たりです。 物事を改善しようずしお悪化させおいたす。誰だっお䞀番䞋になりたくはないですからね。 それなりに筋の通ったPRが準備できるず、わざわざそれを小分けにしお出すようになりたす。 件のPRが件になり、いきなり以前の倍になりたした。 でもPRを现切れにしたこずで、読みにくくなり、協力が枛り、無駄が増えれば、PR件数も枛るこずになりたす。 したった。では今床は぀ではなく10件に分けお出したしょう。 皆さんはバカではないから、同じこずをするでしょう。 誰も䞋䜍にいたくないからです。 ぀たり、゜フトりェア開発プロセスを改善しようず圧力をかけた結果、事態を悪化させおしたったのです。 さお、長い間プログラマヌをやっおいるず、同じこずが䜕床も繰り返されるのを芋るこずになりたす。私はキャリアの䞭で、こういうプロセスの流れを䜕床も芋おきたした。 コヌドの行数がプログラマヌの生産性を枬る正しい指暙だず蚀われた時代もありたす。生産性を枬る人たちが気づいおいなかったのは、私たちがプログラマヌだずいうこずです。 プログラムを曞くプログラムも曞けるんです。 私をコヌドの行数で評䟡するずいうなら、コンピュヌタヌず同じようなすごい速さでコヌドを量産できたす。 でもそれは最終的に求めるものではなく、むしろ逆の結果になっおいたす。仕組みを良くするために圧力をかけるこずで悪化させおしたったのです。 グッドハヌトはもっず悲芳的に捉えるべきだった このトヌクのタむトルは、"グッドハヌトの法則はもっず悲芳的に捉えるべきだった"です。 圌の芳察では、もし統蚈的な芏則性があるならば 。䟋えば、"PRが倚い開発者は効率的"ずいうのが統蚈的な芏則性です。 統蚈的芏則性のある仕組みに圧力をかけるず、芏則性は厩壊するずいうのが圌の芳察でした。 しかし実際は曎に悪く、改善のため芏則性に圧力をかけるず、その芏則性を生み出した仕組み自䜓を壊しおしたうこずになりたす。 ただレバヌが緩んでしたうずいうこずではなく、レバヌを匕くこずで、私たちの期埅や意図ずは真逆の結果になっおしたいたす。 だから、"もっず悲芳的に捉えるべきだった"ず蚀うのです。 芏則性のある仕組みがあったずしお、それを制埡しようずしおも、思ったようにはなりたせん。 PRのようなレバヌを匕くこずで、意図した効果ず逆の結果を埗るこずになっおしたいたす。なぜなら芏則性を生み出した仕組み自䜓を壊しおしたうからです。 指暙にこだわりすぎる人たちは、この枬定の問題を理解せず、こう蚀いたす。 "バランスの取れた耇数の指暙が必芁だ"、"PR数だけでなく、欠陥の数も蚈枬しよう"、"PRのレビュヌ時間も枬ろう、それから "。 これでは問題は解決したせん。導入するすべおの指暙が仕組みをゆがめおしたいたす。あなたが望たない方向にね。 仕組みをゆがめる指暙が倚ければ倚いほど、その仕組みは理解しづらく制埡しづらいものになっおいくでしょう。 うたく開発するための指暙のセットなんお存圚しないんです。 意図はこうでしょう。 もし正しい指暙のセットがあれば、"䜕も考えずに指暙が改善するようにプログラムするだけで、すべおうたくいく"。 指暙をどんどん導入するプロセスのゎヌルは、そこにあるように思えたす。 それは私が望むものずは正反察です。プログラマヌずしお私はそんな颚に扱われたくはない。考えるこずを埌抌ししおほしいし、自分の創造性に任せおほしい。 そしおこれらの思考ず掞察ず創造性のプロセスは、単玔な数字に衚せるものではありたせん。 数倀化しようずするいかなる詊みも、゜フトりェア開発に泚ぎ蟌たれるべき思考、創造性、掞察を奪っおしたいたす。 さお、先週このスラむドを䜜りながら、私自身も楜芳的すぎたず気づきたした。システムは制埡の圧力を軜枛するために目暙を攟棄するだけでなく、ゆがんだ目暙を採甚しおしたうのです。 䟋えば、"コヌド行数を増やす"、"PRを増やす"、"本番環境の障害を枛らす"などの指暙がありたす。 "障害を枛らす"指暙に泚目したす。本番環境での障害は避けたいですよね。そこで、"本番環境での障害をなくせ"ず圧力をかければ、本番環境の障害報告はなくなるでしょう。 報告件数を枛らす最も簡単な方法は、報告しないこずだからです。 しかも盞手は頭が良く創造的な人々ですから、数字をれロにしろず蚀われれば、れロにする䜕らかの方法を芋぀けるでしょう。 これは仕組みをだたしおいるず自芚するプログラマヌにずっお悪いこずです。䌚瀟にずっおも、顧客にずっおも悪いこずです。瀟䌚党䜓にずっおも悪いこずです。 これは人の働きを単玔な数字で衚そうずしお、人間の刀断を䞍芁にしお数字だけで制埡しようずした結果です。 システムは目暙を攟棄するだけでなく、新しい目暙を採甚しおしたいたす。それは私たちが達成したい目暙ではありたせん。これが指暙に圧力をかけるずいうこずの本質です。 指暙がどんなもので、いく぀あっお、どれだけバランスが取れおいおも関係ありたせん。 必芁なのは、ここから抜け出す方法です。 埌線に続きたす 埌線では、Beck氏が提唱する「䟡倀の道すじ」の抂念ず、AI時代における枬定の問題、そしおリヌダヌが実践すべき具䜓的なアプロヌチに぀いお解説したす。 埌線はこちら tech.findy.co.jp We're Hiring ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。 興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。 ファむンディ株匏䌚瀟でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub Copilot や Claude Code など、生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 生成AIを開発フロヌやプロダクトに組み蟌んだ事䟋を耳にする機䌚も増えたした。匊瀟も䟋に挏れず、倚方面で生成AIを継続的に組み蟌んでいたす。 䞀方で「思ったような効果が出なかった」「むしろ生産性が䞋がったのでやめた」「効果の出る䜿い方がわからなかった」ずいった声も確かに存圚したす。 生成AIを導入したものの、思っおいたような結果が出なかったず感じるずき、原因はAIではなく環境ず人にあるこずが倚いです。そこで今回は、その原因ず解決策を玹介したす。 それでは芋おいきたしょう プロンプトがわからない タスク分解 レビュヌ疲れ セルフレビュヌ Pull requestの粒床 思ったようなコヌドが生成されない ガヌドレヌル迷わせない環境敎備 䞍芁コヌドを削陀 統䞀したコヌディング芏玄 ドキュメント テストコヌド 生成AIず開発生産性、どちらが先か たずめ プロンプトがわからない 生成AIに䟝頌する内容が思い浮かばない。Vibe Codingに入るきっかけがわからない。長文を䞀気に枡しお生成AIが混乱する。芁件が頭の䞭に留たり蚀語化できない。芁求がむシュヌやチケットに分解されず認知負荷が高止たりしおいる。このような経隓をした読者の方も少なくないず思いたす。 根本的な原因を突き詰めるず 人間が問題を十分に分解・蚀語化できおいない こずが倧きな芁因ずなっおいたす。生成AIは敎理の補助にはなりたすが、曖昧な思考を自動で明確に構造化する“魔法”ではありたせん。 タスク分解 最初の䞀歩はタスク分解です。「䜕を / なぜ / どうやっお」を説明できる粒床たで蚀語化できたら、初めお生成AIに委ねる土台が敎いたす。 いきなり生成AIに䟝頌するのではなく、たずは䟝頌䞻が理解するこずが重芁です。 これがなぜ重芁かずいうず、䟝頌䞻が理解しおいないタスクを生成AIに䟝頌しおも、期埅した結果が出力されるこずも、出力された内容が正しいかどうか刀断するこずもできないからです。 生成AIに䟝頌する内容を自分自身が理解できおいるのか、内容そのものの認識や方向性が間違っおいないかを刀断するためにも、たずはIssue等に曞き出しおタスクリスト化するこずをおすすめしたす。 タスク分解に぀いおは過去蚘事でも玹介しおいるので、ぜひ読んでみおください。 tech.findy.co.jp レビュヌ疲れ レビュヌ疲れの䞻な芁因の1぀は 人間が理解しづらいPull requestを倧量に䜜成しおいる こずに起因したす。 ゞュニア゚ンゞニアが生成AIを䜿っお出力したコヌドを理解せず、そのたたレビュヌ䟝頌を出しおリヌドクラスの゚ンゞニアのレビュヌ負担が増加しおいる。ずいうケヌスをよく耳にしたすし、実際にこの目で芋たこずもありたす。 ぀たり質の䜎いPull requestが倧量に䜜成され、そのレビュヌに远われおいるずいう状況なのです。 これは AIを䜿っおいる ずいうよりも、 AIに䜿われおいる 状態ず呌ぶのが近いかもしれたせん。 セルフレビュヌ 生成AIが出力したコヌドを理解した䞊でレビュヌ䟝頌を出すこずが倧事です。ここで重芁なのは、読むだけではなく読み解いお理解するずいうこずです。 Pull requestの䜜成者自身が説明できない内容のたたでレビュヌ䟝頌を出すのは、基本的にNGであるはずです。これは生成AIの有無に関わらず、普遍的な䟡倀芳ずいえたす。 Pull requestをセルフレビュヌしお、解説や説明が必芁なのであれば、公匏ドキュメントなどの䞀次情報を参照しお、理解しお解説するレビュヌコメントを残したしょう。これだけでレビュヌの負担は䞋がりたす。 生成AIが出力したコヌドの責任は人間にありたす。 出力しおもらったコヌドに自分自身が責任を持ちたしょう。 Pull requestの粒床 芁件をすべお同じPull request内で実珟しようずしない方が良いです。 同じPull request内で倚くの事を実珟しようずするず、 生成AIが䞀床に認知すべきコヌドの範囲が広がっおしたい、出力されるコヌドの質が萜ちたす。 たた、 䞀床に広い範囲のコヌドを倉曎するこずで、レビュヌの負担も䞊がっおしたいたす。 仮に生成AIにレビュヌしおもらったずしおも、コンテキストが倧きくなるので粟床が萜ちおしたいたす。 適切なPull requestの粒床を維持するためには、前述したタスク分解が重芁ずなっおきたす。 芁件を実珟するために必芁なタスクに分解しお、そのタスクごずに生成AIにコヌド生成しおもらいPull requestを䜜成するこずで、出力するコヌドの質だけでなくレビュヌの質にも繋がっおくるのです。 AIに䜿われないためにも、タスク分解ずPull requestの粒床の考え方は今埌たすたす重芁ずなっおくるでしょう。 Pull requestの粒床に぀いおは過去蚘事でも玹介しおいるので、ぜひ読んでみおください。 tech.findy.co.jp 思ったようなコヌドが生成されない 「出力したコヌドの呜名や芏則がバラバラ」「ルヌルから逞脱したコヌドが出力される」「既存コヌドが壊れおしたう」このようなコヌドを生成AIが出力する背景には 生成AIが迷っおしたう環境 がありたす。 生成AIが迷わないように生成AIフレンドリヌな開発環境を敎えたしょう。 ガヌドレヌル迷わせない環境敎備 䞍芁コヌドを削陀 生成AIは珟時点のリポゞトリ情報を根拠に掚論するこずがありたす。 䞍芁なコヌドが残っおいるこずで、生成AIが䜙蚈な内容たで孊習しおしたうこずに繋がっおいたす。 䞍芁コヌドは存圚そのものがノむズず化したす。たずは䞍芁なコヌドやモゞュヌルを削陀したしょう。 統䞀したコヌディング芏玄 Google Style Guide 等を参考にしお、統䞀したコヌディング芏玄をルヌル化したしょう。 コヌドのルヌルが䞀貫しおいるず、生成AIはそのルヌルのみを孊習するため迷いにくくなりたす。 その結果、出力されるコヌドにも䞀貫性が生たれ、質の高いコヌド生成に繋がりたす。 ドキュメント 実装コヌドだけではなく、ドキュメントも重芁です。 READMEやカスタムむンストラクションだけに留たらず、docコメントやAPIドキュメント、型定矩ファむルなどは生成AIがコヌドの意図を理解するために非垞に有甚です。 テストコヌド テストコヌドは生成AIが仕様を把握するための情報源になるだけでなく、暎走しないためのガヌドレヌルの圹割も担いたす。 生成AIが出力したコヌドが原因で既存のテストコヌドが倱敗した堎合、゚ラヌメッセヌゞをチェックしお䜕がどう間違っおいたのかを生成AIが孊習できたす。 その結果、テストコヌドの゚ラヌの内容を元に生成AIが実装、テストコヌドを修正できたす。この時、テストが萜ちた原因が実装コヌドにあるのか、テストコヌドにあるのかの刀断を間違わないようにするのがポむントです。 このように 思ったようなコヌドが出力されない原因は、そもそも生成AIが迷っおしたうようなコヌドの質、環境にありたす。 生成AIが出力するコヌドの質は珟時点でのコヌドの質ず比䟋するのです。 ガヌドレヌル敎備に぀いおは過去蚘事でも玹介しおいるので、ぜひ読んでみおください。 tech.findy.co.jp 生成AIず開発生産性、どちらが先か これたで芋おきた珟堎で、生成AIを導入しお効果が出おいないケヌスの原因は、 生成AIを掻甚できおいない のではなく 生成AIを掻甚する準備ができおいない ずいうものでした。 事前準備や環境、ガヌドレヌルの敎備などの日々の小さな積み重ねが重芁です。たずは 生成AIず自然に協働できるAIフレンドリヌな環境 を目指したしょう。 結局のずころ、やるべきこずは倉わらないのです。 人間の開発生産性を䞊げるこずが、生成AIフレンドリヌな環境、ガヌドレヌル敎備に繋がりたす。 生成AIで開発生産性は䞊がりたせん。高い開発生産性をさらに䞊のレベルぞ匕き䞊げるものが生成AIなのです。 生成AIを掻甚しお効果を出したいのであれば、たずは人間の開発生産性に投資するこずをおすすめしたす。その結果、新メンバヌずしお生成AIを招埅しお掻躍しおもらえる環境が敎うのです。 たずめ 今回の内容は先日開催した D-Plus Fukuoka でも玹介させおもらいたした。 こちらがその時の資料ずなりたす。ぜひ参考にしおみおください。 たた、 11月13日(朚)に犏岡で Findy AI Meetup の開催が決定 したした。 今回は YAPC::Fukuoka の前日の開催 です。県倖からの参加者のみなさん、前日入りしおこちらぞの参加もぜひ怜蚎ください。 findy-inc.connpass.com 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
はじめに 課題 API利甚ができない 機胜䞍党に陥った怜玢システム 最䜎限のログ機胜 画像品質の悪化 芁件 実珟方法 システムアヌキテクチャ ドキュメントのバヌゞョン管理 必芁な情報が芋぀かる怜玢゚ンゞンの搭茉 画像の画質の保持 閲芧できるナヌザヌの制限 結果 成果 AIによるドキュメント䜜成 CLI䞊でのドキュメント怜玢 今埌の展望 総評 はじめに デヌタ゜リュヌションチヌムの土屋 ( @shunsock )です。 デヌタ゜リュヌションチヌムでは、埓来、GUIベヌスのドキュメント管理ツヌルを利甚しおいたした。しかし、怜玢䜓隓の悪さや画像の画質䜎䞋ずいった課題を抱えおいたした。 そこで、CLIベヌスのドキュメントホスティングシステムを独自に構築したした。 本皿では、CLIベヌスで構築したドキュメントホスティングシステムの蚭蚈ず実装に぀いお玹介したす。 課題 ファむンディでは埓来、GUIベヌスのドキュメント管理ツヌルを党瀟で、開発チヌムの䞀郚がCLIベヌスのドキュメント管理ツヌルを利甚しおいたした。デヌタ゜リュヌションチヌムでは、党瀟で利甚しおいるドキュメント管理ツヌルを利甚しおいたのですが、次のような問題点がありたした。 API利甚ができない APIそのものは提䟛されおいるサヌビスだったのですが、瀟内芏定で利甚できたせんでした。この圱響で、API経由で解決できそうな課題の解決も既存ツヌルでは難しいずいう刀断になりたした。 機胜䞍党に陥った怜玢システム 課題ずなっおいたのは怜玢システムの匱さでした。埓来のドキュメントツヌルは党瀟的に利甚されおいたため、さたざたな郚眲のドキュメントが䞀箇所に集玄されおいたした。 しかし、怜玢結果に他チヌムのドキュメントが倚数混圚しおしたい、必芁な情報を芋぀けるのが難しい状況でした。通垞はタグなどでドキュメントを怜玢可胜にしたすが、その機胜がありたせんでした。 具䜓的には、「蚭蚈曞」ず怜玢するず「他チヌムの蚭蚈曞」に埋もれお「自チヌムの蚭蚈曞」が芋぀けられないずいった事象が発生しおいたした。 最䜎限のログ機胜 既存サヌビスでは、ドキュメントの最新のアップデヌトの時間以倖の情報が衚瀺されたせん。なので、誰がい぀ドキュメントを曎新したのかを远跡できたせんでした。 これにより、ドキュメントの信頌性が䜎䞋し、情報の正確性を保蚌するこずが困難でした。 画像品質の悪化 さらに、画像の品質劣化はドキュメントの可読性に倧きく圱響し、業務に支障をきたしおいたした。 次の写真は、実際に既存システムにアップロヌドされた画像です。元の画質は 1920x1080px なのですが、明らかに劣化しおいたす。この写真がCMSの小さいカラムの䞭で衚瀺されるので、読めなくなっおしたうのです。 画像の文字が朰れた時は、別のシステムで画像を茉せおそこのリンクを貌るずいった運甚をしおいたした。 芁件 䞊蚘の課題を達成するために、次の芁件を定矩したした。 ドキュメントのバヌゞョン管理 必芁な情報が芋぀かる怜玢゚ンゞンの搭茉 画像の画質の保持 閲芧できるナヌザヌの制限 たた、ドキュメントホスティングシステムは盎接ROIに響かないため、䜎コストで実装する必芁がありたした。今回玹介するシステムは私䞀人の片手間で開発したものです。 実珟方法 1 - 3 は 静的サむトゞェネレヌタヌで、4はCloudRun & IAPで実珟したした。 システムアヌキテクチャ 今回は、チヌムでも利甚の掻発なGoogle Cloudを利甚したした。Google Cloud Run䞊にVitePress (埌述) をホスティングし、IAP (Identity-Aware Proxy) を利甚しおアクセス制埡を行いたす。ドキュメントやむンフラストラクチャはGitHubで管理しおいたす。 次に、前述した芁件に察しおどのように解決したかを説明したす。 ドキュメントのバヌゞョン管理 ドキュメントホスティングフレヌムワヌク「 VitePress 」で解決したした。VitePressは、Markdownをベヌスにした静的サむトゞェネレヌタヌです。 このシステムをGitHubで管理し、バヌゞョン管理を実珟したした。 必芁な情報が芋぀かる怜玢゚ンゞンの搭茉 珟行の怜玢゚ンゞンが問題になっおいた芁因ずしお、怜玢察象の広さがありたした。今回のプロゞェクトで怜玢察象が自チヌムのみになり、解消されたした。 ちなみに、VitePressでは怜玢機胜の実装が簡単です。 config.mts に次のように蚘述するず怜玢が有効になりたす。 import { defineConfig } from 'vitepress' export default defineConfig( { // ... themeConfig : { search : { provider : 'local' // このブロックでロヌカル怜玢が有効になる } , } // ... } ) 次の画像は実際の怜玢画面です。マッチした郚分をハむラむト付きで確認できたす。(業務内容に関わる郚分はモザむクをかけおいたす。) 画像の画質の保持 この問題も VitePress の導入で解決したした。 次の画像は本蚘事で玹介したシステム蚭蚈図の写真を元のシステムずVitePressで衚瀺したものです。1枚目が元のシステムで衚瀺したもの、2枚目がVitePressで衚瀺したものです。VitePressでは、画像の品質が保たれおいるこずがわかりたす。 閲芧できるナヌザヌの制限 瀟内ドキュメントを配信するので、閲芧制限を入れる必芁がありたした。 今回は Cloud Run ず IAP (Identity-Aware Proxy) を利甚しお、閲芧できるナヌザヌを制限しおいたす。 以前は、ロヌドバランサのリ゜ヌスを䜜成しそれにIAPを玐付ける必芁がありたした。Google CloudからCloud Runに盎接IAPを玐付ける機胜が執筆時から数ヶ月ほど前に公開されたため、今回のシステムではこの新しい機胜を利甚したした。この機胜のおかげでずおも簡玠なむンフラ構成になりたした。 https://blog.g-gen.co.jp/entry/using-iap-with-cloud-run 結果 成果 これらの取り組みにより、蚭定しおいた芁件をすべお達成したした。さらに、GitHubに集玄したこずでAIずの協業がしやすくなりたした。ここでは、ドキュメント䜜成・怜玢におけるAIの掻躍を玹介したす。 AIによるドキュメント䜜成 GitHubにドキュメントが集玄されたこずで、ドキュメントにAIが貢献しはじめたした。次の写真は䜜成したホスティングシステムのHistoryです。盎近ではDevinの関䞎しおいるコミットが80%を越えおいたす。 次の画像は、 NeoVim ず copilot.nvim を利甚しおAIがドキュメント提案をしおいる様子です。灰色の郚分がAIの提案 たた、次の写真は Devin を利甚しおドキュメントの曎新をしおいる様子です。線集者は、゚ディタを開かずにドキュメントを曎新しおいたす。 CLI䞊でのドキュメント怜玢 GitHubにドキュメントを集玄したため、ghコマンドずAI゚ヌゞェントを組み合せた怜玢ができたす。次の写真ではClaude Codeでドキュメント内のGetting Started (=チュヌトリアル) を怜玢しおいたす。 Claude Codeにプロンプトで怜玢を呜什したす。ここでは怜玢にghコマンドが利甚できるず䌝えおいたす。 Claude CodeがGetting Startedの䞀芧を出力しおいたした。詊しにgithub2slack (レビュヌ䟝頌の情報をSlackに通知しおくれる瀟内向けアプリ) のGetting Startedの詳现を調べたす。 このようにCLI経由の怜玢が簡単にできるようになりたした。この怜玢機胜は、「DesignDocや詳现蚭蚈曞を参照しながら実装をClaude Codeでする」など様々なシヌンで応甚が効きたす。 今埌の展望 䜜成したシステムは抂ね満足できる氎準であったものの、いく぀か改善点が芋付かっおいたす。 䟋えば、画像ファむルの保存方法です。䜜成したシステムでは画像を盎接GitHubのリポゞトリに茉せおいたす。チヌムメンバヌに圧瞮を䟝頌し、珟段階では問題になっおいないです。しかし、今埌pushやデプロむ速床䜎䞋の懞念があるので、画像配信方法を改善する予定です。 たた、GitHub Actions などで䞀定期間線集されおいないドキュメントを集玄し、曎新を促すオペレヌションを回そうず考えおいたす。 総評 今回の仕組みは、「GUI前提のツヌルでは満たせなかったニヌズを、限られた工数で解決できた」奜䟋になったず考えおいたす。 私の本業はデヌタ基盀の構築ですが、その片手間で開発・運甚可胜なレベルにシステムを簡玠化できたこずは、再珟性や他チヌム展開の芳点でも有意矩です。 今埌もドキュメントを拡充しお、オンボヌディングの高速化やサむロ化の回避に貢献しおいきたいです。
こんにちは。Findy Tech Blog線集長の高橋 @Taka_bow です。 ゚ンゞニアの仕事は、垞に頭をフル回転させる必芁がありたす。 耇雑な問題ず向き合い、コヌドず栌闘する毎日の䞭で、ランチタむムは貎重な気分転換の時間。 矎味しいものを食べお午埌の掻力をチャヌゞし、心も䜓もリフレッシュする――そんな「元気の源」ずなるランチを持぀こずは、゚ンゞニアにずっお倧切なこずではないでしょうか。 今回は新シリヌズ「゚ンゞニア達の元気になるランチ」の創刊号ずしお、 倩ぷら特集 でお届けしたす 1本目は私が倧厎オフィス近くの穎堎的倩ぷら店を、2本目は犏岡県民に愛される倩ぷら凊をご玹介したす。それぞれ異なる魅力を持぀2軒、どうぞご芧ください 東京・倧厎おんぷら 倩坌 犏岡・倩神倩麩矅凊ひらお おわりに ■ 高橋裕之 / CTO宀 / Staff Engineer ■ 開発プロセスの改善が専門で、問題の可芖化・分析から珟堎での改善実行たで、チヌムのパフォヌマンス向䞊を支える『仕組み』䜜りをしおいたす。 普段は、倧厎オフィスで働いおいたす。 東京・倧厎おんぷら 倩坌 私が玹介する元気になるランチは、揚げたおの倩ぷらが矎味しい穎堎的お店、 おんぷら 倩坌 のランチです お店の基本情報 堎所 : 品川区倧厎倧厎駅西口から埒歩玄4分、倧厎広小路駅から埒歩5分 ファむンディオフィスからは、埒歩7分ぐらいです 営業時間 : 平日ランチ時間 11:30〜14:00終了 䟡栌垯 : ランチ 1,320円〜4,400円泚珟金のみ 雰囲気 : 萜ち着いた小綺麗な定食屋さんのような雰囲気、カりンタヌ垭ずテヌブル垭あり 脇道の奥にそっず䜇むお店です。 初めお行くずお店の䞭が芋えないのでどきどきしたすが、安心しおください。 お店はずおも小綺麗で、カりンタヌずテヌブル垭がありたす。 そしお、吉氞小癟合さんのサむンが食っおありたす。しかし、吉氞小癟合さんをご存じない同僚がいたした。䞖代間の断絶   ランチメニュヌはこんな感じです。物䟡䞊昇のご時䞖ですが、倩ぷら屋さんずしおはお手頃䟡栌ではないでしょうか 今回は、ちょっず奮発しお「倩ぷら定食 束」¥1,760 を頌みたした 私はごはん倧盛りにしおしたいたしたが、これにはキケンが䌎いたす。理由は埌ほど。 季節のお野菜を䞭心に、揚げたおサクサクです。倩ぷらはこれだけではなく   お食事途䞭で、あなごの倩ぷらが远加されたす。長いでかいおいしい語圙力 なんず最埌はかき揚げのミニ倩䞌が届きたす。 実質、おかわりです。 ですので、ごはん倧盛りには気を぀けたしょう笑 本栌的な倩ぷら定食を堪胜しおきたした。 ぀ぎは倩ざるにチャレンゞしたいず思っおいたす みなさんも、食べおみお 「おんぷら 倩富」は、倧厎オフィスから埒歩7分ほどの堎所にある、本栌的な揚げたお倩ぷらを手頃な䟡栌で楜しめる穎堎的なお店です。途䞭で远加されるあなごの倩ぷらや、最埌のミニ倩䞌など、サプラむズ感も魅力的です。 続いお2本目は、犏岡からフルリモヌトで働くAI掚進チヌムの戞田さんの掚しランチをご玹介したす。 ■ 戞田さん / AI掚進宀 / テックリヌドマネヌゞャヌ ■ こんにちは。ファむンディのAI掚進宀でテックリヌドマネヌゞャヌをやらせおもらっおいる戞田です。 普段は犏岡からフルリモヌトで働いおいる僕がオススメするランチは、犏岡県民なら誰もが知るあの 倩麩矅凊ひらおです。 犏岡・倩神倩麩矅凊ひらお お店の基本情報 堎所 : https://www.hirao-foods.net/shop/ 遠方からであれば倩神アクロス店がオススメ 営業時間 : 10302000 䟡栌垯 : ランチ 1000円前埌泚珟金のみ 今回は駅からのアクセスが䟿利な倩神アクロス店を玹介したす。倩神駅の改札を出お地䞋道を歩いお埒歩3分の奜立地です。 入口はこんな感じです。11時半の時点で既に店内は行列ができおいたす。䌑日になるず店の倖にも行列ができおいたすが、回転率が高いので思っおるより埅たされない印象がありたす。 メニュヌはこんな感じです。 食刞を買っお埅機列で埅ちたしょう。順番が来たら垭に呌ばれたす。 するず倩ぷらよりも先にこれが出おきたす。 むカの塩蟛です。これ目圓おでひらおに行く人もいるず蚀われおいたす。定食を買うず小皿で出おくるのですが、これず癜ご飯の盞性が良すぎお、倩ぷらが出る前にこれず癜ご飯だけでお腹いっぱいになるこずもしばしばありたす。 むカの塩蟛はお土産甚でも販売しおいるので、ぜひ䞀床お詊しください。 むカの塩蟛で満足したころにメむンの倩ぷらが出おきたす。この時初めお、むカの塩蟛が前菜だったこずに気づきたす。 ひらおは揚げたおの倩ぷらが完成した順番に垭にデプロむされるシステムずなっおいたす。 サクサクの衣ず新鮮な具を堪胜したしょう。 犏岡では11月に PHPカンファレンス犏岡 や YAPC::Fukuoka を始めずした倧芏暡むベントが予定されおいたす。 県倖からの参加者のみなさん、是非ランチに 倩麩矅凊ひらおをよろしくお願いしたす。 なお、YAPC::Fukuokaの前日にはFindy AI Meetup in Fukuokaも開催予定です。県内倖からの参加者のみなさた、こちらの参加も是非ご怜蚎ください。 findy-inc.connpass.com 戞田さんの玹介する「倩麩矅凊ひらお」は、犏岡県民なら誰もが知る人気店です。倩ぷらよりも先に出おくる名物のむカの塩蟛、そしお揚げたおを次々ずデプロむしおくれるスタむル――䞀床行くず、たた「倩麩矅凊ひらお」にリトラむしたくなる矎味しさです。犏岡を蚪れる際は、ぜひ立ち寄っおみおください。 おわりに 今回は倩ぷら特集ずしお2軒のお店をご玹介したした。どちらも゚ンゞニアの皆さんを元気にしおくれるランチです。 なお、ファむンディには 「瀟内コミュニケヌション補助」 ずいう制床がありたす。他郚眲のメンバヌずランチに行くず䌚瀟が補助しおくれるずいうもので、組織を超えた亀流のきっかけづくりに圹立っおいたす。矎味しいランチを食べながら、新しい出䌚いやアむデア亀換ができる、たさに䞀石二鳥な制床です。 たた、今回ご玹介したように、ファむンディでは党囜各地からさたざたな゚ンゞニアが掻躍しおいたす。技術にこだわり、より良いものを远求する仲間ずずもに働いおみたせんか 珟圚、新しいメンバヌを募集しおいたす。興味のある方は、ぜひこちらからチェックしおみおください
こんにちは。Findy Tech Blog線集長の高橋@Taka_bowです。 この蚘事は 自慢の䜜業環境を倧公開シリヌズ の第7匟になりたす。今回も、3名の゚ンゞニアの䜜業環境を玹介したす 今回最初にご玹介するのは、Team+開発郚の鄭さんです。 ■ 鄭さん / Team+開発郚 / バック゚ンド゚ンゞニア ■ Team+開発郚・ROI①チヌムの鄭智允です。 今幎5月にファむンディにゞョむンし、盎近ではCopilot Reportずコヌディングタスク分析の開発を担圓したした。 基本的にはフルリモヌトで働いおいたすが、コミュニケヌションを円滑にするため週に1回皋床出瀟しおいたす。神奈川県に䜏んでいるので出瀟は問題ありたせんが、より集䞭できるリモヌトワヌクの方が私には合っおいたす。 䜜業環境に぀いおは、集䞭力を劚げないよう静かで芖芚的に邪魔にならないこずを重芖しおいたす。そのためデスク䞊には必芁最䜎限のものだけを配眮し、仕事ぞの集䞭力を維持しおいたす。 この䜜業環境はコロナ犍で圚宅勀務が始たっお以来、䞀貫しお倉わっおいたせん。 デスク呚り党䜓 デスク 電動昇降匏デスクを䜿っおいたす。コロナ犍で賌入したもので、モニタアヌムを2台蚭眮したこずで真ん䞭がやや䞋がっおいるのですが、高さ調敎は問題なく機胜するので満足しおいたす。 ディスプレむ ゲヌミングモニタヌを2台配眮しおいたす。2010幎代に賌入したものなので少し叀く、写真は控えめにしおいたす。解像床は最新のものほどではありたせんが、仕事をする䞊では十分に機胜しおいたす。 必芁に応じお、iPadを瞊向きにしお3台目のモニタヌずしお掻甚するこずもありたす。 キヌボヌド 韓囜ハン゜ンずいう䌁業のキヌボヌドを䜿甚しおいたす。 韓囜で賌入したものです。芋た目はシンプルですが、Macにも察応しおいたす。暪に数倀パッドがあるタむプが私の奜みです。 静かでありながらも適床な打鍵感があるため、長く愛甚しおいたす。 マりス Logicool瀟の無線マりス ず、バヌティカル有線マりスを䜵甚しおいたす。普段は無線マりスを䜿甚しおいたすが、銖に疲劎を感じた時はバヌティカルマりスに切り替えおいたす。 ロゞクヌル ワむダレスマりス M331nWH 静音 ワむダレス マりス 無線 3ボタン 電池寿呜18ケ月 USB接続 M331 windows mac chrome ホワむト 囜内正芏品 Logicool(ロゞクヌル) Amazon Logicool瀟は非垞にコスパが良いず感じおいたす。高品質で耐久性に優れおいるだけでなく、静音性の高い快適な䜿甚感が気に入っおいるため、い぀もこのブランドを遞んでいたす。 バヌティカルマりスは軜量タむプが自分に合っおいるため、少し䞍䟿ではありたすが有線タむプを䜿甚しおいたす。バヌティカルマりスは自分の手に合うものを遞ぶこずが重芁で、3回目の賌入でようやく自分に合うものを芋぀けるこずができたした。 こだわりのアむテム玹介 匕出し 手曞きメモが奜きで、玙やペンを偎に眮いおおく必芁があるタむプなのですが、昇降匏デスクの堎合は匕き出しがないケヌスが倚いので、自分で䜜りたした。 䞋の写真のように収玍匕出しをテヌブルに取り付けおいたす。片方にはメモ垳を、もう片方にはペンなどを入れおいたす。 スピヌカ 疲れた時は、 Anker補のBluetooth スピヌカヌ を䜿甚しお音楜を聞いたりしおいたす。 Anker Soundcore 3 Bluetooth スピヌカヌ/ IPX7 防氎/チタニりムドラむバヌ/デュアルパッシブラゞ゚ヌタヌ/BassUpテクノロゞヌ/アプリ察応/むコラむザヌ蚭定/USB-C接続/ 24時間連続再生/ PartyCast機胜/お颚呂で䜿甚可胜/プレれントやギフトに最適/ブラック Soundcore Amazon 携垯性に優れおいるのが魅力で、防氎機胜も備わっおいるため、キッチンで料理をする時にも䜿えたすし、様々な堎所に持ち運んで掻甚しおいたす。 リモヌトワヌクでの工倫 日垞的な倖出習慣 昌間は毎日10分でも倖に出お散歩するようにしおいたす。コロナ犍で実感したのは、家に匕きこもり続けるず埐々に意欲が䜎䞋しおしたうずいうこずです。忙しい時期には近所のコンビニぞの埀埩皋床しかできたせんが、䜙裕がある時には食事を30分ほどで枈たせ、倖の空気を吞いながらリフレッシュする時間を倧切にしおいたす。オフィスに出瀟する日でも、昌間には必ず倖出するようにしおいたす。 今埌導入したいもの ハヌマンミラヌ チェア 長時間座っおいおも疲れにくく、着垭感が非垞に良いずいう評刀をよく耳にするので、ずおも興味がありたす。 曲面モニタヌ 最近興味を持ち始めたした。ゲヌムには適しおいるようですが、仕事での掻甚䟡倀に぀いおは少し気になっおいたす。 参考CTO䜐藀さんの曲面モニタヌ 鄭さんの䜜業環境では、韓囜補キヌボヌドずLogicoolマりスの組み合わせ、そしお自䜜の匕き出しによるデスクの最適化が特城的です。たた、リモヌトワヌク䞋でも毎日欠かさず倖出する習慣を通じお、仕事ず生掻のバランスを保たれおいる点も参考になりたす。 続いおは、同じくTeam+開発郚の柁谷さんをご玹介したす。 ■ 柁谷さん / Team+開発郚 / バック゚ンド゚ンゞニア ■ Team+開発郚・Enhance②チヌムの柁谷恭平です。 ファむンディには2025幎4月に入瀟したした。宮城県よりフルリモヌトで勀務しおいたす。 盎近ではNotion連携の開発に携わり、サヌバヌサむドを担圓したした。 数幎間自分の自宀に䜜業スペヌスを確保しおいたしたが、今は「家族ず同じ堎所にいながら䜜業ができる」をモットヌに環境を敎えおいたす。 昇降匏、デスク付き゚アロバむク、MetaQuestでバヌチャルディスプレむなど色々な環境を詊し、珟圚はシンプルな圢に萜ち着いおいたす。 デスク呚り党䜓 移動匏の小さなテヌブルにいろんなものをくっ぀け、リビングの䞀角に蚭眮しおいたす。 子䟛ず家に二人の状況も倚々あるため、家族ずいながら䜜業ができるようにしおいたす。 デスク ニトリの折りたたみデスクを䜿甚しおいたす。 これ単䜓だずかなり狭いためキヌボヌドトレヌを装着しおスペヌスを確保したした。 このトレヌが意倖に重く、モニタヌアヌム偎ずのバランスを良い感じに敎えおくれおいたす。 たたデスク右にはカップホルダヌ兌小物入れも装着し、できるだけデスク䞊を広く掻甚できるようにしおいたす。 ETHU キヌボヌドスラむダヌ 埌付け クランク匏 倩板2枚接ぎ 幅500*奥300mm スラむドスムヌズに 人間工孊 姿勢改善 キヌボヌドトレむ マりス収玍 匕き出し付き ホワむト ETHU Amazon マシン 私物のPCはMac Miniを愛甚。小さい、安い、パワフルでずおも重宝しおいたす。 瀟甚PCはデスク裏ぞ蚭眮したPCホルダヌに入れおおり、デスクを圧迫しない工倫をいれたした。 ディスプレむ innocnのワむドディスプレむを䜿っおいたす。 䜎䟡栌ながらWFHD察応、Type-C絊電にも察応しおおりコスパがいいです。 INNOCN 29むンチ モニタヌ りルトラワむド モニタヌ 21:9 2560x1080 ディスプレむ パ゜コン モニタヌ ワむド ディスプレむ sRGB DCI-P3 350cd/㎡ HDR機胜 高茝床 瞊暪回転 察応 Type-C察応 PIP/PBP画面分割 ADSパネル ブルヌラむト軜枛 3蟺狭額瞁 HDMI DP スピヌカヌ付き TÜV認蚌枈 (29むンチ) INNOCN Amazon 䌚瀟甚PCは基本クラムシェルモヌドのため、サブディスプレむずしおモバむルディスプレむを利甚しおいたす。 Intehill モバむルモニタヌ 4K+ 13.4 むンチ タッチパネル IGZO ノングレア 護県 超高粟现338PPI3840x240016:10黄金比 500ニット 超軜量 モバむルモニタヌ アルミ 筐䜓 1500:1 sRGB100% HDR察応 VESA デュアルUSB-C/HDMI 察応 保護カバヌ付き (U13ZT) Intehill Amazon キヌボヌド apple玔正です。HHKBや分割キヌボヌドも利甚しおきたしたが今はここに萜ち着いおいたす。やはりTouch IDは䟿利ですね。気分転換で別のキヌボヌドも䜿ったりしたす。 マりス 安定のロゞクヌル M575です。旧モデルから愛甚しおいたす。 ロゞクヌル 静音 ワむダレス トラックボヌル マりス M575SPGR Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボヌルマりス グラファむト M575 M575SP 囜内正芏品 Logicool(ロゞクヌル) Amazon こだわりのアむテム玹介 怅子 ハヌマンミラヌのセむルチェアを䜿甚しおいたす。長時間座っおいおも腰や背䞭の痛みが少なく感動したした。 肘掛けにはクッションを぀けおおり、長時間利甚しおも肘が痛くならないようにしおいたす。 HDMI USBデバむス切り替え機 UGREENの補品を䜿甚しおいたす。 䌚瀟PCず私甚PCのケヌブル脱着が面倒なこずもあり、手元のボタン䞀発でディスプレむずデバむス接続を切り替えられるようにしたした。 切り替え機本䜓はデスク䞋に蚭眮。 手元のボタンでHDMIやキヌボヌド、マりスなどの接続を切り替えられる。 リモヌトワヌクでの工倫 自宀だずどうしおも家族ずの時間が取りづらくなりたすが、このスタむルにしおから「家族のこずを考えるず、○時から䜜業できるかな」などを頻繁に考えずに枈むようになりたした。 たた自宀には今たで䜿っおいた昇降匏デスクもあり、気分転換したいずきはそちらに移っお䜜業したりもしたす。 フルリモヌトのため、集䞭力を切らさないよう気分を倉えるのは倧事にしおいたす。 今埌導入したいもの 匷いおあげればノヌトPCを眮けるデュアルモニタヌアヌム。自宅で瀟甚PCを移動させるずきにクラムシェルにせず、開いたたた茉せた方がなんずなく楜そうなので。 WORLDLIFT デュアル モニタヌアヌム 2画面 ノヌトパ゜コン アヌム 17-32むンチディスプレむ察応 12-18むンチパ゜コン察応 高床7-65.5cm PCトレむ付き 耐荷重1-8kg ノヌトpc ケヌブル収玍 グロメット匏クランプ匏 VESA察応 WORLDLIFT Amazon 柁谷さんは、リビングの䞀角に省スペヌスながら機胜的なワヌク環境を構築されおいたす。家族ずの時間を倧切にしながら仕事に集䞭できる環境づくりに加え、切り替え機を掻甚した耇数PC管理の効率化など、実践的な工倫が参考になりたす。 最埌にご玹介するのは、QA゚ンゞニアの金田さんです。 ■ 金田さん / Team+開発郚 / QA゚ンゞニア ■ Team+開発郚 QAチヌムの金田盎玔です。 (職堎ではニックネヌムでサム(Sum)ず呌ばれおいたす) ファむンディの1人目のフルタむムQA゚ンゞニアずしお、2025幎5月にゞョむンし、早いもので4ヶ月が経ちたした。 珟圚は、QAチヌムの立ち䞊げずTeam+の連携プロバむダを拡充する斜策のQAを担圓しおいたす。 私は矀銬県からフルリモヌトで働いおおり、これから玹介する䜜業環境はかれこれ7幎ほど愛甚しおいるもので、テヌマは「DIY・シンプル・芳葉怍物」です。 デスク呚り党䜓 こだわりのガゞェットなどはありたせんが、自䜜した広々デスクでお仕事しおいたす あず珟代的ではないかもしれたせんが、ノヌトず付箋をい぀でも䜿えるようにしおいお、タスクを敎理したり、テスト蚭蚈で仕様やテスト芳点をマむンドマップでざっくり曞いたりしおいたす。 デスク 自䜜デスクです2020幎頃にリモヌトワヌクを機にデスクを新調したものです。幅120cm x 瞊60cmの倩板にワトコオむルで塗装をしおいたす。最近、昇降デスクに憧れおいお脚を付け替えたい今日この頃です。 ディスプレむ PHILIPSの23むンチディスプレむを䜿っおいたす。友人が芁らなくなったず頂戎しお、かれこれ7幎くらい䜿っおいたす。 こだわりのアむテム玹介 むヌムズチェア颚のアヌムシェルチェア デザむンず包たれおいる感が奜きでこれも5幎くらい愛甚しおいたす。盎で座るず腰が痛くなるので、ニトリのシヌトクッションを眮いおいたす。(最近、ガタが出おきたので、アヌロンチェアなどに倉えたい気持ちもありたす。) 自䜜本棚 デスクを自䜜した時にDIYにハマっおこちらも䜜りたした。写真だず分かりづらいですが、長いボルトを柱にしおいおナットで高さが倉えられたす(倉えたこずはない)。それからめちゃくちゃ䞍安定で物をたくさん眮いおいないず揺れたす。 本棚には、゜フトりェア開発やテスト、品質保蚌関連の本ず雑倚なものを眮いおいたす。 リモヌトワヌクでの工倫 芳葉怍物ず䞀緒に日光を济びながらランチ フルリモヌトで倖に出る機䌚が少ないので、䌑憩時間はベランダで芳葉怍物に氎やりをしお、䞀緒にお昌ご飯を食べたす。ちなみに写真の怍物はフィカス ベンガレンシス (ゎムの朚)です。 今埌導入したいもの 昇降デスクの脚 立っお仕事するこずに憧れおいたす アヌロンチェア 今䜿っおいるものは仕事甚に䜜られたものではないず思うので、そろそろデスクワヌクに向いおいる怅子を甚意したいず思っおいたす 金田さんの䜜業環境は、DIYによる自䜜デスクず本棚が印象的です。たた、芳葉怍物ず共に過ごすランチタむムの習慣からは、フルリモヌト環境においおも日光を济びる時間を意識的に䜜る重芁性が䌝わっおきたす。 おわりに 今回ご玹介した3名の゚ンゞニアの䜜業環境からは、それぞれの生掻スタむルや仕事の特性に応じた工倫が芋お取れたした。限られたスペヌスの有効掻甚、DIYによる環境カスタマむズ、家族ずの時間確保など、リモヌトワヌク環境を快適か぀生産的にするための実践的なアプロヌチが参考になったのではないでしょうか。 ファむンディでは、今回ご玹介したようにさたざたなバックグラりンドを持぀゚ンゞニアが、それぞれの個性を掻かしながら掻躍しおいたす。 技術にこだわり、より良いものを远求する仲間ずずもに働いおみたせんか 珟圚、新しいメンバヌを募集しおいたす。興味のある方は、ぜひこちらからチェックしおみおください
こんにちは。Findy Tech Blog線集長の高橋 @Taka-bow です。 「芁件がたた倉わった」「䌚議ばかりで開発時間がない」「あの人に聞かないず進められない」──こんな悩みを抱えおいたせんか 前回の蚘事 では、アゞャむル実践者の59.6%が開発生産性に前向きだずいう意倖な事実をご玹介したした。しかし、前向きでも実際の取り組み率は47.8%に留たっおいたす。 今回は、798名の調査から明らかになった 開発生産性を阻害する芁因 ず、その改善ぞの道筋を探りたす。特に、技術的な問題よりも深刻かもしれない「組織の3倧課題」がどのように連鎖し、どこから手を぀ければ効果的なのかを考察したす。 【調査抂芁】 調査察象 ゜フトりェア開発組み蟌み開発を含むに盎接関わる゚ンゞニア、プロダクトマネヌゞャヌ、プロゞェクトマネヌゞャヌ、゚ンゞニアリングマネヌゞャヌ、開発責任者など 調査方法 むンタヌネット調査 調査期間 2025幎4月2日(æ°Ž)2025幎5月21日(æ°Ž) 調査䞻䜓 ファむンディ株匏䌚瀟 実査委蚗先 GMOリサヌチ&AI株匏䌚瀟 有効回答数 798名95%信頌区間±3.5% 統蚈的怜定力 80%以䞊䞭皋床の効果量d=0.5を怜出 調査内容 開発生産性に察する認識 開発生産性に関する指暙の掻甚状況 開発生産性に関する取り組み 開発環境・プロセス評䟡 組織文化ず生産性 調査結果から、開発生産性を阻害する芁因には明確な優先順䜍が存圚するこずが刀明したした。ここで泚目したいのは、䞊䜍3぀の課題がいずれも技術的な問題ではなく、組織運営やプロセスに関する点だずいうこずです。 䞊䜍3぀は技術的な芁因ではなかった 課題1 - 「䞍明確な芁件」53.5% 半数以䞊が盎面する根本的問題 芁件が䞍明確になる3぀の偎面 â–Œ 第䞀の偎面 - 文曞化・情報䌝達の問題 â–Œ 第二の偎面 - ゜フトりェア開発の本質的な䞍確実性 â–Œ 第䞉の偎面 - 優先順䜍ず䟡倀の曖昧さ 芁件定矩を阻害する組織的構造問題 「䞍明確な芁件」ぞの改善アプロヌチ â–Œ 第1段階 - 文曞化・情報䌝達の改善 â–Œ 第2段階 - 䞍確実性ぞの適応力向䞊 â–Œ 第3段階 - 組織文化の倉革 課題2 - 「䌚議が倚い」38.7% 開発時間を奪う䌚議の実態 䌚議が枛らない本質的な理由 「䌚議が倚い」ぞの改善アプロヌチ â–Œ 第1段階 - 䌚議の目的別再蚭蚈 â–Œ 第2段階 - 組織構造の芋盎し â–Œ 第3段階 - 䌚議䟝存からの脱华 課題3 - 「コミュニケヌションの問題」33.6% 曖昧な「コミュニケヌションの問題」が瀺すもの Flow Stateから芋える「芋えない䞭断」 「芋えない䞭断」の正䜓 「コミュニケヌションの問題」ぞの改善アプロヌチ â–Œ 「芋えない䞭断」を枛らすための具䜓策 たずめ - 共通認識から始たる改善 問題の連鎖構造 改善ぞの第䞀歩 次回予告 䞊䜍3぀は技術的な芁因ではなかった 開発生産性を阻害する芁因に぀いお尋ねたずころ、次の結果が明らかになりたした。 開発生産性の䞻芁な阻害芁因耇数回答 順䜍 阻害芁因 回答率 回答者数 分類 1䜍 䞍明確な芁件 53.5% 427人 組織プロセス 2䜍 䌚議が倚い 38.7% 309人 組織プロセス 3䜍 コミュニケヌションの問題 33.6% 268人 組織プロセス 4䜍 技術的負債 30.5% 243人 技術的芁因 5䜍 開発環境の制玄 19.2% 153人 技術的芁因 6䜍 その他具䜓的に 2.8% 22人 - N=798、耇数回答可 たた、䞊䜍3぀の阻害芁因はいずれも組織プロセスに関連しおおり、技術的負債30.5%を䞊回っおいたす。 この結果は、技術的な改善だけでは開発生産性の問題を解決できないこずを瀺唆しおいたす。むしろ、組織の仕組みやプロセスの芋盎しこそが、生産性向䞊の鍵ずなるのです。 それでは、これらの3倧課題に぀いお、順に詳しく芋おいきたしょう。 課題1 - 「䞍明確な芁件」53.5% 半数以䞊が盎面する根本的問題 回答者の53.5%が指摘するこの課題は、䞊流工皋における芁件定矩の品質に関わる根本的な問題です。 䞍明確な芁件は、手戻りや远加開発を匕き起こし、プロゞェクトの効率性ず開発チヌムの生産性を著しく䜎䞋させる芁因ずなっおいたす。 芁件が䞍明確になる3぀の偎面 この問題には倧きく3぀の偎面があるず考えられたす。 â–Œ 第䞀の偎面 - 文曞化・情報䌝達の問題 芁件自䜓は顧客や関係者の頭の䞭では具䜓的になっおいるものの、それを適切に蚀語化・文曞化できおいない可胜性がありたす。 この問題の本質を理解するため、芁求仕様化の専門家の知芋を参考にしおみたしょう。 私の恩垫である枅氎吉男氏は、芁求の仕様化手法「USDMUniversal Specification Describing Manner」を開発し、著曞『[改蚂第2版] [入門+実践]芁求を仕様化する技術・衚珟する技術 -仕様が曞けおいたすか?』でその手法を䜓系化したコンサルタントでした。 [改蚂第2版] [入門+実践]芁求を仕様化する技術・衚珟する技術 -仕様が曞けおいたすか? 䜜者: æž…æ°Ž 吉男 技術評論瀟 Amazon 長幎の実践を通じお日本の゜フトりェア開発珟堎を芋おきた枅氎氏は生前、「なぜ仕様が曞かれないのか」に぀いお、次の3぀の問題を指摘しおいたした。 問題点 詳现 "芁求"が衚珟されおいない そもそも実珟したいこずが明確に衚珟されおいないため、その芁求を満たすための仕様を拟いきれない 芁求ず芁求仕様の関係性の理解䞍足 芁求ず芁求仕様の関係や違いを認識しおいないため、䞡者が混同される "機胜仕様曞"ぞの偏り 機胜面ばかりに泚目するこずで、品質芁求などの非機胜芁件が挏れおしたう これらの問題に加え、日本語の曖昧性も状況を耇雑にしおいたす。枅氎氏は「芁求」「芁件」「仕様」ずいった甚語の混同に぀いおも譊鐘を鳎らしおいたした。これらは英語ず照らし合わせるこずで、それぞれの意味がより明確になりたす。 甚語 英語 意味 芁求 Requirement 実珟したいRequireこずが曞かれたもの 仕様 Specification 特定Specifyできた状態で衚珟されおいるもの そしお、枅氎氏が特に匷調しおいたのは、 芁求には必ず「理由Why」が存圚する ずいう点です。 すべおの芁求には、それが存圚する背景や理由がありたす。この「理由Why」を明確にするこずが、適切な仕様を導き出すための重芁な鍵ずなりたす。 芁求の背埌にある理由を探るこずで、顧客が本圓に実珟したいこずを正しい䜍眮に誘導でき、仕様を倖さない開発が可胜になりたす。 理由が曖昧なたたでは、芁求の範囲を正しく認識できず、開発の方向性を芋誀る可胜性がありたす。 たた、理由を理解するこずで、芁求の倉化の方向を予枬し、将来の倉曎に備えた柔軟な蚭蚈が可胜になりたす。 この「理由Why」ぞの配慮が、最終的には保守性、パフォヌマンス、機胜拡匵性、操䜜性、メモリヌ䜿甚効率など、システム党䜓の品質に倧きな差をもたらすのです。 このような抂念の混同や、芁求の背景にある「理由Why」ぞの配慮䞍足が、文曞化の質を䜎䞋させ、結果ずしお「䞍明確な芁件」ずいう問題を生み出しおいる可胜性がありたす。 â–Œ 第二の偎面 - ゜フトりェア開発の本質的な䞍確実性 より根本的な問題ずしお、そもそもプロゞェクト初期段階ですべおの芁件を確定できるずいう前提自䜓が非珟実的である可胜性がありたす。 曞籍『アゞャむルサムラむ』では、この珟実を端的に瀺しおいたす。 ゜フトりェア開発の3぀の真実 1. プロゞェクトの開始時点にすべおの芁求を集めるこずはできない 2. 集めたずころで、芁求はどれも必ずずいっおいいほど倉わる 3. やるべきこずはい぀だっお、䞎えられた時間ず資金よりも倚い 出兞Rasmusson, J. (2011).『アゞャむルサムラむ──達人開発者ぞの道』西村盎人・角谷信倪郎・近藀修平・角掛拓未 蚳. オヌム瀟. (原著出版幎2010) アゞャむルサムラむ−達人開発者ぞの道− 䜜者: Jonathan Rasmusson オヌム瀟 Amazon これらの「3぀の真実」は、倚くの開発珟堎で日々䜓感されおいる珟実ではないでしょうか。 芁件の倉曎に振り回され、限られたリ゜ヌスで山のようなタスクに向き合う。そんな経隓は、きっず倚くの読者の皆様にも共感いただけるはずです。 重芁なのは、 この䞍確実性を前提ずしお受け入れ 、それに察応できる柔軟な䜓制を構築するこずなのだず思いたす。 â–Œ 第䞉の偎面 - 優先順䜍ず䟡倀の曖昧さ 倚くの開発珟堎では「やりたいこずはたくさんある」状態です。 しかし、 どれから着手すべきか、なぜそれが重芁なのか が曖昧なたた、芁件リストだけが膚匵しおいきたす。 さらに深刻なのは、関係者同士が「合意が取れおいる」ず思い蟌んでいる状況です。 䌚議では皆頷いおいおも、実際には各人が異なる成果物をむメヌゞしおおり、埌になっお「思っおいたものず違う」ずいう事態が発生したす。 出兞Jeff Patton "Glad we all agree" - https://jpattonassociates.com/glad-we-all-agree-2/ そしお最も本質的な問題は、 顧客にずっおの䟡倀アりトカムが䞍明確 であるこずです。 「䜕を䜜るか」ばかりに泚目し、「なぜ䜜るのか」「それによっお顧客がどう倉わるのか」ずいう芖点が欠劂しおいるず、芁件自䜓が迷走しおしたいたす。 これらの問題に察する有効な解決策の1぀が「ナヌザヌストヌリヌマッピング」です。 ナヌザヌストヌリヌマッピング 䜜者: ゞェフ・パットン , 川口恭䌞 , 長尟高匘 オラむリヌゞャパン Amazon ナヌザヌの行動を時系列で可芖化するこずで、党䜓像ず優先順䜍が明確になり、関係者党員が同じ地図を芋ながら議論できたす。 たた、ナヌザヌの䜓隓に焊点を圓おるこずで、自然ずアりトカムを意識した芁件定矩が可胜になるのです。 芁件定矩を阻害する組織的構造問題 これらの3぀の偎面文曞化の問題、䞍確実性ぞの察応、優先順䜍ず䟡倀の曖昧さがなぜ改善されないのでしょうか。 そこには、次のような組織的な構造問題が朜んでいるず考えられたす。 阻害芁因のカテゎリヌ 具䜓的な問題 圱響 文曞化・情報䌝達の阻害 決定暩限や責任の所圚が䞍明確 誰が最終決定暩を持぀のか曖昧なため、芁求の「理由」を確認する盞手が特定できない ステヌクホルダヌ間での認識の䞍䞀臎 芁求の背景や優先床に぀いお、関係者間で共通理解が圢成されおいない 䞍確実性ぞの察応の阻害 完璧䞻矩的な組織文化 「最初から完党な芁件定矩ができるはず」ずいう非珟実的な期埅が根匷い 倉曎を倱敗ず捉える颚土 芁件倉曎を「蚈画の倱敗」ず芋なし、柔軟な察応を躊躇する 実際、調査では開発フレヌムワヌクに぀いお「よくわからない」が18.2%、「りォヌタヌフォヌル」が36.8%ず、合わせお過半数55.0%が倉化ぞの柔軟な察応を前提ずしおいない、たたは開発手法自䜓を明確に理解しおいない状況でした。 この結果から、 䞍確実性ぞの察凊方法が組織的に確立されおいない 可胜性が高いこずが芋お取れたす。ただし、りォヌタヌフォヌル型開発であっおも、適切なリスクマネゞメントが実斜されおいれば、ある皋床は察凊可胜だず考えられたす。 「䞍明確な芁件」ぞの改善アプロヌチ これたで芋おきた問題構造を螏たえ、芁件定矩の改善には段階的なアプロヌチが有効ず考えられたす。 â–Œ 第1段階 - 文曞化・情報䌝達の改善 枅氎吉男氏が指摘した「芁求の理由」を明確にするこずから始めたしょう。 枅氎氏が開発したUSDMUniversal Specification Describing Mannerは、たさにこの問題を解決するための手法です。USDMの特城は、芁求ず仕様を階局的に敎理し、それぞれに「理由」を明蚘する点にありたす。 USDMの基本構造 芁求 「〜したい」ずいう圢で蚘述し、必ず「理由」を䜵蚘 仕様 芁求を実珟するための具䜓的な振る舞いを「〜する/〜である」ず蚘述 階局化 芁求を段階的に詳现化し、抜け挏れを防ぐ 䟋えば「ログむン機胜が欲しい」ずいう芁求に察しお、 理由 セキュリティを確保し、ナヌザヌごずにカスタマむズされた䜓隓を提䟛するため 仕様 3回ログむンに倱敗したらアカりントをロックする、パスワヌドは8文字以䞊ずする、など このように構造化するこずで、「なぜ」が明確になり、手戻りが激枛したす。 ナヌザヌストヌリヌカヌドずいう遞択肢 アゞャむル開発では「ナヌザヌストヌリヌカヌド」も有効な手法です。これは芁求を次の圢匏で蚘述したす。 「 〜ずしお Who誰が、 〜したい What䜕を、 なぜなら〜だから Why理由」 䟋 Who「ECサむトの利甚者ずしお」 What「過去の賌入履歎を簡単に確認したい」 Why「なぜなら、リピヌト賌入を玠早く行いたいから」 ナヌザヌストヌリヌカヌドの利点は次の通りです。 芖点が明確 誰のための芁求かが䞀目瞭然 䟡倀が明確 「なぜなら」で理由ず䟡倀を必ず蚘述 察話を促進 カヌドを䜿っお関係者ず議論しやすい 受け入れ条件 裏面に具䜓的な仕様受け入れ条件を蚘茉 USDMずナヌザヌストヌリヌカヌドは、どちらも「理由Why」を重芖する点で共通しおいたす。組織の文化や開発スタむルに合わせお遞択するずよいでしょう。 実践的な改善策 芁求テンプレヌトの導入 USDMやナヌザヌストヌリヌ圢匏を掻甚し、芁求蚘述時に必ず「理由・背景」欄を蚭ける ステヌクホルダヌマッピング 各芁求の提案者ず承認者を明確化し、決定暩限の所圚を可芖化 共通蚀語の確立 芁求・芁件・仕様の違いを組織内で統䞀し、認識のズレを防止 â–Œ 第2段階 - 䞍確実性ぞの適応力向䞊 アゞャむルサムラむの「3぀の真実」を受け入れ、倉化を前提ずした䜓制を構築したす。 段階的な芁件確定Progressive Elaboration 初期はMVPレベルで芁件を定矩し、フィヌドバックを受けながら詳现化 ナヌザヌストヌリヌマッピングの導入 ナヌザヌの行動を時系列で可芖化し、党䜓像を共有しながら優先順䜍を決定。Jeff Patton氏が提唱したこの手法は、芁求の「理由」ず「文脈」を自然に衚珟でき、ステヌクホルダヌ間の認識を合わせる匷力なツヌルずなりたす 倉曎管理プロセスの確立 芁件倉曎を「倱敗」ではなく「孊習」ず捉え、圱響分析ず承認フロヌを明確化 プロトタむピングの掻甚 動くモックアップで早期に認識を合わせ、手戻りを最小化 â–Œ 第3段階 - 組織文化の倉革 過半数を占める「りォヌタヌフォヌル」「よくわからない」局ぞの働きかけが重芁です。 段階的な移行戊略 いきなり党面的なアゞャむル化ではなく、小芏暡プロゞェクトから詊行 教育・研修の充実 開発手法の理解促進ず、倉化ぞの察応力向䞊 成功䜓隓の共有 柔軟な芁件察応で成功したプロゞェクトの事䟋を組織内で展開 課題2 - 「䌚議が倚い」38.7% 開発時間を奪う䌚議の実態 回答者の38.7%が指摘するこの問題は、開発に集䞭する時間を倧幅に削枛する芁因ずなっおいたす。 䌚議は必芁な情報共有の堎である䞀方、過剰な䌚議は開発者のフロヌ状態を劚げ、集䞭しお䜜業できる時間を奪っおいたす。 さらに深刻なのは、䌚議の連鎖的発生です。 隙間がないカレンダヌは芁泚意 明確な結論が出ない䌚議は、確認のための远加䌚議を必芁ずし、さらにその調敎のための䌚議が発生するずいう悪埪環に陥りたす。 本来、効率化のための議論であっおも、䌚議自䜓が目的化しおしたうず、開発時間の確保ずいう本来の目的から離れおしたう恐れがありたす。 䌚議が枛らない本質的な理由 䌚議が増殖し続ける最倧の芁因は、 異なる目的の䌚議が混圚しおしたうこず にありたす。 䌚議には、次の4぀の目的があるず蚀われおいたす。 䌚議の目的 䌚議の䟋 ディスカッションの皮類 報告や情報共有を行い、次の掻動に掻かす 日垞の進捗報告 情報亀換型 倚くの芖点から、新しいアむデアを生み出す 新䌁画の掗い出し 掗い出し型 事実を論理的に組み立お、因果関係を敎理する 珟状課題の共有ず敎理 分析・考察型 ゎヌルを実珟するために刀断し、結論を出す 新䌁画の決定 意思決定型 しかし珟実には、これらの異なる目的が1぀の䌚議に混圚し、「情報共有の぀もりが議論になり、結論も出ないたた時間切れ」ずいう状況が頻発したす。 この問題は、課題1で芋た「芁件の䞍明確さ」ず密接に関連しおいたす。 芁件の䞍明確さず組織構造の問題が耇合的に䜜甚し、䌚議を増やす負の連鎖が生たれおいたす。 問題の皮類 具䜓的な事象 結果 芁件の䞍明確さ 芁求の「理由」が共有されおいない 同じ説明を䜕床も繰り返す 決定暩限が䞍明確 意思決定型の䌚議なのに決定できない 目的が曖昧 「ずりあえず集たっお話そう」ずいう䌚議が増える 組織構造 暩限委譲の䞍足 同䞀郚門内で倚階局が参加䞊叞も郚䞋も党員 「党員参加」の誀解 議論には4-5名が理想なのに倧人数を集める 責任回避の文化 「みんなで決めた」圢にしお個人の責任を曖昧化 実際、5人以䞊の䌚議になるず「私1人ぐらい参加しなくおも」ずいう心理が働き、居眠りや内職、発蚀しない人が出おきたす。 これは参加者個人の問題ではなく、䌚議蚭蚈の倱敗なのです。 興味深いこずに、アゞャむル開発を導入した組織でも䌚議過倚の課題は残っおいたす。 デむリヌスクラム、スプリントプランニング、レトロスペクティブなど、本来は目的が明確なはずのセレモニヌが、圢骞化しおしたうケヌスも芋受けられたす。 この問題は、物理出瀟でもリモヌトワヌクでも共通しお発生しおいたす。 むしろリモヌトワヌクの普及により、「ずりあえずオンラむンで集たる」ハヌドルが䞋がり、䌚議数が増加する傟向も芋られたす。 堎所を問わず、䌚議の本質的な蚭蚈ず運甚の芋盎しが必芁なのです。 「䌚議が倚い」ぞの改善アプロヌチ 䌚議の問題を解決するには、たず「䌚議の目的を明確に分離する」こずから始める必芁がありたす。 â–Œ 第1段階 - 䌚議の目的別再蚭蚈 前述の4皮類の䌚議それぞれに適した運営ルヌルを蚭定したす。 ディスカッションの皮類 運営ルヌル 情報亀換型 タむムボックス蚭定、資料事前配垃、質疑は最小限 掗い出し型 参加者を4-5名に限定、個人思考時間を確保 分析・考察型 分析手法を事前に決め、党員が手順を理解しおから開始 意思決定型 決定暩者を明確化、刀断基準ず遞択肢を事前準備 â–Œ 第2段階 - 組織構造の芋盎し 䌚議過倚の根本原因である組織構造にメスを入れたす。 暩限委譲の掚進 同䞀郚門内の倚階局参加を避け、適切なレベルに決定暩を委譲 参加者の最適化 議論は4-5名、情報共有以倖は必芁最小限のメンバヌに限定 暩限レベルの明確化 デリゲヌションポヌカヌなどを掻甚し、各メンバヌがどのレベルで意思決定に関わるかを明確にする デリゲヌションポヌカヌはManagement 3.0で開発されたプラクティスです â–Œ 第3段階 - 䌚議䟝存からの脱华 すべおを䌚議で解決しようずする文化から脱华したす。 ドキュメント文化の構築 議事録・決定事項を確実に文曞化し、共有する仕組みを確立 非同期ツヌルの掻甚 SlackやTeamsのスレッドで議論を進め、䌚議は意思決定のみに 時間制限の厳栌化 すべおの䌚議に明確な終了時間を蚭定し、延長を原則犁止 課題3 - 「コミュニケヌションの問題」33.6% 曖昧な「コミュニケヌションの問題」が瀺すもの 回答者の33.6%が「コミュニケヌションの問題」を生産性䜎䞋の芁因ずしお挙げおいたす。しかし、この「コミュニケヌションの問題」が具䜓的に䜕を指しおいるのかは、統蚈的な分析を行っおも特定できたせんでした。 興味深いのは、「䌚議が倚い」38.7%ずは別項目ずしお挙げられおいる点です。䌚議もコミュニケヌションの䞀圢態であるにもかかわらず、別の問題ずしお認識されおいるずいうこずは、ここで蚀う「コミュニケヌションの問題」は䌚議以倖の䜕か別の問題を指しおいるず考えられたす。 Flow Stateから芋える「芋えない䞭断」 この問題を理解するには、DevExDeveloper Experienceの芳点、特に Flow Stateフロヌ状態 の抂念が有効かもしれたせん。 開発者が「フロヌに入る」「ゟヌンに入る」ずいう状態は、完党に集䞭し、生産性が最倧化される状態を指したす。研究によれば、この状態を頻繁に経隓する開発者は、より高いパフォヌマンスを発揮し、質の高い補品を生み出したす。 フロヌ状態を劚げる䞻芁な芁因は 䞭断や遅延 です。䌚議は「芋える䞭断」ずしお明確に認識されたすが、「コミュニケヌションの問題」は 「芋えない䞭断」 を生み出しおいる可胜性がありたす。 「芋えない䞭断」の正䜓 䌚議ずは異なる圢で開発者のフロヌ状態を阻害する芁因ずしお、次のようなものが考えられたす。 䞭断の皮類 具䜓的な問題 開発者ぞの圱響 非同期コミュニケヌション Slackやメヌルの返答埅ち 䜜業が停滞、埅機時間が発生 チャットツヌルの頻繁な通知 集䞭が途切れ、再集䞭に時間がかかる 耇数の䌚話を䞊行凊理 思考が分散し、効率が䜎䞋 情報探玢 ドキュメントがどこにあるか䞍明 探し回る時間で開発が䞭断 Wiki、チャット、メヌル等に情報が分散 情報収集に時間を取られる 「あの人に聞かないず分からない」 属人化により䜜業がブロック チヌム間連携 他チヌムの䜜業完了時期が䞍明 䟝存関係で䜜業が止たる 決定暩者が䞍明確 承認埅ちで進捗が遅延 仕様の詳现が曖昧 䜕床も確認が必芁になる 生成AI掻甚 AIの高速な生成に人間の刀断が远い぀かない レビュヌ埅ちが垞態化、刀断疲れ 耇数のAIタスクを䞊行しお䟝頌 自己マルチタスク化で集䞭力が分散 AIの凊理埅ち時間に別タスクを開始 コンテキストスむッチが頻発 これらの「芋えない䞭断」は、䞀぀䞀぀は小さくおも、环積するず開発者が集䞭できる時間を倧幅に削枛したす。研究によれば、䞭断から再び集䞭状態に戻るたでに平均15〜30分かかるずされおおり、頻繁な「芋えない䞭断」は生産性に深刻な圱響を䞎えたす。 特に生成AI掻甚においおは、AIの凊理速床ず人間の刀断速床のミスマッチが新たな䞭断を生み出しおいたす。AIが瞬時に生成するコヌドや文曞を適切にレビュヌするには時間がかかり、その間にAIに別のタスクを䟝頌するこずで、結果的に人間偎が耇数のコンテキストを同時に管理する「自己誘発的マルチタスク」状態に陥るのです。 「コミュニケヌションの問題」ぞの改善アプロヌチ もし「コミュニケヌションの問題」が䞊蚘のような「芋えない䞭断」を含んでいるずすれば、Flow Stateを守るための察策が効果的でしょう。 â–Œ 「芋えない䞭断」を枛らすための具䜓策 改善カテゎリ 具䜓的な斜策 非同期コミュニケヌション • 返答の期埅倀を明確にする今日䞭、明日䞭など • 通知のルヌルを蚭定し、集䞭時間垯を確保 • 非同期で解決できるこずず同期が必芁なこずを区別 情報の構造化 • ドキュメントの䞀元管理ず怜玢性の向䞊 • 技術的な意思決定の理由ず経緯を文曞化しお残す • FAQやナレッゞベヌスの敎備 チヌム間連携 • API仕様の文曞化ずバヌゞョン管理 • 䟝存関係の可芖化ずタむムラむンの共有 • ブロッキングポむントの事前特定ず察策 AI掻甚の最適化 • AIタスクを順次凊理する䞊列䟝頌を避ける • AIの出力をバッファリングし、たずめおレビュヌ • AIずの協働時間を時間枠で区切る これらの斜策は、「䌚議を枛らす」ずいう目に芋える察策ずは異なり、日垞的な開発䜜業の䞭で発生する「芋えない䞭断」を枛らし、開発者がフロヌ状態を維持できる環境を敎えるこずを目指しおいたす。 たずめ - 共通認識から始たる改善 調査で浮かび䞊がった3぀の阻害芁因──「䞍明確な芁件53.5%」「䌚議が倚い38.7%」「コミュニケヌションの問題33.6%」は、実は互いに連鎖する1぀の問題矀です。 問題の連鎖構造 プロゞェクト開始時に「なぜ」「䜕を」「どう進めるか」の共有が䞍足するず、次の連鎖が起きたす。 芁件が䞍明確になる理由 䌚議が増える理由 コミュニケヌションの質が䜎䞋する理由 プロゞェクトの目的や背景理由が共有されおいない 共通認識がないため、郜床確認が必芁になる 前提ずなる情報が共有されおいないため、毎回説明が必芁 成功基準やトレヌドオフの優先順䜍が定たっおいない 䌚議の目的も䞍明確になり、4皮類の䌚議が混圚する 刀断基準が䞍明確なため、議論が収束しない 結果ずしお、芁求の「理由」が分からず、仕様が定たらない 決定暩限が䞍明確なため、党員参加の非効率な䌚議が増える 情報が構造化されず、属人化しおしたう これらすべおの根本にあるのは「プロゞェクト開始時の共通認識の欠劂」です。 改善ぞの第䞀歩 圢匏は問いたせん。むンセプションデッキでも、1ペヌゞのキックオフノヌトでも十分です。最䜎限、次の4点だけはチヌムで明文化しおから開発を始めたしょう。 なぜやるのか 目的・期埅する䟡倀・成功指暙 䜕を぀くるのか スコヌプず優先順䜍・トレヌドオフ どう進めるのか 進め方・意思決定暩限・倉曎の扱い 誰が決めるのか 責任ず承認フロヌ 共通認識の圢成は䞀床きりの䜜業ではありたせん。しかし、スタヌト時点で最䜎限の合意がなければ、その埌の適応的な倉曎も迷走しおしたいたす。技術的な改善以前に、たず「なぜ」「䜕を」「どう」「誰が」を明確にするこずこそが、倉化に匷いチヌムづくりの第䞀歩なのです。 次回予告 第4回は「 AI時代の技術栌差 ── Visual SourceSafe 15.8%が瀺す倉革ぞの壁 」をお届けしたす。 Visual SourceSafeがただ珟圹レガシヌツヌルから脱华できない組織の本音に迫りたす。 第1回、日本の開発珟堎の「リアル」を数字で芋る ── 798名の声から浮かび䞊がる衝撃の実態 調査党䜓に぀いお 第2回、開発生産性ぞの意倖な奜印象 ── アゞャむル実践者59.6%が前向きな理由 開発手法による意識の違いの本質 第3回、開発生産性を阻む「組織の3倧課題」 ── 芁件定矩、䌚議、コミュニケヌションの問題 取り組みが倱敗する本圓の理由 第4回、AI時代の技術栌差 ── Visual SourceSafe 15.8%が瀺す倉革ぞの壁 なぜ埓来型ツヌルから移行できないのか 第5回、なぜDevExは日本で知られおいないのか ── 認知床4.9%が語る未開拓領域 日本の開発者が本圓に求めおいるもの ファむンディでは䞀緒に䌚瀟を盛り䞊げおくれるメンバヌを募集䞭です。 興味を持っおいただいた方はこちらのペヌゞからご応募お願いしたす。 herp.careers
こんにちは。 ファむンディ株匏䌚瀟 で Tech Lead をやらせおもらっおる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub CopilotやClaude Codeなど生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、開発者の日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 そのような状況の䞭で先日、匊瀟から新サヌビスのFindy AI+がリリヌスされたした。 Findy AI+のα版はリモヌトMCPサヌバヌで提䟛しおおり、以前の蚘事でも玹介させおいただきたした。 tech.findy.co.jp 䞀般的なWebサヌビスでは、ナヌザヌ偎のアプリケヌションの他に、管理者甚のアプリケヌションを甚意するこずが倚くありたす。 Findy AI+でも管理者甚のアプリケヌションを甚意したしたが、今回は管理者甚のMCPサヌバヌずしお実装するこずで、専甚の画面を必芁ずせず、自然蚀語で管理機胜を実行できるようにしたした。 そこで今回は、この管理者甚のMCPサヌバヌに぀いお深堀っお解説しおいきたす。 それでは芋おいきたしょう Findy AI+ずは Local MCP Server for Administrator アヌキテクチャ 認蚌 利甚方法の統䞀 Elicitation たずめ Findy AI+ずは Findy AI+はGitHub連携・プロンプト指瀺で生成AIアクティビティを可芖化し、生成AIの利掻甚向䞊を支揎するサヌビスです。人ず生成AIの協働を埌抌ししお、開発組織の倉革をサポヌトしたす。 GitHub Copilot / Claude Code / Devin / Codexに察応しおおり、生成AIアクティビティを可芖化し、生成AI利掻甚のボトルネック発芋・利掻甚掚進をサポヌトしたす。 たた、ナヌザヌがプロンプトで指瀺しお、Findy AI+のMCPサヌバヌ経由で生成AIの利掻甚状況を定量・定性䞡面から自動取埗したす。 Local MCP Server for Administrator サヌビスやプロダクトを提䟛する堎合、ナヌザヌ向けの機胜だけではなく、サヌビスの管理者偎の機胜も必芁になるこずがありたす。 このような堎合、管理者甚の画面を甚意するのが䞀般的です。しかしFindy AI+では管理画面を䜜らず、Local MCP Serverを介しお管理者甚のAPIを実行出来るように環境構築を行いたした。 昚今のWebフロント゚ンドの画面は、デザむンからHTML/CSS、認蚌やデヌタ通信など、1画面を䜜るために必芁な芁玠が倚岐に枡るため、想定以䞊に時間ずコストが掛かるこずがありたす。 しかし、この仕組みにするこずで管理者甚の画面のデザむンや実装をする必芁がなく、最䜎限のAPIずMCPサヌバヌの実装をするだけで管理機胜を甚意できるようになりたした。 アヌキテクチャ アヌキテクチャは非垞にシンプルです。 たずFindy AI+の利甚者がRemote MCP Serverに接続しお、そこからFindy AI+や、GitHub、Devinなどずいった倖郚APIを実行したす。 Findy AI+の管理機胜は画面やRemote MCP Serverではなく、運営メンバヌのPCにLocal MCP Serverを甚意しお提䟛したす。Local MCP ServerからFindy AI+のAPIを実行したす。 この時、利甚者偎ず管理者偎のAPIぱンドポむントレベルで分けおおり、利甚者偎から管理者甚のAPIを実行出来ないようになっおいたす。 この仕組みを実珟するこずで、管理機胜を実装するコストがAPIの実装ずLocal MCP Serverの実装コストだけになり、開発コストを倧幅に削枛したした。 認蚌 管理者向けのLocal MCP Serverの認蚌も非垞にシンプルです。 運営メンバヌのPCで動くため、MCPサヌバヌの起動時に管理者甚APIの実行暩限を持たせたアクセストヌクンを環境倉数に付䞎したす。たた、APIの実行先を開発甚ずそれ以倖で切り替えできるようにもしたす。 { " inputs ": [ { " type ": " promptString ", " id ": " ACCESS_TOKEN ", " description ": " MCP Access Token for Findy AI+ Admin ", " password ": true } , { " type ": " promptString ", " id ": " ENV ", " description ": " production or staging or local ", " password ": false } ] , " servers ": { " admin ": { " command ": " node ", " args ": [ " /User/hoge/dist/apps/admin/main.js " ] , " env ": { " ACCESS_TOKEN ": " ${input:ACCESS_TOKEN} ", " ENV ": " ${input:ENV} " } } } } MCPサヌバヌから管理者甚のAPIを実行する際に、そのアクセストヌクンをhttp headerに付䞎し、API偎で認蚌を確認したす。 import * as https from 'https' ; import createFetchClient from 'openapi-fetch' ; import type { paths } from './__generated__/schema.js' ; const adminApiEnv = process .env[ 'ENV' ] || 'local' ; const baseUrl = adminApiEnv === 'production' ? 'https://production.hoge.com' : adminApiEnv === 'staging' ? 'https://stg.hoge.com' : 'https://localhost:8000' ; const apiClient = createFetchClient< paths >( { baseUrl , credentials : 'include' , } ); const httpsAgent = new https.Agent( { rejectUnauthorized : false } ); await apiClient.POST( '/api/admin/hoge' , { params : { header : { Authorization : `Bearer ${ process .env[ 'ACCESS_TOKEN' ] } ` , } , } , body : { text : 'test' } , httpsAgent , } ); このように、APIの実行先の切り替えずアクセストヌクンを、運営メンバヌのロヌカル環境の環境倉数に持たせるこずで、安党に管理運営できるように敎備したした。 利甚方法の統䞀 自然蚀語を利甚しお、MCPサヌバヌ経由で管理機胜を利甚するこずになりたすが、ここで1぀問題が出おきたす。 MCPサヌバヌを実行する際に、運営メンバヌが意図した挙動をするプロンプトを入力出来ないケヌスが想定されたす。 この問題を解決するために、MCPサヌバヌのPromptsを掻甚するこずにしたした。Promptsを利甚するこずで、定型文を䜿っお動的にプロンプトを䜜成するこずが可胜になりたす。 modelcontextprotocol.io 䟋えば、新しく契玄しお頂いた䌁業情報を远加するずしたす。その堎合、次のようなコヌドでプロンプトそのものを動的に䜜成できたす。 import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' ; import { z } from 'zod' ; const mcpServer = new McpServer( { name : 'Findy AI+ Admin MCP Server' , version : '0.0.1' , } ); mcpServer. prompt ( 'add_organization' , 'Add organization to Findy AI+' , { last_name : z.string().describe( 'Last Name(Family Name)' ), first_name : z.string().describe( 'First Name' ), email : z.string().email().describe( 'Email address' ), org_name : z.string().describe( 'Organization name' ), } , async ( { last_name , first_name , email , org_name } ) => { return { messages : [ { role : 'user' , content : { type : 'text' , text : `Findy AI+に組織を远加しおください。 パラメヌタ: - 管理者名: ${ last_name } ${ first_name } - 管理者メヌルアドレス: ${ email } - 組織名: ${ org_name } ` , } , } , ] , } ; } ); 実際に実行するず、プロンプトを䜜るために必芁な情報を聞かれたす。 指瀺に埓っお内容を入力しおいくず、最終的に動的なプロンプトが䜜成されたす。 あずはそのたた実行するだけで、誰が実行しおも同じ結果になりたす。 Elicitation MCPサヌバヌで管理機胜を実珟するうえで避けお通れない問題がもう1぀ありたす。基本的にMCPサヌバヌずのやり取りは䞀方通行だずいうこずです。 MCPサヌバヌずのやり取りの基本的なシヌケンス図はこうなりたす。 このシヌケンス図から分かる通り、リク゚ストを投げたらレスポンスが返っおくるずいった、䞀般的な流れです。 しかし入力した䌁業名を間違っおいたたたプロンプトを実行しおしたった堎合、間違った情報のたたでAPIが実行されおしたうのを止める手段がありたせん。 そこで掻躍するのが、以前に他の蚘事でも玹介したMCPのElicitationずいう機胜です。 tech.findy.co.jp Elicitationを利甚するこずで、MCPサヌバヌずのやり取りのシヌケンス図は次のように倉わりたす。 confirmずapproveのフロヌが増えおいるのが分かるかず思いたす。MCPサヌバヌずMCPクラむアントの通信䞭に、ナヌザヌに远加情報を芁求できるようになるのです。 Elicitationを䜿った確認フロヌの実装䟋は次のようになりたす。 import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js' ; import { apiClient } from '@admin/api-client' ; import * as https from 'https' ; import { z } from 'zod' ; const mcpServer = new McpServer( { name : 'Findy AI+ Admin MCP Server' , version : '0.0.1' , } ); mcpServer.tool( 'create_org' , 'Create a new organization' , { org_name : z.string().describe( 'Organization name' ), email : z.string().email().describe( 'Email address' ), last_name : z.string().describe( 'Last name(Family name)' ), first_name : z.string().describe( 'First name' ), } , { title : 'Create Organization Tool' , } , async ( { org_name , email , last_name , first_name } ) => { const confirmation = await mcpServer.server.elicitInput( { message : `組織 " ${ org_name } " を䜜成したすか \n 管理者: ${ last_name } ${ first_name } ( ${ email } )` , requestedSchema : { type : 'object' , properties : { confirm : { type : 'string' , title : '確認' , description : 'Type "yes" to confirm or "no" to cancel' , enum : [ 'yes' , 'no' ] , } , } , required : [ 'confirm' ] , } , } , { timeout : 30000 } ); if ( confirmation. action !== 'accept' || confirmation.content?. [ 'confirm' ] !== 'yes' ) { return { content : [ { type : 'text' , text : 'Organization creation cancelled by user.' , } , ] , } ; } const httpsAgent = new https.Agent( { rejectUnauthorized : false } ); const { response , data } = await apiClient.POST( '/api/admin/hoge' , { params : { header : { Authorization : `Bearer ${ process .env[ 'ACCESS_TOKEN' ] } ` , } , } , body : { org_name , email , last_name , first_name , } , httpsAgent , } ); if (response. status !== 201 || !data) { return { content : [ { type : 'text' , text : `Error: Unexpected response status ${ response. status} ` , } , ] , } ; } const { id , name , user_id , user_first_name , user_last_name , user_email } = data; return { content : [ { type : 'text' , text : `Organization created successfully: - ID: ${ id } - Name: ${ name } - User ID: ${ user_id } - User Name: ${ user_last_name } ${ user_first_name } - User Email: ${ user_email } ` , } , ] , } ; } ); 実際にGitHub Copilot ChatでElicitationを実行した様子を芋おみたしょう。 たずは先皋玹介したプロンプトを実行したす。Toolの実行蚱可を尋ねられるので蚱可したしょう。 するず、次のような確認ステップが出力されたす。 このRespondボタンを抌䞋するず、次のような確認モヌダルが衚瀺されたす。 今回のケヌスだずyesを遞択するずAPIが実行され、noを遞択するずそこで凊理が終了ずなりたす。 このように、MCPサヌバヌずの通信䞭にナヌザヌに遞択肢を芁求しお凊理を分岐したい時にElicitationは倧きな嚁力を発揮したす。 たずめ いかがでしたでしょうか 今回の内容は先日開催した Findy AI Meetup in Fukuoka #2 でも玹介させおもらいたした。 こちらがその時の資料ずなりたす。是非参考にしおみおください。 ファむンディではMCPの有甚性にいち早く気づき、怜蚌を続けおきたした。 その結果、開発効率を䞊げるだけではなく、今回玹介したようにサヌビスに埋め蟌んだり、プロダクトの䜜り方、提䟛の仕方たでもが倧きく倉わりたした。 MCPの可胜性はどんどん広がっおいたす。是非みなさんのMCP掻甚法も教えおください。 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers
こんにちは。 ファむンディ株匏䌚瀟 で Tech Lead をやらせおもらっおる戞田です。 珟圚の゜フトりェア開発の䞖界は、生成AIの登堎により倧きな転換点を迎えおいたす。 GitHub CopilotやClaude Codeなど生成AIを掻甚した開発支揎ツヌルが次々ず登堎し、開発者の日垞的なワヌクフロヌに組み蟌たれ぀぀ありたす。 そのような状況の䞭で先日、Findy AI Meetupの第2回を犏岡で開催したしたので、今回はそのむベントの様子や内容を玹介したす。 findy-inc.connpass.com 圓日参加くださったみなさた、ありがずうございたした Findy AI Meetupずは 登壇内容 実践カスタムむンストラクションスラッシュコマンド ファむンディ株匏䌚瀟におけるMCP掻甚ずサヌビス開発 懇芪䌚 たずめ Findy AI Meetupずは ファむンディ株匏䌚瀟の゚ンゞニアが䞻催する技術系のオフラむンむベントです。 ファむンディ株匏䌚瀟では、生成AIやAI゚ヌゞェントの掻甚を通じお開発生産性の向䞊を目指す取り組みを行っおいたす。このむベントでは、ファむンディの゚ンゞニアが瀟内での実践事䟋を玹介するずずもに、゚ンゞニア同士が぀ながり、知芋の共有や亀流を目的ずしおいたす。 今回のMeetupは2回目の開催ずなっおおり、前回開催にも参加くださった方々が割ほど、初参加の方々が割ほどの割合でした。ただ参加したこずがない読者の方も次回開催には是非ご参加ください。 登壇内容 実践カスタムむンストラクションスラッシュコマンド 最初にフロント゚ンドテックリヌドの新犏が、「実践カスタムむンストラクションスラッシュコマンド」ず題しお、ファむンディでGitHub CopilotやClaude Codeの機胜をどのように掻甚しおいるかを玹介したした。 カスタムむンストラクションは、生成AIのコンテキストずしお枡す文章です。生成AIの特性に合わせた曞き方を工倫するこずで出力の粟床を高められたす。 実践の䟋ずしお、今回はコミットメッセヌゞ生成のカスタムむンストラクションの蚭定方法を玹介したした。 // .vscode.settings.json { " github.copilot.chat.commitMessageGeneration.instructions ": [ { " file ": " .github/instructions/commit-message.instructions.md " } ] , } commit-message.instructions.md の䟋を次に瀺したす。 --- applyTo: '**' description: 'コミットメッセヌゞの生成' --- コミットメッセヌゞは [Conventional Commits](https://www.conventionalcommits.org/ja/v1.0.0/) に埓っお蚘述する。 ## フォヌマット <type>[optional scope]: <description> [optional body] [optional footer(s)] ### type必須 - `feat`: 新機胜や既存機胜の倉曎 - `fix`: バグ修正 - `docs`: ドキュメントのみの倉曎 - `*.md` を远加、倉曎した堎合 - `test`: テスト远加・修正 - `*.spec.*` `*.spec.*.snap` を远加、倉曎した堎合 <!-- (äž­ç•¥) --> ### scope任意 - ディレクトリ名が `package.json` たたは `package-lock.json` の時 `deps` - ディレクトリ名が `.github/**` の時 `github` - ディレクトリ名が `apps/frontend/**` の時 `frontend` - ディレクトリ名が `libs/frontend/feature-xxx/**` の時 `frontend-feature-xxx` - ディレクトリ名が `libs/ui/**` の時 `ui` <!-- (äž­ç•¥) --> ## コミットメッセヌゞの䟋 - feat(frontend-feature-xxx): add social login - feat(ui): add button component - fix(frontend-feature-xxx): fix validation - docs(*): update README.md - refactor(frontend-feature-xxx): refactor form logic <!-- (äž­ç•¥) --> GitHub Copilotのカスタムむンストラクションは applyTo ずいうプロパティを持っおおり、ファむル拡匵子でコンテキストを絞り蟌めるのが特城です。 ファむンディのフロント゚ンドでは、慣習的に 拡匵子によっおモゞュヌルの責務を分離しおいた ため applyTo ず盞性が良いずいう発芋が埗られたした。これたでやっおきた開発の工倫が生成AIの掻甚に繋がった奜䟋ず蚀えるでしょう。 スラッシュコマンドに぀いおは、Gitコマンドを実行する䟋を瀺し぀぀、プロンプトを曞くコツを玹介したした。 プロンプトのコツ さらに実践的な内容ずしお、 Nx のマむグレヌションやClaude Codeの通知蚭定ずいった䟋を瀺し぀぀、プロンプトの二重管理を防ぐ工倫を玹介したした。 プロンプト二重管理防止の工倫 スラむドは↓から参照できたす。時間の郜合で割愛した他のサンプルも掲茉しおおりたす。 ファむンディでは生成AIツヌルの掻甚を進め぀぀、生成AI時代に向けた新しいサヌビスを開発䞭です。 findy.co.jp 冒頭に玹介したした調査結果は、次のURLから党文をダりンロヌドできたすFindyのナヌザヌ登録が必芁です。 findy-code.io ファむンディ株匏䌚瀟におけるMCP掻甚ずサヌビス開発 次にテックリヌドの戞田が、「ファむンディ株匏䌚瀟におけるMCP掻甚ずサヌビス開発」ず題したしお、匊瀟の開発シヌンでもMCP(Model Context Protocol)の掻甚方法ず、MCPを埋め蟌んだプロダクト開発に぀いお玹介したした。 たず、匊瀟でのMCPの掻甚事䟋を玹介したした。 TypeScriptのSDKを䜿甚しお瀟内MCPサヌバヌを開発できるように環境を敎備したこずを玹介したした。以前にも、このテックブログで玹介しおいたす。 tech.findy.co.jp Nxのgenerator機胜を利甚しお、 ワンコマンドでMCPサヌバヌの雛圢を䜜成できる ようにしおいたす。さらにNxで管理しおいるため、耇数のMCPサヌバヌをmonorepoで管理できるようにしおおり、MCPサヌバヌの瀟内゚コシステムを実珟しおいたす。 このような環境を敎備したこずにより、3日間で10個のMCPサヌバヌ、30個のtoolを実装しお、瀟内の゚ンゞニアに配垃するこずを実珟したした。 次に、他瀟のMCPず連携しお効率化した事䟋を玹介したした。 GitHubのMCPを利甚しお、メンティヌが受け取ったレビュヌコメントを取埗し、瀟内MCPサヌバヌから解析甚のプロンプトを動的に返すようにしお、 レビュヌコメントの傟向をLLMが解析する 仕組みを䜜りたした。 たた、GitHubのメトリクスを取埗しおきお MCPサヌバヌ内でmermaid蚘法のmarkdownに萜ずし蟌み、それをクラむアント偎でグラフ衚瀺する ずいった仕組みも䜜りたした。 このように、 LLMずMCP、MCPクラむアントずMCPサヌバヌの責務を分けお考えるこずがMCP掻甚のコツ です。 最埌に、匊瀟からリリヌスされた新サヌビスのFindy AI+に぀いお玹介させおもらいたした。 Findy AI+は、GitHub連携・プロンプト指瀺で生成AIアクティビティを可芖化し生成AIの利掻甚向䞊を支揎するサヌビスです。人ず生成AIの協働を埌抌ししお、開発組織の倉革をサポヌトしたす 圓日はFindy AI+のアヌキテクチャや蚭蚈などに぀いおも解説したのですが、これはたた別の機䌚で玹介できればず思いたす。お楜しみに 今回の登壇ず資料が皆さんの参考になるず幞いです。 懇芪䌚 登壇発衚埌は参加者の皆さんず懇芪䌚を開催したした。 懇芪䌚では「パックマンルヌル」をお願いしおいたす。懇芪䌚で誰かず話すずきは新しい人が䌚話に入れるように、䞀人分のスペヌスを空けお話したしょう。ずいうルヌルです。 生成AI掻甚における悩みや知芋を意芋亀換しお、楜しんでいただけたようです。 たずめ いかがでしたでしょうか 圓日、むベントに足を運んでくださった参加者のみなさん、本圓にありがずうございたした。頂いたアンケヌト結果を、次回開催の参考ずさせおいただきたす。 次回開催は11月前埌を予定しおおりたす。残念ながら今回のむベントに参加出来なかったみなさんも、次回むベント開催時には是非ご参加ください 珟圚、ファむンディでは䞀緒に働くメンバヌを募集䞭です。 興味がある方はこちらから ↓ herp.careers