ホーム ブログ

『伝わる技術』の紹介

0

今回は、アピリッツの知識共有サイト「ナレッジベース」から、
プロジェクトマネージャーを担当している神 宏伊(ジン ヒロヨシ)さんの記事をご紹介します。
是非最後までご覧ください!(初版:2025年5月6日)

概要

社会人になってからずっと、人とのコミュニケーションに悩んできました。

特にプロジェクトマネージャーを担当するようになってからは、
「自分では伝えたつもり」でも「相手に伝わっていない」ということがよく起こりました。

そのせいで、期日に間に合わなかったり、要件定義が中途半端になったりして、
社内メンバーやお客様に迷惑をかけてしまうことも何度かありました。

そこで今回は「相手に伝わらない」を減らすために役立った会話の工夫と、
私が普段から意識している3つのポイントをご紹介します。

【動いてほしいこと】を最初に伝える 

「何をしてください」「助けてほしい」など、
相手に動いてほしいことをできるだけ短く伝えることで、相手の興味や関心を引くことができます。

興味・関心が持てれば、その後の説明も聞いてもらえるようになり、結果的にこちらの意図が伝わります。

たとえば、次のように伝えると「緊急性」と「やってほしいこと」が明確になります。

  • 「助けてほしい。いつまでに〇〇が必要なんです。」
  • 「〇〇をお願いします。期限は〇月〇日です。」

この技術はメールでも使えます。

  • 【緊急】◯◯で問題が発生。至急確認願います
  • 【見積依頼】◯◯(4月1日まで)

私自身もそうでしたが、最初は文章をきれいに書こうとしすぎて長くなることが多かったです。

たとえば、「動いてほしいこと」の前に概要や理由、経緯を説明し、最後にお願いを書くようなパターンです。

するとどうなるか——

  • 緊急性や期限が相手に伝わらない
  • 話が長くなり、集中力が切れてしまう
  • 前提を忘れられ、もう一度説明する羽目になる
  • 結果、忙しい人から返事がもらえなくなる

このようにデメリットの方が多くなってしまいました。

だからこそ、まず「相手に動いてほしいこと」を最初に伝えることが大事だと考えています。

質問は複数重ねない

次のように、質問を続けてしまうケースはよくあります。

「AAについてどうしたら良いでしょうか?
たとえば、BBになったときはABとなるでしょうか?」

このように質問をいくつも重ねると、相手は複数の回答をしなければなりません。
しかし実際には、

  • 前提や最初の質問を相手が忘れてしまう
  • 質問の数が多くなり、回答するのが負担になる
  • 会話が複雑になり、お互いに混乱する

といった問題が発生します。

たくさん質問すれば効率的に思えますが、結局は非効率になってしまうことが多いのです。

そこで、質問は必ず1つずつ行うように心がけましょう。

その方が相手も答えやすく、会話もスムーズに進みます。

一度の説明は最大3つまでに絞る

最後に、人間が一度に記憶できる情報の量についてお話しします。

個人差はありますが、コミュニケーションを改善するための自己啓発書などでは、
「伝える内容は多くても3つまでにした方がよい」とよく言われています。

試しに「説明は3つまで」とGoogle検索すると、こんな記事が並びます。

  • 説明の上手な人が「3つにまとめる」を徹底する理由
  • なぜ、プレゼンの達人たちは「3」の魔術にこだわるのか?
  • 「プレゼンのポイントは3つにまとめる」。説得力を増す効果…

「3つにまとめるのは古い」といった意見もありますが、
まず3つに絞って話せるようになってから次のステップに進めばよいのです。

私自身もこれにならい、常に3つまでを意識しています。

■ 使用例

プロジェクトの進捗管理でも、1人が抱える課題は最大3つまでと決めています。
課題が片付いたら、次のタスクを追加する形です。

このルールにより、情報の整理やチーム内のやり取りがとてもスムーズになりました。

まとめ

今回ご紹介した3つのポイントを意識すると、相手にしっかり伝わるコミュニケーションができるようになります。

  • 【動いてほしいこと】を最初に伝える
  • 質問は複数重ねない
  • 1度の説明は最大3つまでに絞る

ぜひ、日々の仕事や会話で試してみてください。

おわりに

おわりに、コミュニケーションや自己啓発のヒントを分かりやすく学べるおすすめチャンネル・動画をご紹介します。

フェルミ漫画大学

学識サロ

コミュニケーションや人生に悩むことがあったときに、わかりやすく聞けるYoutubeチャンネルです。

神 宏伊(ジン ヒロヨシ)
デジタルサービスオファリング学部 エンジニア 
掃除得意なエンジニア。プログラムの掃除・整理や、日常生活での掃除・整理何でもござれ。 
座右の銘は「汚物は消毒だ〜!」

ーー神 宏伊さん、ありがとうございました!

アピリッツでは自分が得た情報や技術を社員間で積極的に共有し合い、それらを吸収しながら各々のスキルアップを目指しています。

アピリッツに少しでも興味をお持ちいただけた方、エントリーお待ちしております!

潜入!アピリッツのパパランチ会

0

アピリッツでは、子育てをしながら働くパパママ社員向けに様々な取り組みを実施しています。
今回は、その取り組みの一環として、先日社内で開催されたパパランチ会の様子をご紹介します!(2025年4月取材)

パパママ社員の声を制度へ

アピリッツでは、子育て経験者・子育て中の社員が主体となって、

定期的に意見交換の場を設け、会社独自の育児支援制度の検討や策定を行っています。

その取り組みの一環として毎月行われているパパママ社員のランチ会で、初の試みとなるパパ社員限定のランチ会が開催されました!

今回は、そんなパパランチ会に潜入してきました!

パパランチ会へいざ潜入!

左から、伊藤さん、鳴瀬さん、廣瀬さん、深澤さん

ーー皆さんの自己紹介をお願いします!

PL学部でスマホエンジニアをしています、伊藤です。
ちょうど1年前にアピリッツに転職してきました。
1歳9か月の男の子のパパをしています。
子供がよく歩くようになり、道草を食って登園に時間がかかってしまうことが最近の悩みです。笑

FG学部でプランナーをしています、深澤です。
子供は6歳と2歳の男の子がいます。
このランチ会の2日前にちょうど下の息子が誕生日でした!

伊藤さんと同じPL学部でスマホエンジニアをしています、鳴瀬と申します。
今回初めてランチ会に参加します。
今年の9月に子供が生まれる予定で、エコーの結果を見たり、どのベビーカーを買うか調べてみたり、
生まれてくるのが今からとても楽しみです!

SS学部でWebエンジニアをしている廣瀬と申します。
自分は今年の8月に男の子が生まれる予定です。
何をしたらいいのか分からないことが多くてドキドキなので、皆さんからアドバイスをいただきたいと思っています!
よろしくお願いします!

ーーありがとうございます!今回のパパ限定ランチ会は、どういう背景で開催に至ったのでしょうか?

社内のパパママ社員が集まって、毎月ランチ会を行ってはいるのですが、
「パパ同士の交流ってそもそも社内・社外問わず少ないよな~」と思ったことがきっかけで、
今回パパ限定のランチ会を実施することになりました!

ーーそうだったんですね!素敵な企画です!

今回、初めてのご参加になる鳴瀬さんや廣瀬さんは第一子が生まれるということで、色々と不安なこともあるのではないでしょうか・・?

子供が生まれて成長したら、送り迎えをしつつ、家でお世話をしながら仕事を両立できるか不安です・・

そうですね~。
でも、アピリッツには、子育てをしている社員の方々が意外といるおかげで、
子供事での対応の理解やそれに伴う業務のサポートが比較的あると思うので心配しなくても大丈夫ですよ。

周りに子育てしている人がいると、今日のように情報共有もできるし、ちょっとした雑談もできて気持ちも楽ですよね。
子供服で質問なんですが、洋服を選ぶ上で注意した方がいいことはありますか?

着替えがしやすい服を選ぶことですかね。
すぐ服を汚すので、1日に2・3回洗濯をするんですが、
脱がせにくい洋服だと、親も大変ですしね・・
あとは、親が着させたいと思っても着てくれないので、子供が着たい洋服を着させてます。笑

ーー取材を終えた後も和やかな雰囲気で盛り上がっていたパパランチ会。皆さんご協力いただきありがとうございました!


終わりに

働くパパママ社員が多いアピリッツでは、今回のランチ会の他に、

社内のSlackチャンネル「#アピリッツ-パパママ交流チャンネル」で子育てに関する相談や情報交換等を積極的に行っています。

実際に、パパママ社員の声がきっかけで生まれた、追加でリモートワークを取得することができるパパママリモート制度も現在試験運用中です。

そんな仕事も子育ても妥協しないアピリッツのパパママ社員について、他の記事でも取り上げていますので、ぜひチェックしてみてください!

お客様とチームを結ぶ架け橋。その裏側とは?~PM対談インタビュー 後編~

0

前回に続いて、アピリッツでプロジェクトマネージャー(以下、PM)として活躍している川畑さん、志賀さんの対談インタビューの続きをお届けします。
後編の今回は、PMとして大切にしていること、今後PMに求められることなど、深堀してきました!(2025年3月取材)
前回の記事はこちらからご覧ください!

チームを動かし、お客様と真正面から向き合う

ーー複数の案件のPMを担当されてきたお二人が、PMを担当していて意識していることはありますか?

(川畑)一番はメンバーとのコミュニケーションですね。

メンバーそれぞれが今どんな状況なのか、抱えている問題は無いか、精神的に大丈夫か等、

色々な側面におけるメンバーの状況を、PMである私が把握する必要があると思っています。

ただ、自分一人で20人~30人のメンバーの状況を把握することには限界があるので、

チームをユニットに分割して、それぞれのユニットのリーダーに、自分たちのメンバーの管理・報告をしてもらっています。

そうやって、メンバーの協力のおかげで、PMである自分がチーム全体を把握することができているんだと思います。

(志賀)自分は、お客様との関係性をどう築いていくかを一番意識しています。

そのために、お客様のご要望に対して常にイエスマンの立場にいるのではなく、

実現が難しいことにはしっかりその旨をお伝えして、着実に案件を成功させることが、お客様との信頼関係を構築するために重要だと思っています。

そうすることで、お客様とワンチームで案件を取り組むことができ、その後も継続した関係性を築くことができると思います。

川畑)自分も志賀さんと同じく、お客様と良い塩梅での関係性をどう持つかは重要だと思います。

どうすればお客様が喜んでくれて、かつ開発メンバーに負担をかけずに案件を成功させることができるかを一番に考え、

時には直接お客様のところへお伺いして、ひざを突き合わせて提案をしに行ったり、最大限の努力をしています。

ちなみに前職では、顧客折衝から開発まで全ての工程を自分一人で担当して、とても大変な思いをした経験があるので、

そんな思いをメンバーにさせたくない、という思いも原動力になっていると思います。

ーーお二人とも、お客様とメンバーの視点に立って、色々な工夫をされていらっしゃるんですね。

お客様との折衝では、具体的にどのような提案をされているんですか?

(川畑)そうですね。お客様のご予算とリクエストにずれがあると感じたら、

「こういう機能の方が使いやすいのではないか」と提案して工数を調整したり、

不要だと感じた機能はしっかりお客様にその旨を説明して、サービスがリリースしてから追加機能として開発しないかと提案したりしています。

お客様のご要望に全て断ってしまうとお客様との関係性が悪化してしまうので、どう折り合いをつけていくかは肝になってきますね。

