ラクスル印刷事業本部 CTO室の平島です。
もうすぐ年の瀬ですね。
今年を振り返ると、やはりAIによる変化は凄まじいものがありました。
最近は、コーディングのほとんどをAIが担い、人間はその前後の工程に集中する、そんなケースがかなり増えてきました。
これからは、いま人間が行っている作業も、もっとAIに置き換わっていくでしょう。
正直なところ、去年の私はこの変化を悲観していました。
プログラミングの楽しさを奪われ、超効率化に疲弊するのではないか。
「怠惰」「短気」「傲慢」を美徳としてきた私たちは、真逆の「勤勉」「忍耐」「謙虚」なAIに飲み込まれてしまうのではないかと。
しかし蓋を開けてみれば、この「真逆の性格」こそが、とても心地の良い開発体験を生むこともたくさんありました!
怠惰な私たちが思いついたアイデアを、勤勉なAIが形にする。
この凸凹コンビが結成されたことで、私たちの「作りたい」というエンジニアの性は、かつてないスピードで満たされるようになりました。
怠惰で短気な私は、業務中にいろんなことが気になってしまいます。
今回は、そんなときに相棒であるAIと共に生み出した「愛すべき非プロダクトコード」たちを紹介したいと思います!
Googleカレンダーに会議室マップを表示! Chrome拡張機能「ツドエル」
今年の2月に、ラクスルは広いオフィスへ移転しました。
新しいオフィスってワクワクしますよね!
でも、新しいオフィスは1フロア貸し切り。
自分がいまどの方角にいて、次の会議室はどこなのか...MTG遅刻常習犯になる予感しかありませんでした。
みんな同じ思いのはず。ということで、Googleカレンダーに会議室マップを表示できるChrome拡張機能を作りました。

カード内のul[aria-label="会議室とリソース"]から会議室名を取得し、画像などの会議室情報を差し込んでいます。
注意点として、言語設定や予定参加者の権限設定の違いで会議室名の取得元の調整が必要となります。
実装には、Chrome拡張開発をモダンに行えるフレームワークPlasmoを使いました。ちなみに、別のフレームワークWXTも使い勝手が良くおすすめです。 docs.plasmo.com wxt.dev
最初は正攻法である「Google Workspace Add-on」でも作ってみましたが、サイドパネル以外へのUI表示など、自由度が低かったため不採用としました。
社内配布はChrome Web Storeを通さず、Notionでzipファイルを共有して「デベロッパーモードで入れてね!」という運用にしています。
開発にかかった時間は、スキマ時間あわせて合計8時間ほど。(いまならもっと早く作れそう。)
移転直前の思いつきでしたが、AIのサポートにより爆速で完成し、移転初日に間に合わせることができました。
「Chrome拡張ってどう作るの?」という初歩的な部分からでしたが、AIに聞きながら新しい技術をサクッと試して、実用的なものを作る。 この体験自体がとても楽しかったです。
後日談として、こちらの「ツドエル」はとても多くの方に使っていただき、2月の月間社長賞にも選ばれました!(表彰金と美味しい豪華景品もいただきました😋)
こういった、通常の仕事以外のちょっとした改善も称え合い、感謝しあえる文化は、エンジニアにとってすごく気持ちのいい環境だなと感じます。
HackWeek で AI ロボット作成!
ラクスルでは、毎年9月頃に、HackWeekという名の一週間ハッカソンを開催しています。
私たちのチームでは、AIを用いたロボットの作成に挑戦しました。
本来ロボットは、ROS (Robot Operating System) で制御されることが多いですが、これをすべてAIに置き換えたらどうなるか?というプロジェクトです。
電子工作やロボット作成は全くの初心者のメンバーもいる中で、初日はアキバへ買い出しに行く所から、ソフト・ハードの開発合わせて1週間で作成しました。
目(カメラ)・耳(マイク)を用いて周りの状況を認識し、
声(スピーカー)・表情(ディスプレイ)で人間とコミュニケーションを取り、
腕(ロボットアーム)・足(タイヤ)でアクションを起こす。
これら各パーツをMCPサーバーとして用意し、Cursor Agent にそれらを制御させました。
その名もRORA(Robot of RAKSUL)!
「ダンスを踊って」と指示をするだけで、動作はゆっくりですが、腕や足を動かす姿はとても愛着が湧きました。
腕の各関節や左右のタイヤなど、どれも個別の制御をMCPで用意していたのですが、それらをうまく動かして宣言通りの動きをしているのは地味にすごいことだと思います。
ハッカソン期間内に実現はできませんでしたが、カメラによる位置推定などにも挑戦しました。
例えば、オフィス内で仕事をしているときに、デスクまでお菓子やコーヒーを持ってきてくれるなどできると素敵ですよね!
昨今は、世間的にもフィジカルAIが盛り上がり始めていますが、これまでソフトウェアの世界に囚われていたAIが現実世界とインタラクティブになったとき、さらなる進化があるのではないかとワクワクしています。
AIの現在地の理解と未来の解像度が上がった、とても学びのあるプロジェクトでした。
社内プログラミングコンテストのビジュアライザー
ラクスルでは毎年、新卒入社の内定式にて内定者同期の交流のためのイベント(グループワーク)をいくつか用意しています。
エンジニアメンバーには、例年、チーム対抗のコードゴルフに挑戦していただいていたのですが、今年はAIの進歩により、より難しい問題を用意することとなりました。
今回は、ラクスルの印刷システムの内部で行われている「最適化問題」を題材に、それを模したヒューリスティックプログラミングコンテストを開催しました!
問題自体は事業部CTOの岸野さんが作成したものを利用しました。
内容は「サイズの異なる大量の印刷注文を、大きな印刷用紙の中にどう配置すれば、無駄なくコストを最小にできるか?」という、いわゆるパッキング問題(面付け)です。
私は、内定者の皆さんがより本質的なアルゴリズム改善に集中できるよう、配置結果を可視化するビジュアライザーを作成しました。

