この記事は、Cocone Advent Calendar 2022の1日目の記事となります。
はじめに
はじめまして、ココネ株式会社 CTOの髙山です。
今回、Qiita Advent Calendarに参加ということで、ココネ株式会社としては、今回が初参加だったりします。そんな、Qiita Advent Calendar初参加1日目を、私が担当させていただきますので、何卒お手柔らかにお願いいたします。
Qiita Advent Calendarの参加は、個人的には6年ぶり2回目ということで、何やら懐かしい気持ちと、もう6年経つのかという時の流れの早さが身に染みる今日この頃です。
という事で、本来であればココネ株式会社の紹介であったり、エンジニア組織の体制、業務内容の紹介などを書いて行きたいところではありますが、ココネ株式会社の事業内容や制度に関しては、コーポレートサイトやエンジニア組織の体制、業務内容に関しては、ココネエンジニアポータルサイトを、エンジニア業務の詳細に関しては、ココネエンジニアブログやこれから記事を公開していくメンバーの記事を参照していただければと思い、今回は自分が考えていることや今後の展望だったりを、つらつらとQiita Advent Calendarらしい感じで書けていければなと思っております。
自己紹介
ところで、貴方は誰なの?
といったところだと思いますので、軽く自己紹介をさせていただきますと、この業界に入ったのは多分14、5年前で、最初は制作会社でフロントやらデザインやらサーバーやらFlashやら、よくいる所謂何でも屋をやっておりました。
IEさんには大変お世話になりましたし、労働基準法がまだ今の様な制度ではない時代なので、伸び伸びと働かせていただきました。(察して下さい。)
当初はFlashアニメーション制作が好きで、「フラッシャーになる」と意気込んではいましたが、iPhoneやAndroidの登場を機に、フロントエンドエンジニアへ意向しました。Android 1系で苦労したのも今は良い思い出。
ソーシャルゲーム業界やフィンテック業界を経て、ココネ株式会社に入社したのは5年半前くらいとなります。入社当初はフロントエンドエンジニアとして、フロント技術を用いたWebゲーム制作などを行ってきました。
その際には、ウェブ開発(フロントエンド)の室長も担当させていただきました。
これまでもマネージャー経験はあったのですが、やはりマネージメントより手を動かしていたいとの気持ちも強く、ココネ以前の会社ではスペシャリストとして従事してきたのですが、ココネではそういった形では分かれていなく、テックリードと言われる方がマネージメントも行うスタイル、プレイングマネージャー方式という事もあって流れの中でなった感じではあります。
その後、VPoE、開発本部長と担当させて頂き、今年の7月にココネ株式会社 執行役員CTOとして就任致しました。
繰り返しにはなりますが、やはり手を動かしていたいという気持ちが強く、「CTOを目指して頑張っています。」という気持ちは正直なかったわけで、どこかのCTOの方が書かれた記事で、
「プログラミング好きが高じて色々やっていたらCTOになっていた。」 といった内容の記事を拝見させていただいたのですが、まさにそんな感じではあります。
でも、手を動かせば良いのでは?と思われがちですが、就任してはっきりと分かったのはこれまでの時間の使い方と異なる点です。
分かりやすく説明しますと、これまで、現場で1日作業を行っていた時は、MTGの時間は1時間、多くても2時間だったくらいとすると、それが作業時間として確保できる時間が1時間と、逆転したタイムスケジュールになるのです。
そんな中、コンテキストスイッチ切り替えは中々慣れないもので、プログラミングで使用する思考の疲れとは異なる疲れがあります。以前、メンバーの方が「MTGを行う度にIQが低下する。」という内容の話をプレゼンしていたのですが、まさにそんな感じで1日終わったときには3くらいしか残っていないのではないかと思ったりします。
エンジニアの皆さんは、自分をゾーンに入れ作業を行うことがしばしばだと思います。
それは、静かな環境で作業することのみならず、ある程度騒がしい環境でも環境音を遮断し作業に集中している状態であり、一般的に思われている 「黒い画面見ながらカチカチやっていて話しかけにくい」 状態になっている時間の事ですが、それとは逆で、しっかり話を聞き、拾い上げないといけない時間の連続なので、今までと勝手が異なるわけです。はて、ゾーンはどこなのか状態です。
そんなメンバーの様子が気になり、ふらっと「調子どうですか?」と話しかけに行ったりするのですが、「全然分からない」といった言葉を頂いたりします。
一般的にこういう言葉を頂くと「お。大丈夫ですか」と心配しがちだと思いますが、エンジニアはエンジニア界隈で知られている 「完全に理解した曲線」 の中の良い状態に位置しています。
「完全に理解した」の前なのか、「チョットデキル」前なのかは定かではありませんが、どちらにしろ、膨大なInputの波の手前に位置し、成長段階の前状態で有ることは間違いなく、私から自然と出てきた言葉も「楽しそうですね。」でした。
一見、会話が成立していない感じではありますが、不思議とこれで成立するのがエンジニアだったりもします。
若干、話が逸れてしまったのですが、CTO就任して半年(正確には5ヶ月)経過し、感じたことのもう一つとして、これまたどこかのCTOの方がTweetされていた内容となりますが、CTOとして求められているところとして、エンジニア立場として求めるべき品質(技術的負債の許容範囲)があり、経営側からは事業計画にどれだけコミットしているかの板挟みだ。といった発言で、
そこには、技術力、プレゼンス能力、コミュニケーション能力が求められ、はたまた、財務知識,企業法務の知識も求められ、まるでスーパーマンを絵に書いた…といった内容だったのですが、まさにそれ。と共感しちゃいました。
そんな中、エンジニアの組織作り、そのために採用活動、内部のカルチャー作りとしていかないと行けなくて、今まで行って来た業務とは異なることの連続で、本当に他社のCTOの皆さんはどうやっているのか話しをしたい今日このごろです。
エンジニア組織
という感じで、自己紹介と、この半年の所感を書かせていただいたので、ここからはどういった組織形成を考え、実施来たのかをご紹介できればと思います。
まず、内部のエンジニアカルチャー作りとして担っている組織は、CTO直下であるカルチャー促進室となります。メンバーは私と新卒エンジニアが兼務として所属している組織で、ココネテックブログの編集や毎月行われる開発共有会の実施や交流を深めるためのエンジニア飲み会の実施や開発グッズ制作や開発環境整備などをメインに担当している組織となります。
これらはそれぞれ、アウトプット促進、風通しの強化、横繋がり連携強化、ブランディング、作業効率化のための支援などの目的の為に行っており、新卒エンジニアが中心となって動いてくれています。新卒エンジニアもそれぞれ、各プロダクトに所属しつつ兼務で行っていることもあって、本業務をやりつつ、時間を作って頂いて取り掛かって頂いており、感謝の限りです。ありがとうございます。mm
また、2022年下半期には、新たに2つの組織が設立されました。
Web3チーム と、 セキュリティチーム となります。
ココネグループでは、ブロックチェーンネットワークである「MOOI」をリリースしており、それを活用したアプリケーションの開発されております。今年に入り、Web3事業に大きく舵を切った経緯もあり、ココネ東京の方でもWeb3に特化したチームを。と言う流れで設立されました。
DApps開発には、フロント技術も多く利用される事もあってチーム自体はフロントエンドエンジニアが所属する組織にあります。DApps開発で活発なEthereum周辺には、多くのエコシステムが存在するので、デファクトを知り、MOOIネットワークでも活用でき、新たなエコシステムの形成を行って頂きたいと思っております。
そしてもうひとつのセキュリティチームですが、こちらの組織は明確にセキュリティという名前の付いたチームが存在しなかったわけで、別の組織が担っていたところもあり、今回明確にセキュリティチームとしたのは、これまで以上によりセキュリティに特化し、向上させたい。と言う意図があって設立した組織となります。
社内セキュリティは勿論、社内メンバーのマインド向上や、全社的なセキュリティポリシー見直し、今まで以上に強化していければと思っております。
また、基盤開発チームというチームがありますが、今年より「R&Dエンジニア」としての採用も行っております。こちらも、R&Dと名前を変更することによって、DevOps、ライブラリ、エンジンの開発などの強化、組織全体の強化を図って行きたいと考えております。
これらは、CTO就任以前からぼんやり頭の中にあって、今回を機に各メンバーに相談したところ特別反対意見などなく、同様に考えていたメンバーもいて、組織設立までスムーズに推めて頂いてメンバーの方々には感謝の限りです。ありがとうございます。
AI・Web3.0・ブロックチェーン
AI・Web3.0・ブロックチェーンと、バズワードが並んでいる気味ではありますが、こちらに関しても思うことは多々あります。
まず、AIに関してですが、90年代初頭から第三次AIブームと言われ今も続いている状況であるわけですが、もうこちらはブームでは収まらず、自然と生活に溶け込んで来ているかと思います。
直近では、Stable Diffusionの登場によって、更なる盛り上がりを見せている様子ではありますよね。
私は、第二次AIブームが来たときの事を覚えています。
某国民的RPGにAIが搭載され、これまでコマンド入力であったバトルシーンも「 ガンガンいこうぜ 」など、さくせんを設定することによって、自動で戦ってくれるものでした。
勿論、精密なAIではなく、チープなものではありますが、当時は未来を感じ非常にワクワクしたものでした。
その他にも、洗濯機などの家電製品にも投入されるようになり、「 ファジー 」といった言葉が流行った時代でもありました。AIによる「あいまい」な操作が可能といったものでしたが、性能が故に「あいまい」な操作や判断しかできなかったのを逆手に取った販売戦略だったと思っています。
ブロックチェーンに関してなのですが、私は2014年辺りに初めて仮想通貨を手にしたのですが、その頃はまだ、ブロックチェーンという言葉自体も浸透していない時期で、仮想通貨といった言葉も定義もできていない頃だったと記憶しております。勿論、日本国内の取引所も今みたいにまだ存在していなく、ブロックチェーンに関しての情報記事なども日本語ではあまりなく、海外のブログなど漁って頑張って仮想通貨を手にした思い出があります。
当時の記憶だと、リップルアカウントがカウントされており、全世界で14万人目くらいで、XRPの値段も0.6円とかの時代で、参入に関してはそこそこ早かった方ではないでしょうか。しかしながら、「もう14万人もアカウント作っているのかよ」と、海外勢の情報の早さにびっくりもし、頑張ってもアーリーアダプター止まりだな。なんて事も感じておりました。
技術も素晴らしいとは思いつつも、何より興奮したのは、従来の法定通貨などは国が発行するのですが、そうではない通貨ともなり得るものを、エンジニアの手で生み出したアイデアとコミュニティに感動したのを覚えております。
それから数年は虜となり、夢中に追いかけた時代でもありました。
VPSにマスターノードを建てて、PoSなど行っていましたが、そのトークン自体の価値が暴落し電子クズとなってしまったり、HYIPなどの詐欺が横行したり、取引所がなくなったり、高騰したり、暴落したり….と本当に本当に本当に色々なことがあり、当初は、ブロックチェーン業界 で働きたい。といった気持ちも抱いてはおりましたが、いつしか熱も冷め若干距離を置いていきました。ただ、それは、高熱だったのが平熱になったのであって、より冷静に俯瞰的に今の流れを見ているのかなと思ってはいます。
そういった事もあって、フィンテック業界とも離れ、今後は業務でブロックチェーンや仮想通貨に関わることはなさそうだなと思っていた矢先、弊社でMOOIネットワークの開発、トークン発行、Web3.0に注力していきます。といった流れになったので本当に面白い会社だなと思いました。でも弊社のみならず、業界全体的にそちらに参入していく流れを感じておりまして、気がついたら自然とWeb3.0のサービスも生まれていて利用されていくのだろうとは思います。
弊社の会長の話で印象的だったのは、今となっては一人一つは持っているのが当たり前になっているメールアドレスさえも、導入当初は「誰がもつの?」と言われている時代があった。と。
ブロックチェーンウォレットもアバターも持つのが当たり前の時代が来る。メールアドレスで認証しているサービスもアバターで認証する時代が来る。と、(かなり端的に書いてしまいましたが)妙に納得できる内容でした。
AIも何度もブームが来て、生活の一部として溶け込んで来ているし、ブロックチェーンも色々とありますが、着実とウォレットの数は増えて来ていると思うし、もう分からないくらいに技術の進化のスピードは増していて、何がどうなるか正直分からない時代に入って来ていると思います。
分からないを分からないままにしておくことは良くなく、分からないながらも参入していく大事さはあると思います。参入時期よっては物事も変化し、成功していたチャンスも逃す結果になりかねないので、何事も挑戦して行くことが大事だと思っております。
ただ、引っかるところとして、ブロックチェーンやWeb3.0などの本来の思想は、非中央集権であり、パブリックであり、誰もが参入できる。といった思想がある中、これらを企業や政府がやっていくとなると、どうも本末転倒なところがあり、どうやって活用し、有用性のあるものを提供できるのかが非常に悩ましい状況だと思います。
個人的にもブロックチェーンを用いたサービス開発やプロジェクトを考えたりはするのですが、どうしてもそこにはマネタイズもないし、エコシステムを利用する方々に収益が得れるシステムとなってしまいます。実際に制作したいプロジェクトでもありますので、近い将来時間ができれば個人的開発ができればと思っていたりします。
今後のエンジニア組織
来年度、ココネのエンジニア体制をどうしていきたいかというところで、お話できそうなところの一つとして、 DevOpsの強化 を考えております。
弊社のサービスは開発して終わり。ということはほぼないので、保守・運用ということが必ずセットになってきます。よって、言うまでもなくDevOpsのためのツールの導入であったり、エンジニア各々でマインドセットは持っていたりとするのですが、今より更に強化していく為、 SRE(Site Reliability Engineering) を導入できないかと考えています。
外部の方とお話している中で、こういったお話とすると「ココネさんでは初めて聞きました」などのお答え頂くのですが、現状、組織、チームとしては構成されていないのですが、弊社ではインフラチームや、サーバーチームが担っている範囲となります。これを明確に、SREチームとして組織として設けるのか、マインドを強化すればカバーできる問題なのかは、メンバーと引き続き議論は必要だと思っております。
なぜこういう事を考えるかですが、ひとつとして属人化軽減といったところがあります。
属人化問題は、プロジェクトが大きくなって、チームメンバーも多い状態ではあまり発生しない問題だと思っていて、最も属人化が発生しやすいフェーズは、新規プロジェクト立ち上げの為、少人数で開発を進めて行くフェーズだと思っております。
リリース優先で後日対応と言っているものは、その後暫定ソリューションとなってしまい、プロジェクトが大きくなった時には、手の付けられない技術負債となってしまうケースもしばしばだと思います。
こういったフェーズから、SREチームないし、SETエンジニア、TESTエンジニアなどのエンジニアがプロジェクトに参画していくことによって、軽減できないかと考えてはいます。これらの組織は基本、開発部門の横断組織となってしまうのですが、横断的に関わるとなるとどうしても断片的な関わりしかできないところもあるので、内部の深いところも扱えるようにプロジェクトの初期フェーズから関わって行くことが大事だと思っております。
どちらにしろ、自分の判断や開発部門の判断のみで決められる事柄でもなく、全社的体制やマインドに関わってくる事柄なので、すぐに答えは出せず今後もじっくり議論していかないといけない事柄と思っております。
今後の技術の展望
という事で、つらつらと自分の考えていること、今年行ってきたことなどを書かせて頂きましたが、最後に今後の技術の展望について自分が思っていることなどを書かせていただこうと思っております。
AI・Web3.0・ブロックチェーンの項目でも書かせて頂いたのですが、技術革新のスピードは加速度を増しているのを感じており、気がついたら、インフラの一部になっていた。と言うことも稀ではなくなってきおります。そんな中、エンジニアとしてWEB技術やクライアント技術やWeb3.0、IT業界全体の流れ、本日より新しく追加された武器、ステージ、ビックランの攻略と、本当にInputしないといけない事柄も多く、必死に追いかけて行かないとついていけなくなるのではないかと危機感すら抱いております。
そういえば、(思い出した様に) GoogleMapの登場の時も非常に感動を覚えた記憶があります。
昔は(再び老害感)車で旅行に行こうとすると、隣に彼女を載せてマップル片手にナビなどしてもらう訳ですが、地図を上手く見れずナビを間違ってしまい喧嘩になってしまった。。なんて事も多々あった訳で、(あれないですか。) それがカーナビに進化し、今はGoogleMapが手のひらにある訳で、そんな無駄な喧嘩もしなくて良い時代なんですよ(自分だけか。。)
私は、スマホはiPhoneを使用しているのですが、最初に購入し手にしたのも国内初の発売日当日で、当時はまだ福岡の田舎の方に住んでいたこともあってか、自分の周りはまだガラケーの方がほとんどで、iPhoneを所持しているのは自分くらいでした。その時期はまだ日本のAppStoreすらもなく、アプリもほぼ全て海外の作品でもありました。
そんな中、一番扱っていたアプリはGoogleMapではないかというぐらい、ずっとGoogleMapを触っていた記憶があります。
手元で地図が見れるのも勿論素晴らしいと感じていたのですが、スライドするとポンポンとピンが立っていく姿に興奮した覚えがあります。
そういったのも気がつけば当たり前となっていくのですね。。
と。また、話が若干逸れましたので、本題にもどしまして、
今後注目していきたいと思う技術ですが、色々ある中の一つとして「WebAssembly」があります。
これは、今始まった話ではなく、5、6年前から注目はしていたのですが、2019年12月にW3C勧告となり、これからWebAssemblyを活用した色んなサービスやプロジェクトが出て来るかと思いますよ。と、ココネの全エンジニア向け社内カンファレンス「Cocone DevDay」でお話させて頂いた内容でもありました。
なぜ、そこについてお話したかというと、弊社のクライアントアプリではUnityを用いて開発されているのですが、そういったクライアントアプリを開発しているサービスとの親和性が高く活用するシーンも多いのではないかと思ったからでした。
というのも、従来のWebサービスなどを提供しているシステムに関しては、やはり大きな恩恵を受けることは少なく、ネイティブアプリをWeb展開したいと思ったときなどその恩恵は大きいかと思います。
こういった、ネイティブとWebの垣根がなくなる時代も来るのではないか。と言った内容のお話させていただいたのですが、実際、直近では色んなサービスやプロジェクトに活用されてきている様子が伺え、これからも増加の傾向ではないかと思います。ただ、全てがメリットづくしといった訳でもなく、起動が遅いとか、ウェブにUPされるのでリバースエンジニアリングの対象にもなり得るとの、デメリットもあるかと思います。とはいえ、今後も注目していきたい技術の一つではあります。
もう一つは、クロスプラットフォーム開発のフレームワークでもある「Flutter」です。
こちらも個人的には、2、3年前からクロスプラットフォーム開発はFlutterだよね。と思ってはいたのですが、React Nativeと比較して明確な優位性が見当たらず人に進めるまでには至らなかったのですが、React Nativeより、いち早く 2021年3月に公開した新バージョン「Flutter2」で、Windows、macOS、LinuxのGUIアプリ開発も行える様になって私の心は加速しました。
というのも、GUIアプリ開発するとなると、tkinter、QT、Fyne、Iced、Electron、Tauri etc…と色々あると思うのですが、各々メリットデメリットあり、使い込むにはうーん。といった状況ではありました。
そんななか、Flutter2でWindows、macOS、LinuxのGUIアプリ開発も可能となると、一つのフレームワークでGUIも開発でき、iOS、Andoroidもビルドできるとなると一石二鳥。三鳥。
個人的には、MCUのGUIの開発も行える様になれば最高だなと思っております。
開発もコミュニティも活発で、直近でかなり盛り上がってきている状況ではないでしょうか。
と言った感じで、最も身近な技術で気になるところはそんな感じになります。
注目していきたい技術と言うよりかは、直近で活用していくんだろうなと思った技術ではありますね。
その他、大きな技術ブレイクスルーが起き、パラダイム・シフトするタイミングは言うまでもないかと思いますが、量子コンピュータの一般化だと思います。ですが、有識者の話を伺う感じ、実用化はまだまだ先でこの2、3年で使用できるレベルには達しないとの事で、 10年後先も分からないといったお話ではありますが、その時代のコンピュータに触れることができる日まで、ワクワクして毎日を過ごして行こうと思っております。
さいごに
これからもココネエンジニアは、協力しながら情報共有しつつ成長しあっていこうと思っておりますので、ご興味ある方は ぜひこちらの採用特設サイトをご覧ください!
文字だらけになってしまい華のない感じになったので、最近購入したSTM32が良い感じに撮れましたので掲載させていただきます。
明日から、ココネエンジニア陣の記事が続きますので宜しくお願いします!
明日は、フロントエンドエンジニアの@y_ishiiさんとなります。