(志賀)自分も川畑さんのように、「これはできないけど、こういう形であればどうですか?」と代案を出して交渉する等、

お客様にもしっかり満足してもらえるように工夫をしています。

ーー企画から運用保守まで一気通貫で行っているアピリッツだからこそできる提案ですね!

これから求められることは、”AIを活用する力とコミュニケーション能力”

ーー今後、PMにはどのようなことが求められていくと思いますか?

(川畑)最近AIが進化・加速をしている中で、どんどん作業の効率化が進んでおり、

PM業の中でも、スケジュール作成や提案、リスクヘッジ等も、今後はAIに対応・補助してもらう時代になるかと感じています。

その中で、そういった新たな技術を使いこなす力、そしてそれを精査して判断していく決断力が求められてくると思います。

逆にAIの技術がより進んでいくにつれて、AIにはできないであろう、

クライアントとの関係構築やコミュニケーション能力は、今後ますますPMに求められてくるとも思います。

提案内容はAIを活用しながら作成し、いかにそれを上手くお客様に伝えることができるか、これこそが大事になると思います。

(志賀)PMとして求められることですか・・これは自分も絶賛模索中です。笑

自分もPM業についてまだまだ勉強中ではありますが、

少なくとも、周りの先輩や同期、後輩、部長の方々とのちょっとした雑談が、PMとしての今の自分に繋がっていると思います。

ーーAIが進化していく中で、コミュニケーション能力、自分から情報を積極的に掴みに行く力がより重要になってくるんですね。

AIのお話が出ましたが、、お二人は業務の中でどのようにAIを取り入れていますか?

(川畑)エンジニアに聞くまででもない技術的な内容をChatGPTに聞いています。

業務提案でもAIが使えそうなので、そのへんも勉強しないといけないなと感じています。

(志賀)どう調べていいかが分からないとき、かつブラウザで調べるにもフックがなさすぎるときに、

足掛かりになる単語をAIに聞いてみたり、たまにコーディングの仕方を聞いてみたりして活用しています。

QCD管理から大規模案件へ

ーーお二人の今後の目標や、伸ばしていきたいスキルがあれば教えてください。

(川畑)生産管理の基本的な考え方であるQCD(品質・コスト・納期)の管理を、今以上にできるようにしていきたいです。

エンジニアのパフォーマンスを上げるにはどのように動いてもらうべきか、与えられた予算の中でどれだけ効率よく案件をこなしていけばよいか、

クライアントの要望をどれだけコスト・期間内で叶えることができるか等、

常に流動的に動いていく案件の中で、どれだけ素早く判断・行動ができるかがPMの要だと思っているので、

これらの考え方を常にアップデートしていかなければいけないと。

ちなみに、飯場部長(SO学部部長)から紹介してもらった『仕組み化がすべて』という書籍はPMとしてとても参考になったのでおすすめです!

(志賀)より規模の大きい案件のPMとして働けるようにすることが今の目標です。

スキル面では、PMとして、調整能力、中長期的なマネジメント能力等を伸ばしていきたいと思っています。

ーーお二人ともありがとうございました!

アピリッツでは、更なる事業成長のため、プロジェクトマネージャーを募集しています。

顧客折衝、要件定義等の上流工程からサービスのリリースまでを一気通貫で提供できるアピリッツで、

エンジニアとしての成長の可能性をもっと広げてみませんか?

ご興味がございましたら、ぜひ採用HPからご応募ください。ご応募お待ちしております。

チームを動かしお客様と共にサービスを作りだす。~PM対談インタビュー 前編~

0

今回は、アピリッツでプロジェクトマネージャー(以下、PM)として活躍する川畑さん・志賀さんにインタビュー!
前編では、二人のこれまでのキャリアと、やりがいについてご紹介します!(2025年3月取材)

メンバー紹介

「やりたいようにやっていいよ」色々な選択肢がある会社が、ここだった。

ーー川畑さんから、アピリッツに入社するまでの経歴を教えてください。

(川畑)大学時代にPHPアルバイトとして入社した会社に就職して、

ポータルサイトやコーポレートサイト等の一般的なWEBサイトの構築や、EC・業務WEBシステムの開発を行っていました。

10人以下の小さな会社だったので、入社してからは徐々にPM関連や営業等、多岐にわたってWEB制作に携わっていました。

そこで3年間働いて、アピリッツに入社したという流れになります。

ーー大学時代からPHPエンジニアとして活動されていたんですね!川畑さんは学生時代バンド活動も行っていたんだとか。

(川畑)そうですね。5~6年ギターメンバーとしてバンド活動をしていました!

そのときに自分が所属するバンドメンバーのWebサイトを作ろうということになって、HTMLの本を買って読んだんです。

そしたら「楽しい!」ってなって。笑

そこからどんどんのめり込んでいって、PHPという言語があることを知り、前職でPHPエンジニアとしてアルバイトに参加していました。

ーーきっかけはバンド活動のWebサイトからだったんですね。初めての転職活動でどうしてアピリッツに入社を決めたんですか?

(川畑)アピリッツなら、色々な選択肢があると感じたからです。

当時は、PMやエンジニア等、色々なことを経験していたため、最終的に自分が何をやりたいのかまだ定まっておらず悩んでいたのですが、

アピリッツの面接で話を聞くにつれ、色々なことができる会社なんだと感じました。

その時の面接官の和田さん(社長)と利夫さん(鈴木部長/現SS学部部長)に、

「やりたいようにやっていいよ」と言ってもらったことが、今でも印象に残っています。

ーー懐の広さを感じますね!笑 代わって、志賀さんは新卒でアピリッツに入社されたんですよね?

(志賀)そうですね。自分は情報系の大学で初めてプログラミングに触ったことがきっかけで、

就職活動中はIT企業のエンジニアを中心に会社を探していました。

当時は、若手のうちから色々な経験ができそうな中小企業やベンチャー企業を中心に企業を探していて、アピリッツを見つけました。

ーーその中で、どうしてアピリッツに入社を決めたんですか?

(志賀)面接官の方たちの雰囲気がとても魅力的だったからです。

他の企業の面接もいくつか参加しましたが、アピリッツの面接を通して、この会社で自分も一緒に働いてみたいと思いました。

入社して7年経った今でも、先輩・同期・後輩含め自発的に動く人が多くて、一緒に働いてる人たちに恵まれているなと感じます。

一人ひとりの個性を生かしたメンバーアサイン

ーー入社してから今までどんな案件を担当されてきたんですか?

(川畑)車両メンテナンスサービスの管理画面及び会員用マイページの構築におけるPMや、

こどものためのイベントやお知らせなどを掲載する官公庁のポータルサイトとそのCMS構築におけるPMを担当してきました。

基本的にどの案件も要件定義からアサインされて、リリースまでのスケジュール調整や仕様・設計の作成を行ってきましたね。

今は、20人~30人のチームメンバーで、

医療系人材紹介のWEBサイト及びその管理システムの構築を担当しています。(開発言語はRails、インフラはAWSで構築予定)

(志賀)私は現在3つの案件のPMを担当しています。

1つ目は新卒の時から関わっているECサイトの保守運用案件(開発言語:RoR インフラ:AWS)、

2つ目はスマホアプリの保守運用案件(開発言語:Kotlin/Swift)、3つ目は新規システムの開発案件(開発言語:PHP)です。

ーーお二人ともPMとしてチームマネジメントも行われているとのことですが、チームメンバーのアサインは、どのようなところを基準に決めているんですか?

(川畑)そのメンバーの得手不得手を見て判断しています。

エンジニアでゴリゴリ開発できる人は難しいところ、そうじゃない人は簡単なところを担当してもらう、とかですね。

そのために一人ひとりの強みや苦手なところを自分が把握しておく必要があるので、チームメンバーとの会話は密に行っています。

前職では自分よりかなり年が離れた人が多くてコミュニケーションを取ることが大変だったこともあったのですが、

自分と同年代の人が多いアピリッツは、かなりコミュニケーションが取りやすいなと感じます。

同年代のチームメンバーと一緒の案件に携われることもアツいですね!

(志賀)それぞれ私の他に1人~3人のメンバーが参画しているのですが、

保守案件は優先度の高いところを自分が対応して、他の細かい部分はメンバーにある程度任せる等、

できるだけ一人ひとりが自分で考えて動けるように、エンジニアとしての成長に繋がることを意識してアサインしています。

お客様と二人三脚でサービスを作り上げる。

ーー色々な案件でPMを担当されてきたお二人にとって、「PMのやりがい」とは何ですか?

(川畑)やはりリリースされた時に一番やりがいを感じますね。

お客様と我々がやりたかったことが形になって、世の中に公開されるときが一番嬉しいです。

また、リリースのために、チームメンバー一人ひとりが責任感を持ってプロジェクトに向き合っている姿を見ると、

チーム全員が同じ方向を向いていることに、PMとしてとても嬉しいなと感じます。

(志賀)お客様とのMTGで相手方から感謝の言葉をいただけるとやりがいを感じます。頑張ってよかったなと。

そのためにも、当たり前ですが、期限を守ったり、お客様からのリクエストにできるだけお応えしたり、

明るく元気に話す等、基本の積み重ねでお客様との信頼関係を構築して長期的に関係を作っていくことが大切だと感じます。

ーーお二人、とても素敵なお話をありがとうございます!最後に、大型案件や複数案件で多忙なお二人のリフレッシュ方法を教えてください!

(川畑)趣味の料理やゲームをしたり、休日に家族と過ごしてリフレッシュしています。

前職がかなり忙しかったので、オンとオフの切り替えを意識するようになりました。

(志賀)自分は平日に行きつけのバーで知人とお酒を飲みながら雑談して息抜きをしています。

休みの日はロードバイクに乗って趣味のサイクリングをして過ごしています。

(川畑)サイクリングとは違いますが、実は大学生の時に原付に乗って日本中を旅していました。

ちなみに自分もお酒が好きで、一時期家にビールサーバーを借りてましたよ!笑

ーー意外なところに共通点が!笑 お仕事もプライベートも充実させているお二人

次回はPM対談後半戦!PMとして大切にしていること、今後PMに求められることなどを深堀していきます。次回のアピスピもお楽しみに!

中途ランチ会ー深まる中途同期のつながりー

0

