初めまして。融合知能デザイン研究に所属する現在B4のnotch_manです。 融合知能デザイン研究室(fusioncomp lab)は2017年に立ち上げたAI+人間+ビッグデータによる融合知能の研究を進める研究室です。
今回は融知研のエンジニアブログの記念すべき初投稿として、エンジニアリング視点で融知研の目指す方向、エンジニアブログを開設した理由などについて書いていこうと思います。
エンジニアブログを開設した理由
私たちがエンジニアブログを開設した理由は、自分達の持つ知見を外部に発信することでエンジニア界隈全体に少しでも貢献したいと考えたからです。
エンジニアブログは様々なIT企業が技術的知見を外部に発信する場として積極的に運用されています(所感)。例えば、PRTIMES様もエンジニアブログを公開しており、業務内外で得た知見を外部に共有する文化が広まりつつあります。
また、私たちにもいろいろなメリットがあります。
ブログを書くメリット
ブログを書くメリットは以下の様なものがあると考えています。
- 自分がやってきたことの記録になる
- 記事を書くことで身に着けた知識が定着する
- ポートフォリオとして活用出来る
- 研究室での開発という特異な環境の知見自体に価値がある
1つ1つ説明していきます。
自分がやってきたことの記録になる
研究では手探りでいろいろなことを進めていきます。すると、過去に自分がやったことを忘れて同じようなことを検索したり、車輪の再発明をしたりと無駄な時間が増えてしまいます。これまでの自分のログを文章としてまとめることでそれらを振り返ることが出来るようになります。
記事を書くことで身に着けた知識が定着する
例えば、開発中に何かのバグに遭遇したときに大抵の場合は手探りで解決してしまうと思います。しかし、バグが何故生まれたのか?それを防ぐことは出来ないのか?あるいは技術的な限界があるのか?それらについて深い洞察を行なうことはあまり無いと思います。 これらをブログ記事を書くことをきっかけに確かな知識として定着することが出来るようになります。何故なら、第3者に自分が直面した課題、その解決策を伝える時に原因から解決策まで完結に、明確に伝える必要があるからです。何となく弄ったらバグが治りました!なんて記事は何の知識にもならないですし、他の人に伝わる内容にはなりません。他に人に伝えるには何となくで済ましたことを1つ1つを言語化し、それを理解する必要があります。それらの活動を通じて、本物の知識を身につけることが出来ますし、ついでに文章執筆スキルも向上させられます。
ポートフォリオとして活用出来る
最近のIT関連の就活ではこれまでの実績を要求されがちです。ここで、顕著な実績(学会やコンテストでの受賞歴など)があれば問題無いですが、私たちのような研究室での開発は公に出来ない事も多いので不利になりがちです。しかし、何はどうであれ開発していることに変わりはなく、適切なプロセスを踏んでいればIT業界で働くための基礎体力は身に付いてます。エンジニアブログで執筆する内容はそのような基礎体力を証明する明確なアウトプットだと考えています。さらに、これらを地道に積み上げていき融知研のエンジニアブログが一定の知名度を獲得すれば、その記事を書いているという事実が実績にもなります。訳の分からないコンテスト・ハッカソンに参加したり奇抜なポートフォリオサイトを作るのも良いですが、ブログ記事を通じた地道なアウトプットも1つの戦略として有効です。
研究室での開発という特異な環境の知見自体に価値がある
私たちは研究室でシステム開発を行なうという稀な環境に属しています。この特異性として以下が考えられます。
- 人が2~3年スパンで総入れ替わりする
- 研究がメインであるためシステム開発は副業的感覚
- 専任のエンジニアが居らず、属人化が進む
- たまたまプログラミング得意な人が居れば何とかなるが、居ない場合はとても苦労する
- いずれの状況に関わらずサービスはユーザーに価値を提供し続ける
私が開発に関わり始めたのは2022年の5月頃ですが、前年度まで居られた優秀な方は全員卒業してしまいゼロからの再スタートになってしまいました。 幸い、前任者ほどでは無いですが私にもある程度の知見がありギリギリのところでサービスを提供し続けられています。 しかし、そちらを優先しているが故に研究室内のネットワークの管理に手が回らないなどの弊害も生じています。 これらは徐々に解消しつつあります(これについては別途記事を作成します)が、このような特殊な環境での開発知見はそれ自体一定の需要があるのではないかと考えています。 私たちはそのような知見を積極的に外部に公開することで、ソフトウェア開発全般に対して微力ながら貢献できれば良いなと考えています。
融合知能デザイン研究室のエンジニアリングの目指す方向
私たちが今後目指すのは次の3つです。
- Crowd4uのサービス維持
- NextCrowd4uのサービス提供を目指す
- 挑戦できる環境を整える
Crowd4uのサービス維持
Crowd4uは2008年頃から稼働している「世界をより良い場所にするためのマイクロタスクを実行するための非営利プラットフォーム」です。 こちらでは延べ200万回以上のマイクロタスクが実行され、多くのプロジェクトが行なわれてきました。 また、私たち融合知能デザイン研究室の研究の要に位置づけられるサービスであり今後もサービスの提供を持続していく必要があります。
ただ、現在Crowd4uのサービス維持に当たって以下の様な課題が山積しています。
- 各種バージョンが古くセキュリティ上の課題が深刻である
- モノリスなEC2を抱えている
- 前任者からの引き継ぎが十分ではない
ただ、我々はこの1年でこれらに立ち向かうための基礎体力を身につけてきました。 新機能開発とは異なり、このような課題は適切に進めていけばいつかは必ず終わる作業です。 その事実は後述するNextCrowd4u開発で証明しました。 多くの課題があり、時間もかかりますが1つ1つ確実に前に進んでいきます。
NextCrowd4uのサービス提供を目指す
NextCrowd4u(N4U)はCrowd4uの後継システムとして昨年から開発が本格化したプロジェクトになっています。 ただ、昨年から開発と言っても4月で担当が総入れ替わりし、ほぼ0の状態からスタートしたプロジェクトです。 N4Uは3月下旬から研究目的でテストリリースが始まっていました。 しかし、これまでとは全く違う言語・フレームワーク・アーキテクチャで開発していたが故にいくつものトラブルが発生しました。 これらを解消するには多くの作業が必要で、半年近く経った11月末にそれらの機能改修が終了しシステムの安定性を大きく向上させることに成功しました。
私たちは知識も経験も無い中、手探りですが課題を洗い出しそれらをタスクチケットに起票して1つ1つ進めていきました。 並行していた新機能開発も含めてですが、このプロジェクトだけで実に100以上のタスクチケットが立てられました。 これらを進めるのは途方もない作業で、負担も大きかったと思います。 しかし、私たちは途方もない量でも1つ1つ進めていけば前に進むことを実感しました。 そして、やり続ければいつかはやり遂げられることを経験しました。
今後は新機能開発やセキュリティ面の改修を進めていき、来年のリリースに向けて攻めの姿勢で開発を続けていきます。
挑戦出来る環境を創る
私は挑戦するマインドがとても大事だと思っています。 新しいサービスを作るにしても、レガシーなシステムを直すにしても多くの壁があります。 時にこの壁はとても厚く、越えるのを躊躇ってしまうレベルの物かもしれません。 しかし、誰かがこの壁を越えることに取り組まなければ私たちは前に進むことは出来ません。
これまでも、私を中心に以下のような新しいことに取り組んで来ました(これらについては追々ブログとして公開する予定です)。
- レガシーシステムのバージョンアッププロジェクト
- レイヤーアーキテクチャの採用によるAPIのリファクタリング
- ローカルと本番環境のデータベースの同期
その他にも研究室の取り組みとして以下のようなことをやりました。
- サーバー構築を組み立てから実施
- オープンラボの運営を従来と大きく変え、多くの見学者を動員
- エンジニアブログの立ち上げ
今年、行なった様々なことは主に私を中心に取り組んだ内容になります。 1つ1つの壁は厚かったですが、皆が力を合わせ助け合うことでそれらを越えることが出来ました。 この成功は私たち全員の挑戦するマインドが高まり、積極的な行動があったからこそ成功したものです。
私は、このような挑戦するマインドを持った人達を増やせれば研究も開発もさらに大きく進んでいくのではないかと考えています。 そして、私をはじめこの1年プロジェクトに関わった方々には多くの成功や失敗を経験し、たくさんのノウハウを貯めています。
今のラボにはそういった頼もしいメンバーがたくさん居るので、何かやりたい事があったら積極的に手を挙げてドンドン取り組んでいきましょう
既に多くのメンバーが自分のやりたい事を積極的に行動する雰囲気が出来つつあり、今後も多くのことに取り組んでいく予定です。 もちろん、本業は研究なのでそれを疎かにしてはいけないです。 しかし、せっかくの機会なので学生時代にしか出来ない活動をたくさんやっていきましょう。
私は、そのような雰囲気作りを今後も積極的に行なっていくつもりです。
最後に
このブログでは今後、研究や開発で詰まったことの知見共有、チーム開発のノウハウなどを積極的に発信していきます。 引き続きよろしくお願い申し上げます。