カニ・ムニダサ氏の経歴

カニ・ムニダサ氏(以下、カニ):みなさん、コードクリサリスのカニと申します。カニです。今日は、生成AIの時代、ソフトウェアエンジニアに必要なスキル、その育て方というテーマでお話しできればと思っています。よろしくお願いします。

簡単な自己紹介なんですが、大学時代に日本に来たんですね。「アメリカか日本、どっちにしようかな?」って思っていた時に、ロボティクスをやりたくて。これを言うと歳がばれちゃうんですけども、1990年代に「どっちに行こうか?」って迷っていたんですね。

僕的には、日本がトントンか、若干リードしているんじゃないかなというフィーリングでいて、兄もアメリカの大学へ行っちゃったので、「じゃあ、日本にするか」みたいな気持ちで、日本に来ました。

4年で日本の大学を出て、4年間就職して、その後、あるきっかけでアメリカのボストンに行きました。ボストンに長くいて、その後サンフランシスコのシリコンバレーにも8年間ぐらいいまして、合計すると18年ぐらいアメリカにいて、6年半前に日本に来て、コードクリサリスというソフトウェアエンジニアを育成する学校を作りました。

今はDell EMCになっちゃいましたけども、EMCだったり、Greenplumにもいて。(Greenplumの)データベースをまだ使っている方もいるとは思いますが、最終的には、Pivotal Labsに行きました。

ここが一番ちょっと重要なんですけども、Pivotal Labsはソフトウェアコンサルタントの会社で、アジャイルっていうソフトウェア開発手法、良く例に挙がる「Spotify」のフローとかをメジャーにしたって言っても過言ではないような会社です。

そこで、いろいろな会社、GoogleやXもそうだし、ソフトウェア開発のいろいろなところで悩んでいる、迷っているところに、その手法を教えて、今に至る大きい会社になるぐらいまで、いろいろ手伝いをしてきた会社です。

成功するソフトウェアを作るのに必要な4つのロール

さっそくちょっと議題に入りますと、今成功するソフトウェアを作るとしたら、まず、少なくともこの4つのロールは必要なんじゃないかなって思っています。

それは、プロダクトマネージャー、エンジニア、デザイナー、そしてやはりビジネス観点でいうとマーケティングですね、マーケター。データサイエンティストなども必要ですが、そこも含めて僕はエンジニアと呼んでいます。

例えば1回プロダクトを世の中に出して成功することはあったとしても、それは運が良かったということで、そうやってうまくいったとしても、続けられるアプリ。サクセスが次から次へと起こるようなアプリ、成功し続けられるようなアプリを作るためには、やはりこの4ロールが必要不可欠なんですね。

ユーザーを中心に、ユーザーのことを常に意識しながら、ビジネスとマーケットのほうをプロダクトマネージャーとマーケティングのほうで意識して、そこにエンジニアがいて、みんなでこう作り上げていくイメージです。

ソフトウェア開発はチームスポーツとよく言いますが、本当にソフトウェア開発は、昔のようになんか暗いところでキーボードを叩いて作っているイメージじゃなくて、明るいところで、みんなでコラボレーションしながら、コミュニケーションを取りながら作るものなので、こういったロールは非常に必要です。

エンジニアに必要なスキル

話は変わりますが、次にちょっとエンジニアに必要なスキルにスポットライトを当ててみたいんですけれども。

生成時代というのはまずちょっと置いておいて、「今エンジニアに必要になっているスキルって何なんですか?」っていうと、もちろんハードスキル(専門性の高いスキル)ですね。テクニカルスキルは、当たり前で、エンジニアなのでモノを作るためのノウハウ、知識、能力がないと駄目。これは当たり前ですね。

でも、日本で特にまだあまり注目されていないのが、パワースキルです。コミュニケーション力だったりチームワークとかそういった、共感性やリスニングスキルなど、そういったプラクティスしながら学ぶようなスキル。こういったものは、なぜかソフトウェアエンジニアというと忘れがちなエリアではあります。

「The difference between a good engineer and a great engineer is communication」っていうぐらい、いいエンジニアとすばらしいエンジニアの違いは、コミュニケーションにあるという言い方もあります。

「オートノミー」と「ドメインナレッジ」

最後に、オートノミーですね。自律性と僕は呼んでいるんですけども、それを教えてもらってないからって学校に言ったり会社に言ったりするのは、エンジニアではありませんよね。

エンジニアは、まずはわからない問題を解決したり、現在存在しないものを作ったりする人たちなので、やはり自律性を持って、わからない時は今やっていることをいったんやめてでも、自分で学んで、そのスキルを持ってきて、またトライしてみたり。そういった考える経験から、どんどんマインドセットをグロースするために行動するエンジニアにはこのスキルも必要なんですね。