実はアピリッツ、在籍する社員のうち、中途入社の社員数が、新卒入社の社員よりも多いんです!(参照:データで見るアピリッツ
今回は、そんな中途入社の社員が多いアピリッツで、定期的に実施している「中途ランチ会」についてご紹介します!

1.中途ランチ会って?

中途社員は新卒社員と違って、長い時間をかけて会社に慣れたり、同期同士のつながりを構築することは難しいですよね。

また、新しい環境に慣れることができるか、不安に感じる方も多くいらっしゃるのではないでしょうか。

そこでアピリッツでは、同じタイミングで入社した中途入社社員、いわゆる「同期」同士が、

気軽に交流し、つながりを深めるきっかけ作りとして、「中途ランチ会」を定期的に開催しています!

日々の業務から少し距離を置いて、リラックスした雰囲気でランチを楽しみながら、コミュニケーションを深めるこのイベント。

今回は、そんな中途ランチ会についてご紹介します!

中途社員だけでなく、新卒社員向けの新卒ランチ会も開催しています!
こちらの記事もぜひご覧ください。

2.実際にランチ会に参加した中途社員に聞いてみた!

入社してから1か月程経つと、CCO室の担当者から、「中途ランチ会」のお誘いが・・!

ランチ会当日は会社近辺のお洒落なお店でランチを楽しみます。

ランチの費用は全額会社負担。社員同士のつながりを大切にしてほしいという経営陣の気持ちがよく表れていますね。

入社日から1か月経って、「今どんなお仕事をされているのか」「会社には慣れたか」「休みの日は何しているのか」など、

ざっくばらんに皆さんでお話をしていきます。

このランチ会でお互いの共通点が見つかり、ランチ会終了後も共通の趣味で交流されている社員さんをよく見かけます!

ときには、今困っていることや不安に感じていることを聞いて、入社後の不安もランチ会で解消していきます。

ここで、直近1年以内に入社した中途メンバーに、実際のランチ会の感想について聞いてみました!

ーー中途ランチ会に参加してみてどうでしたか?

中途入社は新卒と違い、業務以外でつながりを持つことができないので、
こういった会があると仲間意識みたいなものが持ててとても嬉しいです!

中途ランチ会に参加してから、他のイベントなどで会った際に一緒に楽しんだり
関係が続いた先で、部をまたいで一緒の案件を担当した際はとても心強かったです。

いつもと違う昼食時間を過ごせて楽しかったです!
小規模な企画ではあっても、会社が社員のことを考えて、予算を取って人員を動かしているというのは有り難いことだと感じました。

3.終わりに

アピリッツでは、このランチ会を通じて、中途入社の社員が安心して働ける環境作りに力を入れています。

中途ランチ会以外にも、懇親会や文化祭など、部署や事業、年齢や役職関係なく、

縦と横、時には斜めの仲間づくりができるようなイベントを企画・実施しています。

少しでも興味をお持ちいただけた方は、ぜひご応募ください!

次回は、実際のランチ会へ潜入捜査!次のランチ会記事も楽しみにしていてください!

Mastraで学ぶ!AIエージェントってどうできてるの?

0

はじめに

AIエバンジェリストの浅田です。
AIエージェント、話題ですよね。様々な企業がAIエージェントの発表をするとともに、AIエージェントを作成するためのツールも色々出てきています。

そんなツールの一つにMastraというTypeScript製のオープンソースフレームワークがあります。現時点で、同時期に出たOpenAIのAgentsSDKや、先発のLangChainのAgent構築フレームワークであるLangGraphよりもGitHubのスター数が多く、その注目されぶりが伺えます。

そこで、今回はMastraのコードを見ながらAIエージェントを実装する際の構成要素について書いてみたいと思います。

準備

まず、インストールします。公式の手順に従いインストールしますが、npmが使える環境であれば、以下のコマンドでインストールできます。

npm create mastra@latest

そうするといくつか質問されます。

  • What do you want to name your project?
    • 任意の名前をつけます
  • Where should we create the Mastra files? (default: src/)
    • デフォルトのままにします
  • Choose components to install:
    • Agents, Workflowsの選択肢が出るので、両方にチェック(スペースキーでチェックできます)を入れてEnterを押すと、Add tools?と質問されるので「Yes」を選択します
  • Select default provider:
    • AIのプロバイダーの選択肢はデフォルトのままOpenAIを選択し、Enter your openai API key?と聞かれるので、Skip for Now(default)を選択します。
  • Add example
    • 「Yes」を選択します
  • Make your AI IDE into a Mastra expert? (installs Mastra docs MCP server)
    • Skip for now (default)を選択します

上記が完了すると、最初に決めたproject名のディレクトリが作成され、その中に.env.developmentというファイルがあります。このファイルを開くと

OPENAI_API_KEY=your-api-key

となっているので、your-api-keyを自分のOpenAIのAPIキーに修正します。

これで準備完了です。

起動

インストール時に出力されるメッセージにも書かれていますが、以下のコマンドでMastraプロジェクトを起動できます。

npm run dev

Mastraは、デフォルトで二つのインターフェースを持っています。

  • API(別のツールから呼び出すためのエンドポイント)
  • Playground(定義したエージェントの挙動を確認できるブラウザ上のGUI)

http://localhost:4111/ にアクセスすることで、Playgroundにアクセスできます。以下のような画面が表示されれば起動成功です。

画面上の「Weather Agent」をクリックし、「Write a message…」と書かれているところに「渋谷の天気を知りたい」と入れて送信すると、現時点(2025/3/31の午後6時)だと以下のような結果が返ってきます。後で説明しますが、これはopen-meteo.comという緯度経度から現在の天気を教えてくれるAPIの結果をもとに出力されています。

Shibuya's current weather is overcast with a temperature of 7.6°C, but it feels like 4.5°C due to the wind. The humidity is at 76%, and there is a wind speed of 11.3 km/h with gusts up to 29.9 km/h.

Agent

AIエージェントのフレームワークであるMastraの中心となる構成要素はAgentです。MastraのExampleにおけるAgentはsrc/mastra/agents/index.tsに記載されています。

export const weatherAgent = new Agent({
  name: 'Weather Agent',
  instructions: `
      You are a helpful weather assistant that provides accurate weather information.

      Your primary function is to help users get weather details for specific locations. When responding:
      - Always ask for a location if none is provided
      - If the location name isn’t in English, please translate it
      - If giving a location with multiple parts (e.g. "New York, NY"), use the most relevant part (e.g. "New York")
      - Include relevant details like humidity, wind conditions, and precipitation
      - Keep responses concise but informative

      Use the weatherTool to fetch current weather data.
`,
  model: openai('gpt-4o'),
  tools: { weatherTool },
});

ここからWeather Agentについて以下のことがわかります。

  • instructionsで天気情報を提供することを命じられている
  • modelでopenaiの”gpt-4o”のAIモデル(LLM)を使用するように設定されている
  • toolsでweatherToolが指定されている

instructionsはそのAgentの基本動作を規定します。これをもとにAIモデル(openAIのgpt-4o)は何をユーザから聞き出し、何を実行し、何をユーザに提供するかをの指針を得ることができます。今回の例であれば天気を調べるにあたり必要な情報(location)を理解します。そして、天気の情報を得るために、weatherToolというツールを使えること、およびユーザに提供する情報に含めるべきこと(wind conditionsなども含める)や、形式(concise but informative)について理解します。

さて、もし同じことをLLMを使わずにやろうとするとどうなるでしょうか。

  1. ユーザの発話が天気に関することかどうかを判定する
    1. 発話に天気関連のキーワード、例えば「天気」が入っているかどうかを判定する
    2. 発話が天気に関するものではない場合には、最初の処理に戻る
  2. ユーザの発話の中にlocationに関する情報があるかを判定する
    1. locationの情報がなければユーザに質問し、判定の処理に戻る
  3. locationが与えられた場合に、情報が英語かどうかを判定する
    1. 英語でなければ、locationを英語に翻訳する
  4. 天気情報(weatherTool)の出力をパースし、目的の出力形式に整形して、ユーザに提示する

上記のようにユーザに天気の情報を提供する状態にたどり着くまでに多くの処理が発生することがわかります。上記の例であればユーザの発話を判定する際に「天気」というキーワードが入っていたとしても「脳天気な性格だね」や「天気以外のことを話そう」などといったパターンを処理しようと考えると気が滅入ってきます。

一方、LLMを利用することで、先述のinstructionsを定義するだけで、それらのことが処理できるようになります。これだけでもLLMが利用できることによるメリットが感じられます。

  • ユーザが求めるタスクを判定する
  • ユーザからタスクに必要な情報を引き出す
  • ユーザにタスク実行の結果をわかりやすく提示する

といったことをAIを用いて処理するのがAIエージェントにおけるLLMの果たす第一の役割になるかとおもいます。

Tool

AIエージェントの定義はまだ定まりきっていないかと思いますが、少なくとも以下のような特徴があるかとおもいます。

  • ユーザの代わりにタスクを自律的に実行する

「ユーザの代わりに」ということは、ユーザがやろうとしていたことをAI側で代行する必要があります。ですが、AIモデル(LLM)ができることは、基本的には与えられたテキストデータや画像データを入力して、テキストデータを生成することです。外部のデータを入力として取りにいくこともできなければ、結果をファイルとして保存することもできません。

そこでToolという概念が登場します。

Toolは簡単にいえば、LLMと連携させることを前提にした関数です。簡単に動作を説明すると、プログラムが関数の情報をLLMに渡して、タスクを実行する際に必要であればLLMに「タスク実行のためにこの関数をこの引数で呼び出して、その結果ください!」と出力させます。そして、その出力情報に応じてプログラム側で関数を実行し、その結果をLLMに戻すことで、LLMは情報を得たり、外部へのアクションを起こします。

先ほどのweatherToolは、src/mastra/tools/index.tsに定義されています。getWeatherは与えられたlocationの情報をもとに、open-meteoのAPIを使って、緯度経度を算出し、その緯度経度の天気情報を取得する関数となっています。

export const weatherTool = createTool({
  id: 'get-weather',
  description: 'Get current weather for a location',
  inputSchema: z.object({
    location: z.string().describe('City name'),
  }),
  outputSchema: z.object({
    temperature: z.number(),
    feelsLike: z.number(),
    humidity: z.number(),
    windSpeed: z.number(),
    windGust: z.number(),
    conditions: z.string(),
    location: z.string(),
  }),
  execute: async ({ context }) => {
    return await getWeather(context.location);
  },
});

このToolが求める入力情報と、出力情報のスキーマ(構造)、および実行する関数が定義されています。

これによって、LLMは「天気を調べる」というユーザのタスクにおける「特定のlocationの天気情報を調べる」というタスクを代行することができるようになります。

さらに、Toolは複数指定することができます。つまり、今回のケースであれば天気情報を取得するというweatherTool一個ですが、別にメールを送信するためのToolを定義し、与えることができます。

export const sendMailTool = createTool({
  id: 'send-email',
  description: 'Send result mail.',
  inputSchema: z.object({
    mailAddress: z.string().describe('MailAddress'),
  }),
  outputSchema: z.object({
    status: z.string(),
  }),
  execute: async ({ context }) => {
    return await sendMail(context.mailAddress);
  },
});

上記のようなToolを追加し、weatherAgentのtoolsに与えることで、weatherAgentにメール送信の能力を与えることができるようになります。

それによって、「ロンドンの天気を調べて、 example@example.com に送信しておいて」といったユーザの発話によって天気調査とメール送信といったタスクを実行できるようになります。

また、「ロンドンの天気を調べて」とだけ言われた時にはメールを送らず、上記のようにメール送信の依頼があった時にメールを送るようになります。

このように、if文などの制御文を挟まずに複数のToolと目的を与えることでAgentが自律的にタスクに必要な処理を判断し、実行してくれるようにフローをシンプルに組めるのがAgent機能の強力な点だと言えます。

Workflow

一方で、ユースケースによっては、必ず実行したいタスクの組み合わせもあるでしょう。ユーザの特定の発話に限らずセットで実行したい処理などです。先ほどの例であれば、AIの判断によらずメール送信を必ずセットで行いたい場合などです。

もちろん、weatherToolの処理の最後にメールを送信することも考えられますが、そのような場合に、Mastraで利用できる仕組みにWorkflowがあります。これは名前のごとしですが、規定の順番で決められた処理を実行するワークフローをつくるための機能です。

例えば、MastraのExampleコードでは、src/mastra/workflows/index.tsに、以下のようなWorkflowが定義されています。

const weatherWorkflow = new Workflow({
  name: 'weather-workflow',
  triggerSchema: z.object({
    city: z.string().describe('The city to get the weather for'),
  }),
})
  .step(fetchWeather)
  .then(planActivities);

weatherWorkflow.commit();

fetchWeatherはweatherToolと同じように、open-meteoのAPIで天気情報を取得する処理、planActivitiesは、fetchWeatherによって取得された天気情報から、LLMに活動予定計画を生成させる処理になります。

このように、Workflowを利用することで、より構造的にタスクの流れを定義できます。失敗時のエラーハンドリングや回数実行の制御など一般的なワークフローを制御するための仕組みもあるので、Mastra単体でタスク実行のワークフローを組めるのはメリットだと言えるでしょう。ただし、このようなことは、普通のワークフローツールでもできるので、Mastraじゃなくても(というよりAIエージェントじゃなくても)可能です。

では、MastraのWorkflowを使うと嬉しい点はなんなのか。それは、ワークフローの各ステップにおける処理でAgentを指定できるので、Agentの処理結果による分岐をシームレスに定義できることだと思います。

たとえば、「直近の業界ニュースを取得」し、「特定の業界に深刻な影響を与えるか判定」した上で、「影響ありの場合に通知する」といったワークフローを組みたい場合に、ネックとなるのは「深刻な影響を与えるかどうかの判定」をどう実現するかになります。その一つの解は、(どのような指標を基準とするか、instructionsの工夫は必要ですが)Agent(のLLM)に判定させるという方法です。

そのようなケースにおいて、Agentをワークフローにシームレスに結合し、Agentの判定結果によって処理フローを構築できるWorkflowは便利かとおもいます。

Agent Network(Experimental)

Workflowを使うことによっても、複数のAgentを組み合わせてタスク実行を行うことができますが、Mastraには複数のエージェントを共同させるための仕組みがもう一つ用意されています。

それがAgentNetworkという仕組みです。これは複数のAgentの集まりに対して、「RoutingAgentと呼ばれる制御用のAgentが、求められたタスクに応じて仕事を動的に割り振っていく」という仕組みです。

import { AgentNetwork } from '@mastra/core';
import { openai } from '@mastra/openai';

// Create specialized agents
const webSearchAgent = new Agent({
  name: 'Web Search Agent',
  instructions: 'You search the web for information.',
  model: openai('gpt-4o'),
  tools: { /* web search tools */ },
});

const dataAnalysisAgent = new Agent({
  name: 'Data Analysis Agent',
  instructions: 'You analyze data and provide insights.',
  model: openai('gpt-4o'),
  tools: { /* data analysis tools */ },
});

// Create the network
const researchNetwork = new AgentNetwork({
  name: 'Research Network',
  instructions: 'Coordinate specialized agents to research topics thoroughly.',
  model: openai('gpt-4o'),
  agents: [webSearchAgent, dataAnalysisAgent],
});

// Use the network
const result = await researchNetwork.generate('Research the impact of climate change on agriculture');
console.log(result.text);

上記はMastraの公式のサンプルですがこのように、複数のAgentをAgentNetworkに集めて、’Research the impact of climate change on agriculture’というプロンプトから適切なAgentを自律的に選択しながら、気候変動の農業の影響を調査するタスクを実行します。

このような仕組みはマルチエージェントシステムと呼ばれます。それぞれのAgentを専門化させて、それを適宜使い分けてタスク達成を目指すという流れです。ここで次のように思われた方もいるかと思います。Agentに色々なツール、例えば上記の例で言えば、webから情報を取得するToolとデータを分析するToolを搭載するのではだめなのでしょうか。

上記の例でいえば問題になることはないと思います。マルチエージェントシステムが必要になってくるのは、より大規模で複雑なタスクをAIエージェントシステムで実行する状態になった時だと思います。

Agentにおける利用に限らず、LLMに渡すテキストが巨大になればなるほど、その解釈の精度が悪くなっていきます。また、外部APIを利用している際には、LLMに与えるテキスト情報が長ければ長いほどコストがかかってくることにもなります。ローカルでLLMをホストしている場合でもCPU、メモリ、ネットワークといったリソースをより多く消費することになります。

つまりAgentにおけるinstructionsやToolの役割などの定義情報が巨大になっていけばいくほど、Agentとしてのタスク処理の精度やコストの面で不利になっていきます。そこで各Agentをより専門化し、それらを連携させることでなるべく効率的に実行させる仕組みがマルチエージェントシステムとなります。

終わりに

Mastraを構成する代表的な要素について紹介してきました。

  • Agent
  • Tool
  • Workflow
  • AgentNetwork

これらの要素は他のAIエージェントフレームワーク、例えばLangGraphや、AgentsSDKでも似たような要素が存在します。それはAIエージェントの本質がそこに凝縮されているからだと思います。

  • Agentに何をサポートさせるかを定義し、適切なinstructionsを与えること
  • Agentがタスクを実行するのに必要なTool(外部処理)を適切に用意し使い分けさせること
  • Workflowを組んで目的の処理を構成する要素を適切に定義すること
  • 適切に専門化させたAgentを用意し、それらをうまく協調させること

「適切」という言葉を連発していますが、AIエージェントシステムの肝は上記の要素を如何に適切に調整していけるかだと思います。

以上、参考になれば幸いです。

浅田大輔
クラウドサービスソリューション学部・AIエバンジェリスト。
認定ホワイトハッカー。映画・歴史好き。
座右の銘は「酒は人類の友だぞ。友人を見捨てられるか」。

2025年度アピリッツ入社式、67名を迎えました!

0

2025年4月1日にアピリッツは入社式を行いました。今年は67名の新入社員が入社!
今回も当日の様子をご紹介します。

新しいオフィスで新しい気持ちで

昨年9月にサクラステージに本社移転をしたアピリッツ。

今年は、新しいオフィスのカフェスペースで入社式を執り行いました!

緊張した新入社員の顔を見てわたしたちも気が引き締まる思いでした。

まずは役員の歓迎の挨拶から

今年も経営陣から新入社員への挨拶から式がスタート。

社長の和田から始まり、役員陣からも熱いメッセージをいただきました。

左上から順に和田、永山、八木、長谷

一緒に働く仲間としてよろしくお願いします。皆さんが今後進んでいく方向性というのは、単なるプログラムがかける作業員、3Dのモデルができる作業員ではなく、お客様と話して要件を詰めたり等の上流の仕事を目指していかないと、将来自分たちの仕事がなくなるということを理解してください。人を育成して事業をまわしていくという構造をとれなくなってきている世の中です。上流工程の仕事を学んでいく姿勢がないと職がなくなるということを考えて行動していただければと思います。(代表取締役社長・和田)

社会に出ると自分で決めないといけないことがたくさん出てきます。人生は思った通りにならないことが増えていきます。その時の置かれた状況で何ができるか、どの選択が良いか、を自分で考えなければいけなくなります。そんな状況を逆に楽しんで、こんなピンチ乗り超えちゃったぜと言えるような選択をできるように頑張っていただければいいのかなと思います。冒険を楽しんでください。(執行役員・永山)

皆さんと同じで、期待や不安を抱えて新卒入社した新卒17年目になります。なぜ長くいるかというと、長くいればいるだけ仕事はやりやすくなり、自分がやりたいことが楽に実現できるからです。そして、大きな実績や大きな成長につながっていくのであれば、それを利用して自分の人生を楽しむ。楽しむために仕事を利用する。皆さんも自分自身でできることやれること、楽しいと思えることで、実績を上げてください。一方で、チャンスは訪れますが、チャンスには限りがあって、チャンスを見逃すリスクもあります。自分の過去の考え方でブレーキかけるのではなく、様々なことに挑戦をして目の前のチャンスを掴んでください。(執行役員・長谷)

思い通りにならないことが、ぼーっとしてても一生懸命やってても無限に訪れます。思い通りにならないことが嫌だと思う気持ちが、一番自分の成長や前に進む力を阻害していく要因になるので、上手く向き合えるようにストレスを解消できるようなものを色々見つけてください。すこしでも話せる仲間の輪をひろげていってください。(執行役員・八木)

新入社員から抱負を一言!

役員陣の挨拶が終わった後は、一人ひとり抱負を話してもらいました。

座右の銘をもう一つつけました。座右の銘に負けないように頑張りたいと思います!

精進という言葉が好きです。その言葉に恥じない人になります!

入社したばかりの私はまだ初期化されたばかりの変数みたいなものですが、日々頑張っていきますのでご指導ご鞭撻、私のデバッグのほどよろしくお願いします!

様子を見に来た社員も見守る中の決意表明。

たった一言ずつでしたが、言葉から熱意が伝わってきました!!!

そんな新入社員の皆さんは早速新卒研修が始まったようです^^

そして、今年も来年に向けて2026新卒の採用も始まっております。

学生の皆様のエントリー、お待ちしております!

ゲームでいざ尋常に勝負!

0

アピリッツでは懇親会と題して、社員同士のコミュニケーションが取れるイベントを開催しています。
今回は、先日行われたゲーム大会の様子をお届けします♪

ゲーム会社ならではの発想?

懇親会委員のメンバーが「社員と一緒に自分たちの好きなゲームを楽しみたい!

そんな思いで今回企画してくれたのはゲーム大会!!!

一緒にゲームをやりませんか?」という呼びかけにたくさんの社員が集まりました。

(やりたいことをさせてもらえるなんて理想的、、!笑)

早速懇親会開始!かんぱ~~い!

おいしそうな食べ物とたくさんの飲み物も用意されていました^^

甘いものが好きな社員が多いためドーナツがいっぱい!

まずは懇親会委員の開始の合図とともに、あちこちから乾杯の声が!

 おいしそう~~!!!
元同部署の先輩後輩でお話ししているところにお邪魔しました!

お待ちかねのゲーム大会もいよいよ開始です!

ある程度飲食を楽しんだ後はメインイベントのお時間です!

委員会メンバーからのゲーム大会開始のアナウンスとともにトランプが配られグループ分けが行なわれました。

グループ分けはランダムのため、話したことのない他部署の人ともみんなで盛り上がっていました!

こんなに大きいテレビで、しかも社内でゲームができるなんて夢みたいですよね~☆

負けられない戦いがここにはある。

勝者にはささやかな景品、お菓子のつかみ取り!!!

大量に用意されていました、、!

参加した皆さんのお話も伺いました!

普段喋らない他部署の人とも、お酒やゲームを通して交流することができたので、とても話しやすかったです!
定期的にこういった交流ができる機会があるのはとても良いなと感じました!

皆さんゲームがとても上手でびっくりしました・・!!
新しい一面が見れて、とても楽しかったです^^
オンとオフを切り替えて、楽しむときは全力で楽しむことができるチームって、改めて素敵だな~とも感じました!

社員の楽しそうな様子を見て、委員会メンバーも嬉しそうでした!

これからの企画にも期待大ですね♪

アピスピでもたくさん発信していきますので、お楽しみに!

アピリッツにカムバーーーック!!!

0

カムバック採用って?

様々な方にご入社いただいているアピリッツですが、実は退職された方の再入社、カムバック採用にも力をいれているんです!

アピリッツで身につけた知識・技術と、退職後に身につけたスキルや価値観、

様々な経験を活かし、パワーアップしてアピリッツでさらなる活躍をしてみませんか?

選考フローは下記のようになっています!

—————-
Step1.HPからエントリー
Step2.書類選考
Step3.面接(2~3回程度)
Step4.ご内定!
—————-

実際にカムバック採用で再入社された社員さんにお話を伺いました!

ーーーカムバック採用を通じて戻ってきてくださったわけですが、どうしてまたアピリッツで働きたいと思ったのか思ったのか教えてください

他の会社で働いてみて改めて比較したときに、アピリッツであれば希望する働き方ができると考えるようになったからです!

カムバック採用があって再応募のハードルが低く、また、働いたことがある企業だからこそキャリア形成のイメージがつきやすかったからです!

入社してみないと分からないことが多い転職活動。

知っていることが多く、入社後のイメージがつきやすいのは安心感がありますよね^^

ーーー改めて感じるアピリッツの魅力はなんですか?

やりたいことやキャリアプランを相談しやすく、さらにそれを汲み取ってくれるところです。
パパママリモートなど社会的方針に関してのアップデートが多いところも魅力に感じます。

ほかの会社で働いた経験があるからこそ、比較対象ができてよりアピリッツの魅力を感じやすいのかもしれませんね!

パパママリモートに関する記事はコチラ

ーーーアピリッツにカムバック(再入社)してみた、今の率直な感想を聞かせてください

歓迎されている印象を受けました!

選考も知っている人が面接官で話しやすく、再入社時もあたたかく迎えていただけて嬉しかったです!

新しい会社に入社するときは緊張しますが、再入社だと少し負担が減りそうですよね!!

最後に

様々な経験を活かしてパワーアップしたメンバーのさらなる活躍に期待値が爆上がりです!

詳しくは採用サイトをチェックしてくださいね♪

GitHub Copilot 活用法【とあるエンジニアの実装例】

0

はじめに

AIエバンジェリストの浅田です。

生成AIの日々の進化スピードは目を見張るものがありますが、その中でも特に顕著な分野の一つがコーディング性能だと思います。

弊社では、希望する社員はGitHub Copilotを利用することができます。GitHub Copilotは、GitHub社が提供する、生成AIによるコーディング支援ツールです。

そこで、今回はGitHub Copilotの活用法を紹介したいと思います。

準備

Insiders版 Visual Studio Code のインストール

GitHub Copilotは基本的に統合開発環境(以下IDE)上で利用しますので、まずIDEを準備します。GitHub Copilotは、複数のIDEで利用することができますが、今回はAgent Modeでの利用をするので、Insiders版のVisual Studio Code(以下、VSCode)を利用します。2025年2月末時点ではGitHub CopilotのAgent ModeはPreview機能のため、Insiders版のVSCodeでのみ利用可能となっています。以下VSCodeという記述は特に断りのない限りInsiders版を指します。

(3/6に通常版のVSCodeにも、Agent Modeが追加された旨のアナウンスがありました。しかし、順次展開なのか手元の環境で通常版のVSCodeでAgent Modeを確認できなかったため、Insiders版で話を続けます)

なお、Agent Mode以外の機能は通常のVSCodeでも利用可能です。

公式サイトより、お使いのOSに合わせたものをダウンロードしインストールします。

Macの場合、デフォルトでzipでダウンロードされるので、ダブルクリックで解凍します。すると「Visual Studio Code – Insiders.app」というファイルが出てくるので、それをダブルクリックすることで、VSCodeを起動することができます。通常のVSCodeはブルーのアイコンになっていますが、Insiders版はエメラルドグリーンのアイコンになっています。必要に応じて、アプリケーションフォルダに移動することで、Launchpadからも選択できる様になります。

GitHub Copilotの設定

VSCodeを起動すると、エディタ画面上部に「Copilotアイコン」が表示されています(画像赤枠)。

アイコンをクリックすると、以下のような設定画面が開きますので、「Sign in to Use Copilot for Free」のボタンをクリックします。

GitHub アカウント選択画面になり、お使いのGitHubアカウントを選択します。

Continueをクリックすると以下のポップアップが出てくるので、「Visual Studio Code – Insiders.app を開く」をクリックします。

Copilotの画面が以下のようになれば設定完了です。

GitHub Copilotの活用例

さて、GitHub Copilot(以下、Copilot)の準備ができたので、Copilotを使うとどんなことができるのかを紹介したいと思います。

こんなストーリーを考えてみます。

あなたは新人エンジニアです。ある日の昼下がり、上司から「J-CARDというプログラムの改修を頼みたい。リポジトリはここね。今は最終ラウンドでの決着後、点数関係なくクリアになっているんだけど、100点以上じゃなければ負けというロジックに改修してほしい。勝利時のメッセージは”勝利!!”、敗北時のメッセージは”敗北…”でお願い」と依頼されます。J-CARDというプログラムについて、あなたは一切の事前知識を持っていません。

コードベースを理解する

まずは、現状を理解する必要があります。リポジトリをVSCodeで開き、Copilotアイコンを押してCopilot Chatを開きます。

開いたら、

@workspace どんなアプリケーション?

と入力欄に打ち込みます。「@workspace」と打ち込むことで、Copilotがリポジトリ全体に基づいて質問に答えてくれます。

どうやら、じゃんけんに基づいたカードゲームのようです(気づいた方もいるかと思いますが、福本伸行先生の漫画「賭博黙示録カイジ」に登場する「Eカード」をベースにした架空のアプリケーションです)。

最後の勝敗の実装内容についても確認します。

Game.svelteのnextRound関数内に、最終決着後の処理が書かれていることがわかりました。if文内に、既定のスコア以上かどうかでの分岐を入れれば良さそうです。gameStateとgameResultをどう変更すればよいかが不明なので確認します。

なるほど、6ラウンド終了時における目標スコア未到達の敗北時はgameStateをVICTORY、gameResultをLOSEにすれば良さそうです。gameLogic.jsに新しく関数を作り目標スコアに合わせて、gameState, gameResult, gameMessageを動的に変化させる方針でいきます。

コード補完

 
gameLogic.jsに関数を追加します。Copilotは、ユーザがプログラムを書く際に、コンテキスト(文脈)から続きを予想し、コードを補完してくれます。その際に、コメントを書き添えることで、よりユーザの意図に沿った補完を行ってくれます。

内容を確認し、良さそうであれば、TABキーを押してエディタに反映させます。補完は完璧ではないので、必要に応じて修正します。

コードをレビュー

Copilotによってコードをレビューしてもらうことも可能です。レビューしてもらいたい関数の記述エリアで右クリックし、コンテキストメニューからCopilot -> Review and Comment を選択することで、Copilotによるレビューを実行できます。なお、ほかにも関数を説明させたり(Explain)、エラーが出ている箇所の修正(Fix)を行うことも可能です。

実行すると、以下のように関数名のtypoを指摘してくれました。

ドキュメント(コメント)を書く

同じように関数のエリアで右クリックし、コンテキストメニューからCopilot -> Generate Docs を選択することで、コメントを生成できます。

以下のように、より詳細なコメントが生成されました。

インラインチャット

コメントが生成されましたが、英語になっているので日本語に変換しましょう。そのようなときにCopilotのインラインチャットを使って変換できます。

変換したい部分を選択し、コンテキストメニューから、Copilot -> Editor Inline Chatを選択します。

入力欄が出てくるので、”日本語にしてください”と入力します。

すると以下のように日本語に変換されました。このように、インラインチャットを使うことで、指定したエリアに対して、コードの修正などをさせることができます。

テストコードを書く

同じように関数のエリアで右クリックし、コンテキストメニューからCopilot -> Generate Tests を選択することで、テストコードを書かせることができます。

以下のようなテストコードが生成されました。

Copilot Editsでコードを編集させる

さて、finalJudge関数を作ることができたので、Game.svelteのnextRound関数内の処理を書き替えましょう。

もちろんエディタで書き換えてもいいのですが、ここではCopilot Editsを使って書き換えてみます。

Copilot Editsは、Copilotアイコンをクリックして開くエリア上部の「COPILOT EDITS」タブをクリックすることで使えます。

今回はGame.svelteを編集してもらいたいので、そのファイルを編集してほしいことをCopilotに伝えます。やり方は複数あって、入力エリア上部にあるAdd Filesのボタンをクリックして選択もできますし、エディタ上で対象のファイルをドラッグアンドドロップしても問題ありません。エディタ上で開いているファイルはデフォルトで対象になります。いずれにしても、入力エリアに対象のファイル名が出てくれば対象です。

また、ファイル上の選択したエリアだけを指定することも可能です。その場合は、ファイル上で対象エリアを選択し、右クリックのコンテキストメニューから、Copilot -> Add Selection to Copilot Editsと選択することで行えます。ファイル同様、エディタのアクティブ画面で選択しているエリアはデフォルトで対象になります。

Game.svelteおよびgameLogic.jsを選択させた状態で、Copilot Editsに「Game.svelteのnextRoundにfinalJudge関数を組み込んでください。目標点数は100点です。gameMessageにはfinalJudge関数のgameMessageをそのまま渡してください。」と入力して実行します。

すると、以下のように修正してくれます。ここには載ってないですが、別ファイルからのimport文やtargetScoreを100で初期化する処理についても書き加えられています。内容を確認し、問題なければ「Keep」ボタンを押すことで反映完了です。もし問題があれば「Undo」のボタンを押すことで元の状態に戻せます。

以上で、目的の「100点以上じゃなければ負けというロジックに改修」が完了しました。

Copilot Edits Agent Mode

実際に動作確認をすると、ちゃんと100点に満たない場合は敗北というメッセージを表示できるようになりました。

しかし、ここで問題に気づきます。画面上に目標スコアが出ていないので、プレイヤーは何点取ればクリアなのかわからず戦略が立てづらい、と。なので、目標スコアを画面に表示するように修正したいと思います。

先ほどやったのと同じようにやってもよいのですが、ここではCopilot EditsのAgent Modeを使ってみます。

Agent ModeはCopilot Editsの入力欄下部にあるモード切替プルダウンで、「Agent」に切り替えることで実行できます。冒頭でも述べたように、現在はInsiders版のVSCodeでのみ選択が可能です。出てこない場合は、VSCodeがInsiders版かご確認ください。

Agent Modeに切り替えたら、以下のように入力します。

目標スコアを画面に表示したいです。位置は持ち点の上に赤文字で表示してください。

すると、Copilotは以下のように、Editsの時のように対象のファイルを指示しなくても自律的に関連ファイルを確認しつつ、目的のコード変更を提案してくれました。Editsの時と同じように問題がなければ「Keep」をクリックすることで反映できます。

再度画面で確認してみると、目標スコアを表示できていることが確認できました。

では、最後にtestを実行して問題ないことを確認します。テスト実行もCopilotにやってもらいましょう。Agent Modeの特徴の一つは、コード生成や説明だけでなく、コマンドの実行も任せることができる点です。

入力欄に「テストを実行してください」と入れて実行すると、以下のように実際のファイルを確認して、テスト実行コマンドを提案していることがわかります。

問題がなければ「Continue」をクリックすることで、実際にターミナルでテストコマンドが実行されます。

このようにAgent Modeは

  • 自律的に必要な行動を判断し実行する
  • ターミナルでのコマンド実行を行う

といった特徴があります。

終わりに

このストーリーに出てくる架空のアプリケーション「J-CARD」は、この記事を書くにあたり作成したものですが、これもAgent Modeを用いて作成したものです。

入力したプロンプトは以下のようなものです。

Svelteで、以下の様なゲームを作ってください。

# ルール  

プレイヤーと対戦相手のCPUはそれぞれの持ち札から一枚を選び場に出します。 勝敗はじゃんけんに準じます。 つまり、グーはチョキにつよく、チョキはパーにつよく、パーはグーに強いということです。  
持ち札の組み合わせは、以下どちらかです。  

1. チョキ1枚、グー4枚
2. パー1枚、グー4枚

プレイヤーが1のセットを持っていたら、対戦相手は2のセットになります。 同じにはなりません。  

# ゲームの進行  

- ゲームは全部で6ラウンドです。
- プレイヤーは持ち点10点から始まります。
- ラウンドごとにプレイヤーは持ち点をいくら賭けるかを設定します。 必ず1点は掛けなければなりません。 
- プレイヤーと対戦相手の持ち札は 奇数ラウンドはプレイヤーがセット2、対戦相手がセット1になり、偶数ラウンドはプレイヤーがセット1、対戦相手がセット2になります。  
- ラウンドごとに、お互いに持ち札からカードを選んで場に提示し、じゃんけんのルールにあわせて勝ち負けが決まるまで続けます。 つまり、アイコの場合は5枚目まで続けますが、勝ち負けがついた時点で、そのラウンドは終了です。  
- プレイヤーが勝てばプレイヤーのセットが1の時はかけた点数の10倍、プレイヤーのセットが2の時はかけた点数の2倍の点数を得ることができます。
- プレイヤーの持ち点が0になった時点でゲームオーバです。 6ラウンドが終了した時点で合計点数を表示して終了です。

# レイアウト

- 画面の上には5枚のカードが伏せられた状態で置いてあり、 画面の下には5枚のカードが表の状態で置いてあります。  
- 画面の真ん中にはお互いの選んだカードを表示する場があります。  
- 画面右上にはプレイヤーの現在の持ち点や、現在賭けている点数を表示します。

かなりアバウトな指定ですが、Agent Modeはsvelteプロジェクトのセットアップ実行から始まって、各種のファイルを作成し、実際にプレイできるアプリケーションを数分で構築してくれました。その後、プログラムのロジックの調整、UIの調整、テストのセットアップなどを行いましたが、それも全部Agent Modeに対する指示で行ったので、自分では一切コードを書いていません。もし同じことを自分の手でやっていたら、数倍の時間はかかったでしょう。

生成AIによるコーディング支援はすごい可能性を秘めていると思います。ただし、的確にコントロールするには、利用者側にもある程度のスキルや知識が必要です。生成されたコードの確認のためにもスキルは必要ですし、生成AIに対して的確に指示を与える際にも知識が必要です。自分は普段はフロントエンドエンジニアではないのでUIの調整に手間取りましたが、本職の方ならもっと的確にもっと高クォリティのものを作れるような指示を与えることができたと思います。つまり、「利用者のスキル×生成AIの性能=出力」であり、自身の能力を磨いていくことも相変わらず重要であると感じます。

Copilotには「Custom Instructions」をはじめ、今回は紹介しきれなかった便利機能がまだまだありますし、現在開発中の機能もたくさんあります。Copilotを活用することによって、エンジニアは今までよりも効率的に頭の中のアイディアをコードに落とし込むことが可能になりますし、できることがどんどん広がっていくと思います。わくわくしますね。

以上、参考になれば幸いです。

【第二弾】社員寮が、またまたTVで放送されました!!

0

アピリッツの社員寮制度が、前回に続いて、TBS様の情報番組『ひるおび』でも取り上げていただきました!

前回の記事はこちらをクリック

株式会社共立メンテナンス様が運営する社員寮を導入しているアピリッツ。

寮によっては、食堂や大浴場など、ホテル『ドーミーイン』の運営も行っている共立メンテナンス様ならではの設備が完備されています!

アピリッツでは、初期費用を全額、家賃を半額、会社が負担しているため、

その住み心地の良さと立地、費用面など総合的な観点から、

社員寮制度は地方出身者問わず、一都三県出身の社員も幅広く利用しているんです!

栄養満点のご飯に、安心なセキュリティ。社員寮ならではの暮らしとは。

実際、社員寮を利用している社員に、お気に入りポイントを聞いてみました!

ーー社員寮のお気に入りポイントを教えてください。

朝夕の食事がついていて安くて美味しいご飯が食べれるところです。
栄養とバランスを考えた献立になっているので、一人暮らしでも健康的な食事ができています!

困った時でも、寮の管理人さんや社員同士で気軽に相談できるところが心強いです。
管理人さんは常駐してくださっているので、セキュリティ面も安心です。

社員寮に興味のある方は、ぜひ選考の際、採用担当へお問い合わせください!

26新卒の本採用がスタートしました!!

0

君の話を、ぜんぶ聴きたい。

3月1日から、アピリッツ26新卒の本選考がスタートしました^^

アピリッツは「セカイに愛されるインターネットサービスをつくり続ける」ことをミッションに掲げ

Webシステムから、Webサイト、スマホアプリの開発、スマホゲームの開発・運営を行っています。

本当に良いと思ってもらえる、そんなモノづくりに携わりたい、という方は、ぜひ選考でお話を聴かせてください!

アピリッツで具体的にどんなことができるのか、私たちからお伝えできることは全てお話ししますし、

皆さんのやりたいこと、それがアピリッツでどう実現できるのかを一緒に考えていきたいと思っています!

新卒採用の選考フローはこちら↓

—————-
Step1.マイナビ2026リクナビ2026からエントリー
Step2.会社説明動画視聴
Step3.本エントリー(書類選考)
Step4.面接(2~3回程度)
Step5.ご内定!
—————-

採用担当一同、皆さまのご応募、お待ちしております!!!

新卒採用に関する記事はこちら

他の記事もよかったら参考にしてみてくださいね♪

【2024新卒インタビュー記事】はこちらをクリック!

【内定者アルバイト】についてはこちらをクリック!

教えて!アピリッツ先輩社員の就活体験記

0

まもなく新卒採用の本選考がオープンするということで、2023年・2024年新卒の皆さんに、当時の就職活動について聞いてみました!

楽しそうに働く社員の姿が、入社の決め手

アピリッツ入社の決め手を聞いてみると、半数以上が色々な経験が積める・会社の雰囲気が決め手と回答。

先日の新卒インタビューでも、若手のうちから様々な経験が積める・会社の雰囲気に魅力を感じて入社を決めた、というメンバーもいましたよね!

ーー新卒社員の声

当時、社内見学で話した社員さん達が、楽しそうに業務していたことが、入社の決め手です。
オープンでフラットな雰囲気が印象的で、入社した今でもその印象は変わりません!

エンジニアとして色々な経験ができそうだと思い入社を決めました。
また、エンジニア以外にも様々な職種の人が在籍しているので、
この会社なら社内にいても、多様な人と関われて、色々な価値観に触れられると思いました。

社員同士の距離が近くコミュニケーションが取りやすい環境で、資格支援制度もあり、
アピリッツでなら働きながら学ぶことが意欲的にできると思いました。

先日の新卒インタビュー記事はこちらをチェック!

「社員に、潤いのある社会人生活を」

「働きながら学ぶ」というキーワードが出ましたが、アピリッツではまさにこの考えをもとに組織づくりを行っています!

テーマは、潤いのある社会人生活を送れる組織、名付けて「カンパニーの学園化」

こちらをビジョンに掲げ、社員一人一人が豊かな人生を送れるよう、文化祭や社内イベント等、全社的に様々な取り組みを行っています。

部署やセグメントの壁を越えたコミュニケーションを通じて、社内にいても自分から学びのチャンスを掴みにいく楽しさもありますよね!

第1回目の文化祭の様子はこちらをチェック!

将来自分が叶えたいキャリアをイメージして

続いて、アピリッツの先輩社員たちに、当時のアピリッツの選考についても聞いてみました!

ーーアピリッツの選考で意識していたことを教えて下さい。

5年後の自分がどうなっていたいかを意識して、そこから今できること・これから挑戦したいことを深堀りしていきました。
理想の人生設計を考えておくことで、やりたいことにしっかりと挑戦できる企業を選択することができたと思います。

自分が経験したことや実力を、ありのまま話すということを意識しました。
そのおかげで、入社してからは自分の適正が高く、かつ自分がやりたいことに近いセクションに配属してもらえました!

ーーアピリッツの逆質問ではどんなことを聞きましたか?

・活躍している社員に共通していることは何か
・どんなキャリアを築く人が多いか
・どれくらい経験を積めば、PMや テックリードになれるのか etc.

今回先輩社員に当時の就職活動を調査してみて、

将来自分のなりたい姿・挑戦したいことを言語化する、自然体で選考に臨むことを意識していたメンバーが多かったです。

皆さん、学生のうちから自分のキャリアをしっかり考えていたなんて、素晴らしい・・!

アピリッツでは、メンバーがやりたいこと・叶えたいキャリアに全力で向き合い

積極的にメンバーへチャンスやきっかけを与えていく会社です。

ぜひ選考の中で、皆さんのやりたいこと・叶えたいことを聴かせてください!

ネットで見ても分からない、アピリッツで具体的にどんなことができるのか、自分のやりたいことがアピリッツで実現できるのか等、

面接の中で、我々からお伝えできることは全てお話しします。

選考を通して、皆さんのキャリアについて、一緒に考えていきましょう!

参考:アピリッツの文化について

最後に

皆さん、アピリッツの就活体験記は、いかがでしたか?

3月からいよいよ新卒採用が本格化しますが、

今回の記事が、皆さんの就職活動の一助になれば、アピリッツメンバー一同とても嬉しいです!

そして今回の記事を読んで、アピリッツで働いてみたいと思ってくれた方がいれば、なお嬉しいです!!

皆さんのご応募お待ちしております!

【2024新卒インタビュー】入社してから1年を振り返って

0

2024年に新卒としてアピリッツに入社したWebエンジニアの2名に、入社の決め手やどんなお仕事をしてきたのか、お話を聞きました!(2025年1月取材)

プロフィール

システムサービス・ソリューション学部の米田 泰斗です。
中学生の頃から自分でゲームを作ってGitに上げるなど、小さい頃からモノづくりが好きでエンジニアを志望していました!

同じくシステムサービス・ソリューション学部の中村 夏帆です。
自分でアプリを使いやすくしたい!という思いをきっかけに、就職活動の時からWebエンジニアを志望していました!

入社の決め手は・・⁉ 色々な経験を積める会社が「アピリッツ」だった

ーーアピリッツ 入社の決め手を教えてください。

米田若いうちから色々な経験ができると感じたからです。

アピリッツが、Web・ゲーム・人材派遣と、様々な事業を展開していることを知り、

「この会社なら、色々な経験を積めそう!」と思って入社を決めました。

フレックス制度を活用して、資格勉強など自己研磨の時間を確保できる点も、

この会社なら、より自分の幅をより広げられるなと感じましたね。

中村:私は自分の姉がアピリッツで働いていたことが、入社の決め手になりました!(アピリッツの社員紹介制度について

最初からWebエンジニアに絞って企業を受けていましたが、アピリッツで働く人や職場の雰囲気を、

姉から聞いていたということもあって、この会社なら安心して働けそうと感じて入社を決めました。

髪型や服装が自由な点も、嬉しかったですね(笑)

ーー実際入社してみてどうでしたか?

米田:入社してからバックエンドの案件をメインで担当させてもらっているのですが、

バックエンドエンジニアの仕事の面白さを再確認することができました。

バックエンドはフロントエンドと違ってやり方がたくさんあるので、自分で最善策を考えるプロセスが楽しいです

中村:実際入社してみて、会社の雰囲気も、姉から聞いていたイメージや面接の雰囲気とギャップはありませんでした。

同期はもちろんですが、先輩達がお昼ご飯に誘ってくれたり、柔らかくて優しい雰囲気の人が多いです!

~1年を振り返って~今は上流工程にも挑戦中。。

ーー入社してから今までどんな案件に携わりましたか?

米田:最初はキャンペーンサイトの開発を行っていました。

今は、バックエンドエンジニアとして、プラントのDX化を推進するWebアプリケーション開発の新規機能の要件定義や、API設計・開発を行っています。

中村:入社当初は、メンターの先輩が担当していたToB向けの案件で、フロント周りの実装を行っていました。

今は、ToB向けの新規案件で、フロントエンドとして要件定義や詳細設計を一人で担当しています!

ーー入社して一番大変だったことを教えてください。

米田:今、ベトナム人のエンジニアチームと一緒に案件に携わっているのですが、

会話の中でニュアンスが上手く伝わらないことがあり、大変だなと感じます。

ただ、ChatGPTを使うなど工夫して、今では円滑にコミュニケーションを取れるようになりました!

大変なことも多いですが、一段上のレベルの業務を任せてもらえるようになり、

上司からいいフィードバックをもらうことも増えて自信にも繋がっています!

中村:今担当している案件で、要件定義や詳細設計をしているのですが、

お客様に企画して提案することが、想像以上に大変だなと感じます。。

ですが、自分が要件定義から携わった機能が無事リリースされた時は、達成感とやりがいを感じますね。

後輩と一緒に、自分達も成長していきたい

ーーお二人の今後の目標を教えてください。

米田アーキテクチャ設計もできるエンジニアになって、もっと自分の幅を広げていきたいです。

近くの先輩やメンバーとの会話の中で、最近の技術やトレンドが話題になることが多いので、

普段から積極的にインプットすることを意識して自分の知識も広げています。

中村:私は先輩にしてもらったように、周りの人をサポートできるエンジニアになりたいです。

今、内定者アルバイトに来ている子たちの朝会を行っているのですが、雑談の時間を作るなど、

後輩たちが話しやすい・質問しやすい雰囲気作りを意識しています。

ーー既に新卒の早期選考がスタートとしていますが、お二人はどんな人と一緒に働きたいですか?

米田:正解、間違い問わず、自分で考えて答えを持ってきてくれる人と一緒に働きたいです。

今後、自分が教える立場になるにあたって、どこが分からないかを明確にしてから聞いてくれる方が、その子にあったアドバイスができるからです。

せっかくなら、お互いが成長できる有意義な時間にしたいですね。

中村:私自身、話すことが好きなので、誰とでも自然体で会話ができる人が入ってきてくれると嬉しいですね。

後輩が出来たら、たくさんコミュニケーションを取って、頼りになる先輩になりたいです!

ーーお二人とも、ありがとうございました!

社員寮がTVで取り上げられました!

0

今回、株式会社共立メンテナンス様の社員寮を導入しているアピリッツが、

TBS様の報道番組『THE TIME』で取り上げられました!

今回のインタビューの様子は、

TBS様のネット記事『TBS NEWS DIG』でも確認できますので、そちらもぜひご覧ください!

そもそも社員寮って?

アピリッツでは、会社から約30分圏内のエリアに男子寮・女子寮をそれぞれ設けています。

社員寮によっては、食堂や大浴場などのスペースがあり、

新卒だけでなく、中途で入社するメンバーにとっても、

メンバーと気軽に交流ができるコミュニケーションの場として活用されています!

社員寮制度についてはこちらをチェック!

取材を終えて

今回の取材を終えてほっとしているメンバーに、感想を聞いてみました!

ーー取材を終えて、いかがですか?

緊張して、うまく喋れるか不安でしたが、
新卒から入社して今も住んでいる社員寮の魅力を発信できればと思い、一生懸命取り組ませていただきました!

ーー最後に、これから入寮される新卒社員さんへぜひメッセージをお願いします!

新卒1年目は、慣れないことや不安なことが多いかもしれませんが、
社員寮での生活を通じて、きっと多くの学びや新たな出会いを得られるはずです。
寮での時間が、皆さんにとって心地よく、充実したものになることを願っています!
そして4月に新卒の皆さんとお会いできることを楽しみにしています!!

社員寮の詳細については、ぜひ面接の際に採用担当にお聞きください!

皆様のご応募お待ちしております。

個人的おすすめチョコレート3選!

0

今年もバレンタインがやってきました!
毎年たくさんの催事が行われていて、行くだけでテンションが上がりますよね!!
今回はそんなチョコレート好き筆者のおすすめを厳選して紹介していきます♪

おすすめ① はじけるキャンディチョコレート。

まずご紹介するのはメリーチョコレートのはじけるキャンディチョコレート。です!

コーラやサイダーなど、飲み物をイメージした珍しいチョコレートです。

味のバリエーションがたくさんあり、見た目もどれも可愛くてアソート缶なんかも発売されていて

どれを買うか迷いに迷った結果、、こちらの2つにしました!

おすすめポイントとしては食べたときの食感!

はじける、と名前にもある通りザクザクパチパチ楽しいおいしい!!!

1箱378円(税込)とお手頃価格なのでばらまきチョコにもおすすめです◎

おすすめ② ラベイユ はちみつボンボンショコラ

お次はラベイユのはちみつボンボンショコラです!

はちみつをガナッシュに練りこんでおり、クリーミーでとろけるおいしさ。

はちみつ専門店から発売されているだけあり、香りも味も絶品です!

(箱もチョコレートも美しい、、!)

一つ一つ違うはちみつが使われているのですが、思った以上に一つずつ味が違う!と、食べるたびに感動しました!!!

8個入りで3,780円(税込)と少しお高めですが、はちみつ好きもそうじゃない方もぜひ食べてみてほしいチョコレートです^^

おすすめ③ セントー キャラメルアソート 16

最後はセントーのキャラメルアソートです!

塩キャラメルのチョコレートが看板商品のベルギー発ブランド、セントーのチョコレート。

今回はキャラメルアソートを購入してみました!

5種類のキャラメルのチョコレートがアソートされていますが、やっぱり一番のおすすめは塩キャラメル、、!

塩っぽさとキャラメルの甘さが絶妙なバランスで次々と食べたくなるおいしさです!

ちなみに昨年まではセントーのチョコレートが日本で買えるのはバレンタイン~ホワイトデーの時期のみだったので筆者は毎年買っていました(笑)

もちろんキャラメル系以外のガナッシュのチョコレートもおいしいのでぜひ一度食べてみてください!!!

こちらは16個入りで5,076円(税込)ですが、4個入り1,706円(税込)~あるので手も出しやすいですよ♪

アピリッツ的イベントの過ごし方

先日の懇親会時にバレンタイン限定のドーナツを用意してイベントを楽しみました!

甘いもの好きな社員が多いため、どれにするか相談しあいながらドーナツを楽しそうに選んでいた姿が印象的でした★

甘いもので幸せな気持ちに^^

個人的なおすすめ、いかがでしたか?

皆さんもおすすめチョコレートがあればぜひ教えてくださいね!!!

和田絵玲菜
CCO室の採用・広報担当。
チョコレートと紅茶が大好き。

Webアクセシビリティ勉強会②:実践編

0
Webアクセシビリティの参考書籍

本記事は、Webアクセシビリティ勉強会①:輪読会編 の続きの記事になっております。
まだ読んでいない方は、ぜひ「勉強会①:輪読会編」から読んでみてください!

今回は、火曜日に開催されている実際のサイトをチェックしてみる勉強会の様子をご紹介したいと思います!

火曜日:実際のサイトをチェックしてみる

実践編ということで、実際のサイトを元にWebアクセシビリティのチェックを行う会となっています。
実際にアクセシビリティ診断と同じような実践を学べる勉強会となっており、普段の制作にもすぐに役立つ内容になっています!
具体的にどのように進めているかというと、ウェブアクセシビリティ基盤委員会 (WAIC) が翻訳しているWCAG 2.1 解説書をもとに実際のサイトをチェックしています。

そもそもWCAGは何かというと、インターネットの技術の標準化を行っている非営利団体W3C(WorldWideWebConsortium)が作成しているWebアクセシビリティに関するガイドラインになります。
WCAGはスマートフォンの普及や技術の進化にあわせ改訂されていき、最新では2.2まで存在していますが、ここではWCAG2.1を基準にサイトのチェックをしていきたいと思います。
WCAGの説明については、デジタル庁が公開している「ウェブアクセシビリティ導入ガイドブック」で分かりやすくまとまっているので、興味がある方はぜひ確認してみてください!
参考:ウェブアクセシビリティ導入ガイドブック

ウェブアクセシビリティ導入ガイドブックのスクリーンショット
引用:ウェブアクセシビリティ導入ガイドブック|デジタル庁

前提のお話が終わったところで、実際にサイトをどのようにチェックしているか説明していきたいと思います!
今回は試しに「アピリッツのサイトTOP」を例に説明をしていきます!

株式会社アピリッツ:https://appirits.com/

サイトを見る前に、まずは達成基準 1.1.1をチェックしていきたいと思います。
達成基準 1.1.1: 非テキストコンテンツを理解する」の項目を確認すると、

利用者に提示されるすべての非テキストコンテンツには、同等の目的を果たすテキストによる代替が提供されている

といった内容が書かれています。

この内容を読み解いてみると……
「非テキストコンテンツ」はテキストではない要素なので、画像やグラフなどが該当します。
そして「同等の目的を果たすテキストによる代替が提供されている」とあるため、Webページ内の画像等のコンテンツに対して、その画像を説明する文章を何かしらの方法で提供されているべきだと理解できますね。

このように対応する事で、視覚的な情報を得る事が難しいユーザーに対しても、スクリーンリーダーの読み上げなどの代替情報を通して画像を見た時と同等の情報を伝えることが可能になります!

では、早速アピリッツのサイトTOPを見ていきましょう。
ページの最初の方に他企業様のロゴ画像がありますが、こちらはalt要素に企業名が入っており、読み上げをした時にもどのような企業ロゴが並んでいるか判断できます。
こちらの部分は問題なさそうですね!

アピリッツサイトのTOPにあるロゴのスクリーンショット

この調子で他にも画像要素がないか見ていきましょう。
次はAPPIRITS SPIRITSの記事へのリンク画像です。こちらの箇所を確認してみると、読み上げた際には何の記事へのリンクかわからなくない状態になってしまっています……

実はアピリッツのサイトは現在「JIS X 8341-3:2016 適合レベルAAに準拠するWebサイト」を目指して改修を始めた段階となります。
そのため、現在は情報を入手できないユーザーがいた場合はお問い合わせなどで人的な対応をしつつ、徐々にアクセシビリティ対応したサイトになるように改修を進めております!

アピリッツサイトのTOPにあるAppirits spiritsへのリンクのスクリーンショット

折角なので、どのようにしたら「APPIRITS SPIRITSの記事へのリンク画像」がWebアクセシビリティ的にもよくなるか確認してみましょう!

達成基準 1.1.1: 非テキストコンテンツを理解する」の項目を改めて確認してみると、ページ下の方に「十分な達成方法」というWebアクセシビリティ対応の事例集が存在します。
あくまで事例のため、この通りにしないとWebアクセシビリティ対応ができないという訳ではありませんが 、困った時にはチェックしてみましょう!

今回の場合、「状況 A: 短い説明が非テキストコンテンツと同じ目的を果たし、かつ同じ情報を提示できる場合」が当てはまりそうです。
中でも、今回は下記2つの方法が使えそうですので内容をチェックしていきましょう!

  1. H37: img 要素の alt 属性を使用する
  2. H2: 同じリソースに対して隣接する画像とテキストリンクを結合する

1つ目は、企業ロゴの部分で使われていたImg要素のalt属性を設定するという内容です。
2つ目は、img要素のalt属性は空のまま、a要素内に画像の内容を補完するテキストがある状態にする内容になります。
例えば、下記のTOPICSのようにa要素内にテキストが存在すると、スクリーンリーダーで読み上げた際に、どのような記事へのリンクなのかわかる様になります!

Webアクセシビリティの対応方法は様々ですが、「ユーザーに何を伝えたいか、分かりやすく伝えるにはどうすればいいか」を考えることを忘れずに、日々の制作に打ち込んでいければと思います!

アピリッツサイトのTOPにあるTOPICSリンクのスクリーンショット

勉強会を始めてみて

一緒に勉強会を運営してくれるメンバーも増えてきて、勉強会をより良くしていこうという動きが活発になっています。

その結果、今ではWebアクセシビリティの話題がチーム内で当たり前に出てくるようになり、お互いに「これはWebアクセシビリティ的に問題がないか?」といった相談が活発的に行われるようになりました。
今後もWebアクセシビリティ勉強会を通じて、チーム全体で理解を深めていければと思います!

誰もがアクセス可能な情報発信のために

私たちデザインチームでは、アクセシビリティ方針策定やデザイン制作、マークアップ、アクセシビリティ診断など、さまざまなサービスをご提供しています。

Webアクセシビリティ対応支援
・Webアクセシビリティを考慮した制作・開発
・Webアクセシビリティ診断
・Webアクセシビリティ対応の立案・施策作成

アクセシビリティでお困りの方、一緒にプロジェクトに参加してくれる方がいらっしゃいましたら、ぜひご相談ください!

アピリッツのWebアクセシビリティ対応支援サービス

Webアクセシビリティ勉強会①:輪読会編

0
Webアクセシビリティの参考書籍

私が所属するコミュニケーションデザイン・オファリング学部では、基本的なアクセシビリティを考慮した制作・開発が行えるように、チーム全体でアクセシビリティの勉強に取り組んでいます。

その一環として、社内slackの#club-accessibilityというチャンネルにて、日々情報共有や週2回の勉強会を実施をしています。
今回は、月曜日に開催されている輪読会の様子をご紹介したいと思います!

月曜日:輪読会の開催

輪読会では、Webアクセシビリティに関する書籍をみんなで一緒に読んでいます。
読む人は決まったメンバーではなく、その日その日でランダムに選んで読んでもらっています!

そんな輪読会ですが、1冊目の本として選んだのはデジタル庁が公開しているウェブアクセシビリティ導入ガイドブック」です。
正式には書籍ではなくPDF公開されているドキュメントになっていますが、なんと無料で公開されており、誰でも読むことが出来ます!
参考:ウェブアクセシビリティ導入ガイドブック

「Webアクセシビリティについて知らない、きちんと触れたことがない人」に向けた文章となっているため、Webアクセシビリティの勉強を初めた方におすすめの内容になっています。
専門書だと「難しい言葉がたくさんあってよく分からない…」といった状況が起こりがちですが、優しい言葉と図を使って説明されているのでとっつきやすい1冊になっています!

ウェブアクセシビリティ導入ガイドブックのスクリーンショット
引用:ウェブアクセシビリティ導入ガイドブック|デジタル庁

そして、現在2冊目に読んでいる書籍はこちらになります!
その名も「Webアプリケーションアクセシビリティ――今日から始める現場からの改善」という書籍です。
Webアクセシビリティとはという根本的な部分の説明から、事例を元にしたWebアクセシビリティに関する課題や改善方法の説明がされている書籍になっております。

公式ページには書籍サンプルがあるので、気になる方はチェックしてみてください!
参考:Webアプリケーションアクセシビリティ――今日から始める現場からの改善

輪読会というと「ただ読み上げるのかな?」と思われたりするかもしれませんが、私たちのチームでは読み上げた内容に対して気づいた事を言葉に出して発言するようにしてもらっています!
例えば「読み上げた際にボタン要素だとわかるよう、セマンティックなHTMLを書くことが求められる」といった書籍の内容を読み上げた際には、

「セマンティックなHTMLとは何だろう?」
「実際に読み上げをしていて、ボタン要素だとわからないことがあった!」

などのコメントがメンバーから発言されました。
ちなみに「セマンティックなHTML」についてですが、ここでは「HTMLタグが持つ意味を理解し適切にマークアップする」という意味で使われています。

書籍の内容がわからないというメンバーからのコメントに対しては、他メンバーから補足のコメントをしたり、次回までに調べてみるなどして、チーム全体で理解を深めていく取り組みをしています!
わからない事があってもすぐに尋ねることができるのは、チーム輪読会のメリットかもしれませんね。

次回は実践式の勉強会をご紹介!

今回は本の内容を読んでみんなで知識をインプットする勉強方法でしたが、次回は実際にサイトをチェックしてみるという、実践的な勉強会のご紹介をしたいと思います!

Webアクセシビリティについて興味がある方は、ぜひ次回もチェックしてくださいね!

誰もがアクセス可能な情報発信のために

私たちデザインチームでは、アクセシビリティ方針策定やデザイン制作、マークアップ、アクセシビリティ診断など、さまざまなサービスをご提供しています。

Webアクセシビリティ対応支援
・Webアクセシビリティを考慮した制作・開発
・Webアクセシビリティ診断
・Webアクセシビリティ対応の立案・施策作成

アクセシビリティでお困りの方、一緒にプロジェクトに参加してくれる方がいらっしゃいましたら、ぜひご相談ください!

アピリッツのWebアクセシビリティ対応支援サービス

Microsoft Clarity アテンションヒートマップ機能追加

0

こんにちは、WEBコンサルタントの斉藤です。

さて、今回はMicrosoft社のヒートマップツールClarityの新機能についてご紹介します。

Microsoft Clarityとは

改めて、通称Clarityと呼ばれるMicrosoft Clarityは、Microsoft社製の無料のヒートマップツールです。

ヒートマップとは、WEBサイト上でユーザーがボタンをクリックしたり、スクロールしたりした行動データを可視化するツールです。

WEBマーケティングにおいて、数字を見たくない、計算や分析が苦手という方にはとてもおすすめのツールです。

下図は、ヒートマップの一つ「クリックヒートマップ」と呼ばれる機能です。

クリックが多く発生している箇所が暖色、発生が少ない箇所が寒色、もしくは無色で可視化されています。

Clarity Heatmaps

Microsoft Clarityはクリックヒートマップだけでなく、下記のような機能も備わっています。

  • スクロールヒートマップ:ページのどこまでスクロールされているかを確認することができる
  • 領域ヒートマップ:どの領域が多くクリックされているかを把握できる
  • レコーディング:ユーザーの行動を全て動画で確認できる
  • AIがデータ分析してコメントをくれる機能

どれも分析するにはとても便利な機能なのですが、今回それらに加えて新機能のアテンションヒートマップが追加されました。

Microsoft Clarityのアテンションヒートマップでできることとは

アテンションヒートマップとは、ユーザーがどの部分に注視しているを可視化するヒートマップの一つです。

Microsoft社のClarity担当スタッフの記事にて、アテンションヒートマップについて情報がリリースされました。

attention heatmaps

Microsoft Clarityのアテンションヒートマップでは、

・そのエリアで平均どれくらいの時間注視されていたか

・全体の何パーセントくらいそのエリアが注視されたか

を知ることができます。

この機能をどのように使えば良いかと言いますと、例えばコンテンツマーケティングで記事を量産しているようなWEBサイトなどには有効です。

作成した記事のどの部分が注目されているのか、逆に読み飛ばされているのかが、アテンションヒートマップで一目瞭然ですので、ページ下部が注視されているようでしたら、注視されている領域に記載されているコンテンツをページ上部に配置することで、コンバージョン率や読了率などを改善できるかもしれません。

SEOや広告運用、LPO、データ活用などのWEBマーケティング支援をしている弊社としても、とても助かる機能リリースです。

皆さんもぜひご活用いただければと思います。

もし、Microsoft Clarityを導入してみたい、WEBマーケティングについて困っていることなどございましたら、弊社までお気軽にご相談ください。

 

【大調査】アピリッツメンバーの年末年始の過ごし方!

0

最大9連休とも呼ばれた今回の年末年始。
アルバイトさん含め総勢600名以上のアピリッツメンバーに、年末年始の過ごし方を調査してきました!

アピリッツメンバーのある特徴とは・・!

さーて、アピリッツメンバーは今回の年末年始をどう過ごしたんでしょう。

下のグラフを見てみると、メンバーの半数以上はお家や近場で過ごしたようです!

また、この長期休暇を利用して、帰省・旅行に出かけたメンバーもいました!

一見、インドア・アウトドアで二極化したように思える今回の結果ですが、さらに詳しく調査してみると、

全員に共通する、アピリッツメンバーのある特徴が見えてきました!

アピリッツメンバーのある特徴って、一体何だろう。。

年末年始はインプット&アウトプットじゃ~!

詳しく調査した結果、インドア・アウトドア関わらず、資格勉強や海外旅行など、

どのメンバーも年末年始はインプット・アウトプットの時間として送っていたことが分かりました!

これはつまり、アピリッツには日常的にアンテナを高くして、色々な方からキャッチアップをしているメンバーが多いということ。

資格支援制度や書籍購入制度が活用されているという現状も、好奇心の高いメンバーが多いということと関連がありそうですね!

スポーツや食事会の参加も、会社とは別のコミュニティでコミュニケーションを取ることで、新しい視点や気づきを得られる大切な場だよね!

番外編

番外編として、「私は私なりの楽しみ方で!」という個性的な過ごし方もご紹介したいと思います!

プロジェクトが上手くいくようにお参りしたってエピソード、とっても素敵!!
アイコも、アピリッツメンバーの年末年始のキャッチアップが活かされるようにお祈りしています!

皆さんは今回の年末年始どう過ごしましたか?

最後までお読みいただき、ありがとうございました!

現在、アピリッツでは、中途採用と新卒採用の早期選考を行っております。

今回の記事を読んで、「自分も無意識にインプットとアウトプットしているな!」と感じられた方、ぜひ面接で詳しくお話を聴かせてください!

ご応募お待ちしております!

新年のご挨拶

0

新年明けましておめでとうございます。

今年は巳年。アピスピ編集部一同、今年もやる気はヘビー級です!!

・・というのは置いといて。

今年も、社内イベントや社員インタビュー、技術共有など、

アピリッツの「色」をたくさん皆さんにお届けできるよう、アピスピ編集部一同精進してまいります。

皆様、今年もどうぞよろしくお願いいたします。

ちなみに次週は、総勢600名のアピメンバーに調査した、年末年始の過ごし方をご紹介します!

THEお正月な過ごし方だけではない、アピリッツメンバーならではの過ごし方に乞うご期待ください!

プレスリリースはこちら。

https://appirits.com/press_release/pr20250107.html

最近人気な記事