ヒューリスティックコンテストにおいて、「今のアルゴリズムで、実際にどう紙が配置されているのか」を目で見てデバッグできる環境は非常に重要です。
数値のスコアだけでは、「どこに改善余地があるか」という改善のヒントが得られないからです。
しかし、たった1日のイベントのために、座標計算が必要な描画ロジックを一から作り込むのは、通常業務の合間に行うにはあまりにコストが高い作業でした。
こういった作業こそ、AIの出番です。
ざっくりと、問題文や回答例を渡して「ヒューリスティックプログラミングコンテストのビジュアライザを作って」といった指示を投げるだけで、面倒な描画処理や入力処理など、すべて動く状態のものが作成できました。
人間は、「どう見せたら直感的に改善余地がわかるか?」というUI/UXの設計に集中し、実装の泥臭い部分はAIに任せる。
この分担のおかげで、準備期間が短くてもリッチな環境を用意することができました。
内定者の皆さんが、ビジュアライザーを見ながら黙々と改善を続けたりスコアを見て盛り上がったりしている姿を見て、「あぁ、やっぱり手を抜かずに作ってよかったな」 と出題者冥利に尽きる思いでした。
おわりに:AIは「エンジニアの性」を加速させる燃料
振り返ってみると、この1年間で書いたこれらのコードは、AIがいなければ「めんどくさい」「時間がない」という理由で、完成まで作り切ることは難しかったかもしれません。
仮に作るとしても、どれもプロダクトの売上に直結するわけではない、いわゆる「非プロダクトコード」のため、どうしても後回しになってしまいがちです。
しかし、こうした「自分の手で課題を解決したい」「もっと面白くしたい」という純粋な衝動(エンジニアの性)を、AIは一切の否定もせず、圧倒的なスピードで形にしてくれました。
「怠惰」で「短気」な私たちが、面倒な実装を「勤勉」なAIに任せることで、クリエイティビティを解放する。 この関係性が確立された今、エンジニアにとってこれほど楽しい時代はないんじゃないか、と本気で思っています。
来年もまた、AIと一緒に、業務・非業務を問わずたくさん書いていこうと思います!
最後まで読んでいただきありがとうございました!!