僕、シリコンバレーって場所だとは思っていないんですよ。シリコンバレーは、マインドセットかなって僕は思っています。一攫千金の夢を持って、いっぱい夢を抱えた冒険心を持ったような人たちが来て、いろいろなものを掘ってやってみているような場所なんですよね。そういう意味でもマインドセットかなと思って。

サンフランシスコのシリコンバレーで、いろいろなカフェなどに行って何を話しているのか聞いてみると、新しい会社を作っていたり、社会にあるすごい問題を解決しようとしたりしていて。なんかそういった、戦争を止める方法を考えていたり、本当になんか大きい夢を持って集まっている人たちの場所なんですね。

なので、僕がサンフランシスコのシリコンバレーにいて、一番自分の大事な学びになったのは、そこだと思っています。だから逆にいうと、東京でも大阪でも札幌でも名古屋でも、シリコンバレーは作れるわけなんですね。

ちょっとズレましたけども、なのでこの3つのスキルは、ソフトウェアエンジニアには必要です。

もう1つあります。ドメインナレッジですね。ドメインというのは、自分の今の会社の、もしくは企業のビジネスの知識。例えば、トラベルの会社だったらやはりトラベルについての知識をみんないっぱい持っているんですね。その逆に、銀行でしたら金融の知識をいっぱい持っていたりします。

こういうドメインナレッジを持っていて、さらにエンジニアになれれば、やはり一番会社に貢献できるわけです。会社のボトムラインに一番貢献できる、お客さんであるユーザーに、一番価値を提供できる場所にいるわけなんです。シリコンバレーと日本のエンジニアの給料のほとんどの差が、こういう見方の違いなんです。

エンジニアは、ドメインの知識を持ってユーザーにバリューを提供する。それが会社のボトムラインに反映されるという、そういったところから差が出てきているとは思います。

生成AI時代に何を学ぶ必要があるのか

ちょっと、次のトピックに行きますと、じゃあ、生成AI時代に何を学ぶ必要があるのかというと、今日はここでは詳しく話しませんが、いくつか書きました。

やはり、ディープラーニングフレームワークをいろいろ知っておくのは大事だと思いますよ。あとはPythonですね。モデルのちょっとアジャストメントを自分でしたいと思うなら、やはりPythonが必要になってきます。

最終的に書いたのが、フルスタックエンジニア。結局、AIのモデルを自分で開発しているエンジニアでなければ、やはりその領域は、フレームワークかなんかを借りて作ると思うんですね。「TensorFlow」とか「PyTorch」とか、そういうのを使うと思うんですけども。

となると、やはりフルスタックで新しいサーバーを立ち上げて、フロントも立ち上げて、間のデータベースをつなげて、すべてができるエンジニア。そういったスキルが必要じゃないかなと思っています。

ソフトスキルの面では、先ほどの「Collaboration」だったり「Communication」だったり、「Empathy」、共感性ですね。問題の解決、「Problem Solving」「Critical Thinking」、こういった「Creativity」を、ソフトスキル、パワースキルって言っているんですけれども。

エンジニアで聞いている方がいれば、ここをどんどんどんどん強化してほしいし、エンジニアをマネジメントしているところであれば、こういうところをもっと育てられる環境やチャンス、opportunityを作ってあげてほしいですね。

生成AI時代に、あらためて言うのであれば、ソフトウェアエンジニアとしての責任感はあるところとして、バイアスとかの問題がありますね。

ここでまた、ドメインというものが非常に大事になるんですけども、ドメインを知っていれば知っているほど、AIが生み出した結果をちゃんと見分けできるエンジニアが必要になるんですね。

だから、ドメインも大事だし、そうやってバイアスやプライバシー、公平性にすごく敏感で、責任を持ってやる。そういった意識を持ったエンジニアがどんどん増えてほしいと思います。

最後に、これも当たり前のことなんですけれども、まず、マインドセットのグロース、自律性・自立性を持って動かなければ、新しいものは使わなくなってしまいますね。技術、しかもこのAIの技術は、みるみる変わっています。新しいツールがいつも生まれています。

そういったものを使いこなせるエンジニアになるために、オートノミーっていうのは非常に大事なスキルで、もしまだ使っていないようであれば、ぜひ今日からでもAIの、「ChatGPT」でもいいんですけども、どんなものか、どういう使い方ができるのかってをいろいろ実験してみてください。

「Udemy」もいろいろないい教材がありますし、使い方も学べると思いますので、そういった自律性を持って行動してほしい。そういったエンジニアが欲しいと思っています。

ちょっとまとめちゃいますと、やはりまだまだ生成AIのツールとかは、エンジニアの仕事を取るところまでは行っていないんですね。

