TECH PLAY

プログラミング

イベント

マガジン

技術ブログ

ニフティには所属部署での業務のほかに、有志による社内活動が存在します。もちろん強制ではなく、それぞれが興味のある分野について、自主的に活動しています。なかには会社公認のもと予算がつき、社内業務に貢献しているケースも。業務とは別のやりがいや、自分の専門外の知見を得られることが、一つのモチベーションになっています。 今回はその一つである、「AI活用推進チーム」にスポットを当てます。ニフティ社内の様々な部署の課題に対し、AIツールを使って解決に導くことなどを目的とした活動。メンバー4人に、活動に参加することになったきっかけや、普段の活動内容、やりがいなどについて聞きました。 自己紹介 小林 雅幸 さん 2022年4月に新卒入社。普段の業務内容は@nifty光や@nifty with ドコモ光などの接続サービスの開発・運用。趣味は配信者のイベントやライブ参加、スノボ。雪に埋まりたい。 藤岡 渓人 さん 2024年4月に新卒入社。普段の業務内容はSSOシステム、無料会員サインアップシステム、コンテンツ販売システムの保守・運用。趣味は筋トレ、ゲーム、サウナ巡りというよりお風呂が好きです。 山本 勇樹 さん 2024年4月に新卒入社。普段の業務内容は@nifty光や@nifty with ドコモ光などの接続サービスの開発・運用。趣味は筆記具収集、革細工、AI関連(ニュース漁り&お試し)。 中井 大介 さん 2023年4月に新卒入社。普段の業務内容はSSOシステム、無料会員サインアップシステム、コンテンツ販売システムの保守・運用。趣味はプログラミング。最近はファミコンエミュレータを作ろうとしています。 所属部署も、AIに関する知識量も異なる4人が集まり活動 みなさんはそれぞれの所属部署での業務とは別に、チーム外活動として「AI活用推進チーム(以下、AIチーム)」にも参加されているとお聞きしました。はじめに、所属部署とAIチームでの役割を教えてください。 小林さん 所属部署では「@nifty光」や「@nifty with ドコモ光」といった接続サービスの開発と運用を行っています。ニフティにはAIの活用を推進するチーム外活動が複数あり、我々もその一つ。私は一応リーダー的な立場で、別グループとの情報共有やミーティングの調整、活動報告、あとはアカウントの管理といった、メンバーが動きやすくなるための色々な雑務もやっています。 中井さん 所属部署ではSSOシステム、無料会員サインアップシステム、コンテンツ販売システムの保守・運用を担当しています。AIチームでは、わりと自由にAIシステムやツールを作らせてもらっています。 藤岡さん 私も中井さんと同じ部署に所属しています。AIチームでは特に明確な役割はありませんが、主には社内からAI活用に関する相談を受けた時に調査をしたり、チーム内で議論をしたうえで改善提案をしたり、といった活動が多いですね。 山本さん 私は小林さんと同じ部署に所属し、業務内容もほぼ同じです。AIチームでの役割については決まったものはありませんが、個人的にキャッチアップしたAI関連の最新ニュースやトレンド、技術をメンバーに共有したり。他にも色々とやっています。 みなさん、入社前からAIに対する知見や興味はあったのでしょうか? 小林さん 大学では機械学習を用いて異常を検知する研究を行っていましたが、本格的に業務で使えるAIに携わり始めたのはAIチームに入ってからですね。 中井さん 私は大学時代からプログラミングが好きで、自分で自動化ツールを作ったりしていました。AIが好きというよりは、自分がやりたいこと、自動化したいことをやる手段として捉えていました。 山本さん 大学時代に画像認識技術とIoTを組み合わせて、メダカの病気を自動判別し、さらには改善をするシステムを開発しました。それがAIとの最初の接点でしたね。 藤岡さん 私は3人と違って、学生時代はAIに触ったこともなければ興味もありませんでした。同級生は就活のエントリーシートのたたきを生成AIに書かせていましたが、私は「自分の言葉で書きたいから」と頑なに使わず。ですから、AIチームに入るまで何も知らない、使った経験すらないという状態でしたね。 チーム外活動をきっかけに、ご自身のAIに対する認識も変わりましたか? 藤岡さん 変わりましたね。最初は「ChatGPTとOpenAIって何が違うんですか?」という頓珍漢な質問をしてしまうレベルでしたが、メンバーや他グループの方々から教わるうちに理解が深まり、正しく使えば非常に便利なものなんだなと。今は仕事以外でも、普段からAIを活用しています。 社内各部署の課題を、AIシステムによって解決する では、みなさんのAIチームがどんな目的で、どのような活動をしているのか教えてください。 小林さん 社内には大きく分けて3つのAIチームがあります。 まず「基盤レベル」。これはニフティの全社員が基本的なAIツール、たとえばGeminiやコーディング支援ツールなどを活用できる体制を作ることを目的とした活動です。会社が契約しているAIツールを、エンジニアだけでなく営業などのビジネス側にも使ってもらえるような状態を目指すというものですね。 次に「専門レベル」。こちらは職種ごと、チームごとのニーズに特化したAIエージェントの開発を目的としています。たとえばチームの業務を効率化したい、サービスの運用を改善したいなど、一部の限られたニーズに対してAIを活用していくというものです。 そして「事業価値創造レベル」。AIを事業フローに組み込んで、新しい活用を創造する。AIを使った新サービスを作るなど、会社に直接的な利益をもたらすことを目的に活動するチームです。 そのなかで、我々のチームは「専門レベル」を担っています。 なるほど。専門レベルチームは、どんな経緯で立ち上げられたのでしょうか? 小林さん もともとは、私自身が所属する部署で、チーム内の業務効率化やサービス運用の改善のためにAIシステムを作り始めたのがきっかけなのですが、そのうち他部署からも似たような相談を受けるようになりました。「画像内の文字をテキストデータ化したい」「このAIツールを使っても大丈夫?」など。 そこで、そうした相談やエンジニア・ビジネスの様々な課題に対して、AIを活用した提案を行うチーム外活動としてスタートしました。今はSlack上に全社から相談を受け付ける窓口を設けて、各職種・チームに特化したAIシステムの開発、活用を目指しています。 中井さん 現在はその他にも、活動内容が広がっています。たとえば、AWSのサービスでAIを使えるのですが、コーディング支援や、AIシステムを作る時の検証環境を目的としてツールを使いたい希望者がいれば、期間を決めてアカウントを貸し出したり。あとは、私たち自身が普段の業務で解決したい課題に対して、AIシステムを開発するという活動も並行して行っています。 最初はAIの知識ゼロ。1年で急成長し、今では大きな戦力に 小林さん、中井さんはチーム立ち上げ当初からのメンバーということですが、山本さんと藤岡さんがこのAIチームに参加することになったきっかけを教えてください。 山本さん 私は学生時代からAIに関心を持っていたこともあって、入社後のOJTの最後の振り返りの場で、「自分はAIをどんどん活用して、社内にも広めていきたいです」という意気込みを語りました。その場に小林さんもいらっしゃったのですが、私が宣言した5秒後にはAIチームのSlack チャンネルに招待されていました(笑)。 小林さん スカウトのチャンスだと思って(笑)。 対照的に、藤岡さんはもともとAIにさほど関心がなかったということでしたが、なぜ参加しようと? 藤岡さん まずニフティに入社してから、想像していた以上に業務で普通にAIを使っている人がいるんだなと感じました。あと、同じ部署の中井さんがAIチームに入っていて、話を聞いてみたところ面白そうだなと。それで興味が湧いて、中井さんを通じて小林さんに参加したいですと伝えました。 ただ、その当時は社内向けの相談窓口もなく、みんながやっていることを横目で見ながら、僕がちょこちょこ質問するみたいな感じでした。毎週そんなことをやっていたら、3人が話していることが徐々に理解できるようになってきて、チームに寄せられた相談に対する僕なりの対応策も、何となく提案できるくらいのレベルにまでは進歩したと思います。 AIを使って課題を解決すること自体が、徐々に楽しくなってきたりも? 藤岡さん それはありますね。以前の自分からは考えられませんが、本当に楽しくて。たとえば、今は山本くんと二人で、セキュリティチーム向けのAIシステムを作っています。セキュリティチームって社内の色々な部署から、日々たくさんの問い合わせを受けるんです。それをAIに回答させるシステムを作れないかと同期から相談されて、やってみようと。AIチームに入った時から、何かしら形になるものを作って会社に貢献したい思いがあったので、これはチャンスだと思いました。毎週、業務外である程度の時間を作って活動に充て、今まさに開発中です。 いいですね。普段の業務とはまた別のモチベーションがあると。ちなみに、中井さんにお伺いしたいのですが、もともと藤岡さんはAIに関する知見やスキルを持っていなかった、言葉を選ばずに言うと「即戦力」になるメンバーではなかったのかなと思います。それでもチームに迎えたいと思った理由は何でしたか? 中井さん 基本的に、色んな視点や考えを持った人に入ってほしいという考えがあります。一人が取得できる情報には限りがありますし、そもそも所属部署もバラバラなので、AIで解決したい課題も異なるんですよね。バッググランドが異なるメンバーがいてくれたほうが、チームに新しい知見を取り入れていくことができるのではないかということで、藤岡くんにもぜひ入ってほしいと。色んな人がいたほうが、単純に楽しいというのもありますしね。 今も人を選んでいる、メンバー数を絞っているということは全くなくて、興味があればどんどん参加してほしいと思っています。知識は入ってから身につけてもらえばいい。実際、藤岡くんも学ぶことが好きで、すぐに知識を吸収してチームを助けてくれましたから。 知識量やAIを触った経験に差があっても、それぞれができることでチームに貢献すればいいと。 中井さん そうですね。それこそ山本くんの場合は、AI関連の情報収集能力が本当にすごくて、僕らが全く知らない情報をどんどん共有してくれます。新しいAIシステムを作る時も、「このサービスを使えばできますよ」という言葉が、スッと出てくる。こちらとしても山本くんに負けていられないという思いもあり、彼に普段どんな方法で情報を集めているのか聞いて、キャッチアップに努めていますね。彼の存在が、私を含めメンバーのモチベーションアップにもつながっています。 と言われていますが、いかがですか? 山本さん 山本さん 面と向かって言われると恥ずかしいですね。でも、ありがたいです。情報収集に関しては毎日の通勤中にもやっていますし、そこで気になったツールなどがあれば休日に自分で個人的に使ってみたり。ゲームや新しいアプリを試すような感覚で、色々遊んでいます。それをチームに共有しているだけなんです。 じつはニフティに入った時点では、そこまでAIを会社に広めたいという思いはありませんでした。ただ、OJTで色々な部署の色々な人と話すなかで、まだあまりAIが浸透していない、うまく活用できていないと感じて。トレーナーの方に、何気なく「このツール、面白いですよ」と言ってみたら、すごく喜んでいただけたんです。それが嬉しくて、もっとAIを社内で活用できる土壌を作っていきたいという思いが湧き上がってきましたね。 後編に続きます! 後編では、「所属部署の業務とチーム外活動の両立」について、「4人が印象に残っているAIチームでのプロジェクト」について、「今後チャレンジしてみたいことについて」などを語ってもらいます。 今回はニフティのAI活用推進チームのインタビューの様子をお届けしました。続きは近日公開予定の後編の記事をご覧ください。 このインタビューに関する求人情報 /ブログ記事 ニフティ株式会社 求人情報
はじめに こんにちは。タイミー プロダクトエンジニアの津守です。今年1月にタイミーに入社し、気づけば早3ヶ月が経ちました。 この記事では、入社して数ヶ月働いて感じた「AIツールがオンボーディングプロセスをどう変えたか」という体験をまとめます。技術的な深掘りというより、新しい環境に飛び込んだエンジニアの個人的な気づきとして読んでもらえると嬉しいです。 従来のオンボーディングプロセスのイメージ 新しい会社に入ったとき、多くのエンジニアは最初の数週間を ドキュメントを読む。コードベースを読む。アーキテクチャを把握する。チームの開発スタイルを理解する。そして、ある程度理解できたと感じてから、ようやく手を動かし始める。 というような順序で過ごしてきたと思います。 言ってみれば「インプット先行」の学習スタイルです。この期間は"情報を受け取る期間"と暗黙的に認識されていることが多く、アウトプットは後回しになりがちでした。チームへの貢献よりも、まず「追いつくこと」が優先されるイメージです。 AI活用によって感じた変化 入社して最も強く感じたのは、この「順序」が変わったということです。 AIツールを使うことで、コードベースへの理解が浅い段階でも、まず動くものを作ることが現実的になりました。実際Cursor や Claude Code を主体に実装を進めると、知識のギャップをAIがある程度埋めてくれます。おかげで、入社初期からチームメンバーやステークホルダーのレビューやフィードバックを素早く受け取ることができました。 実際、チームメンバーやステークホルダーからのフィードバックやレビューには、基礎的な知識だけでなく、「タイミーではこうやってる」といった暗黙のコンテキストが含まれており、ドキュメントから得られる知識に加えて、より多くの背景情報を得られる場面があります。 開発アプローチとして広く受け入れられている アジャイル では、「いかに早くステークホルダーがレビューできる状態を作るか」が重要な論点のひとつです。これは、個人が環境に適応するうえでも重要な要件だと思います。完璧な理解を待ってから動くのではなく、まず動くものを見せてフィードバックをもらう。そのサイクルを素早く回すことが、結果的に最も効率的な学習を生み出し、属する組織で求められる行動を起こせるようになるために重要と考えています。 適切に学習サイクルが回るための条件 ただ、このアウトプット先行の学習サイクルが機能するには、2つの環境が整っている必要があると感じました。どちらもAIツールの登場で新たに生まれた課題ではなく、組織の開発体験として元々重要だったものですが、AIツールの発達によってその重要性はさらに増しています。 1. AIが適切なアウトプットを出せる環境 AIが出すアウトプットの質は与えるコンテキストに大きく左右されます。学習サイクルの中でフィードバックを通じて暗黙のコンテキストを受け取れるとはいえ、そもそも明示的に言語化されているほうが望ましく、AIのアウトプットの精度も上がります。 実際、タイミーではバックエンド開発Handbookを通じて、開発プロセスを明示的に言語化する動きがあります。設計・実装・運用にまたがるガイドラインが体系的にまとめられており、さらにそれがAIエージェントのスキルとして提供されています(詳しくは新谷さんの記事「 バックエンド開発Handbookを届けるために ― AI時代の知の高速道路を敷く 」をご覧ください)。 Handbookが生まれた背景のひとつには、メンバーの増加やAIツールの進化により、バックエンド以外のエンジニアが越境してコードを書く機会が増えたという事情があります。ただ実際に使ってみて感じたのは、暗黙知をまだ何も持っていない入社直後のメンバーにこそ、そのインパクトが大きいということです。「そもそも何を知らないかもわからない」状態でも、AIがHandbookに沿ったアウトプットを出してくれることは、単なる品質担保以上の意味を持ちます。 自分がHandbookを意識していなくても、AIがガイドラインに沿った設計や実装を提案してくれる——「気づいたらタイミー流の書き方になっていた」という感覚は、入社して間もない時期にとても心強いものでした。 2. フィードバックをもらえる環境・体制 もうひとつの前提条件は、フィードバックの環境です。どんなに早くアウトプットを出しても、適切なフィードバックが返ってこなければ学習サイクルは止まります。 この3ヶ月間は、チームメンバーやステークホルダーから丁寧なフィードバックをもらえる環境にあり、そのおかげで学習が加速しました。特に、PRベースのコードレビューは厳密に行われており、そこでの指摘やディスカッションがとても多くの学びになりました。 ただ、3ヶ月を通じて感じたのは、現状ではフィードバックの質が運用や状況によってばらつきが出やすい状態にあるということです。体制として担保されているというよりは、チームメンバーの意識や余裕に左右される面があり、持続的に機能させるには仕組みとしての設計が必要だと感じています。 もうひとつ、AIがアウトプットを加速させることで生まれるトレードオフも見えてきました。学ぶ側が早く動けるようになった分、レビューする側が見るべきPRの量も増えます。学習サイクルが速くなった恩恵が、レビュワーの負荷という形で偏在してしまうわけです。 また、PRベースのレビューは厳密に行われている一方で、暗黙知やコンテキストを深く共有したうえでのフィードバックを、どう生み出すかという問いも残ります。これらに対してモブプログラミングやペアプログラミングのような形式は有効な解のひとつだと思っていて、後からまとめてレビューするコストを分散させながら、よりリッチなフィードバックを生みやすい構造だと感じています。 持続的に相互フィードバックが行われる開発体制をどう設計するか——これはまだ答えの出ていない問いですが、AIが学習サイクルを高速化させるほど、フィードバックを循環させる体制の重要性は増していくと感じています。 おわりに 3ヶ月を振り返ると、AIは入社直後の学習の「量」を変えたのではなく、「順序」を変えた、というのが一番しっくりくる表現です。 以前なら「理解してから作る」だったものが、「作りながら理解する」に変わりました。この変化は、入社直後という時期をより能動的に過ごす後押しをしてくれると感じています。 ただし、そのサイクルを本当に機能させるには、AIが適切なアウトプットを出せる環境と、フィードバックを届ける体制という、人間側の設計が不可欠だと感じました。Handbookをはじめとした環境を整えてくれたチームには、改めて感謝しています。 同じように新しい環境に飛び込んでいる方や、新しいメンバーを迎える立場の方に、少しでも参考になれば嬉しいです。
はじめに コンスタナイズー!(気さくな挨拶) ココナラのDevOpsグループCREチームのy.s.(@inu_no_hou)です。 皆さん、constantize というメソッドをご存知でしょうか。文字列からRubyの定数(クラス)を動的に解決するActiveSupportのメソッドです(ぎえー)。 私がココナラの会計システム(のちに自らマイクロサービス化することになる)のコードで初めてこれを見たとき、正直に言うと震えました。 def factory(acct_event, option = {}) klass = acct_event.event_code.gsub(/^eve

動画

書籍