逆に、正直に言って強い武器になる。いろいろなところで生成AIのツールを使って、なんかちょっと楽できる。そういうことができると思います。

Copilot機能とか、コーディングしながらいろいろなサジェスチョンだったりドキュメントのヘルプだったり、そういったすばらしい機能があるので、こういうのはどんどん使ってほしいです。エンジニアとしてプロダクティビティを上げるようなものなので、いっぱいどんどん使ってください。

ただ、やはり名前からも思うのは、本当に今、Copilotにしかなっていないような気がします。自分は飛行機を操縦していて、Copilotになんかいろいろ手伝ってもらえる。なんか、任せても自分がチェックする必要がある。

さっきのバイアスとかそういうものも含めて、ドメインナレッジのチェックができるようなエンジニアじゃないと、すべてAIに任すという時代には、まだたどり着いていないです。

エンジニアの育て方

それがわかったところで、育て方なんですが、まず1つ言えるのは、ドメインナレッジですね。

みなさん会社で、リスキリング、もしくはアップスキリング。特にアップスキリングすることで何が一番メリットがあるかというと、みなさんの会社に長く何年もいる方々のナレッジを活かせたら、やはりそれだけのすごい会社に貢献できる、プロダクトに貢献できるエンジニアができるわけなんですね。

1つ、まず言ってしまうと、内製。会社の中の社員を、エンジニアになりたい社員を見つけて、アップスキリングすることですね。もしくは、今のエンジニアにその会社の業務をもっとトレーニングする。あまりしたがらないところですが、大事だと思います。

あとは、教育機関。社内でやっている教育機関でも、外でやっている教育機関でも、選ぶ時に必ず、教え方、またソフトスキルとパワースキルを重視するところで、オートノミー、自律性も大事にする。そういった3要素を大事にする学校を、スクールを、プログラムをぜひ選んでもらいたいなって思います。

これは、決して上から目線ではありません。日本とアメリカにいて、よく見てきた違いなんですけども。

例えば、今日本にある教育機関は、ほとんど、ピンポイントでなんか教えたりしています。あと、レクチャーをしながらそれを教える。すごく有名なスクールでも、先生と生徒みたいな関係で、テストでなんか評価したりしています。

ロボットを作ったりするようなクラブ活動があっても、コンピューターサイエンスとかの、本当にセオリー的なところをやっているところとかが多いように僕には見えています。

選ぶなら、まったく逆ですね。まず、メタラーニングといいますが、学び方を教えるところ。あんまり答えとかを教えたり、なんか終わった後に答えを教えて、答えを見てリバースエンジニアリングをして学ぶとかではなく、本当にもう学び方を学ぶ、教えない学校と言ってもいいぐらい、そういったところを選んでください。

フォーマルよりは、やはりdecentralized。今、インターネットを見れば、いろいろなメディアがありますよね。もう「YouTube」だけでも家を作れます。なので、オンラインラーニングをするだけ。Udemyとかも、わからないものがあれば、そこで検索すれば、絶対に何かクラスがあったりします。だから、いろいろなところからフレキシブルに学んでほしい。

クラブ活動が悪いわけではないんだけど、コミュニティがクラブってなると、やはりちょっと閉鎖されたところでやるというイメージがあって。なのでなるべくコミュニティにリーチアウトしてください。

サンフランシスコにいた時のことで、今僕が一番懐かしいのは、そういったコミュニティの多さですね。いろいろなところに行っていろいろな人から学べる機会、コミュニティがあります。

もっともっと身近で実際の事業に近く、プロジェクトをやりながら学ぶっていうかたちのプロジェクトベースのプログラムは、ソフトスキルとかパワースキルとかの学びになったり、オートノミー、自律性にもつながります。

2つの事例

この話をするとすごく情熱的になっちゃうんですけども、今日はこのへんで終わりにしたいと思います。後でこのスライドでもたぶんシェアしますので、2つだけ例を書いておきました。

1つは、弊社の事例になっちゃうんですけども、BtoCの個人の育成もしていて、やはりパワースキルとかオートノミーを大事にしている会社は、これだけにさらにお金を出すんですね。それが1つのバリューの証拠になっています。

もう1つは、これはNRIさんの例なんですが、やはりオートノマスにどんどん続いて、なんか終わった後にも学ぶエンジニア組織って、コストセンターですよね。でも、エンジニアリングチームは、決してコストセンターではない。

だからこの例は、フルスタックエンジニアを育成して、彼らがまた戻って、そのマインドセットでいろいろな人に影響して、どんどんそういった方々を増やしていくっていう例なので、それもちょっとハイライトしようと思いました。

すみません、ちょっと時間をオーバーしましたが、以上です。