目次
それでは早速、1問目から。
平野:R2とある通りこれはセカンドバージョンなんですね。で、最初は…最初グラフィック考えてた?
北原:考えてないね。
平野: 最初からこのつなぐというところの、 開発をとにかく簡単にしたくて、そこでJavaScriptに北原が目を付けたんですよね。JavaScriptは今はWebサイトなどでも使われていて、かなり幅広く、それこそWebマスターみたいな人でも使えますよね。似たような名前の言語でJavaがありますが、Javaになると非常に高度なので、エンジニアの人しか使えないので、そこを簡単なロジックで書けるものを作りたかったんです。なので、当時はJavaScriptで作ったものをプラグインすると、いろいろなつなぐソフトに化けるものを作りました。アリバ用とかロゼッタネット用とか。それがR1なんです。そして、それをやっていくうちにJavaScriptでもまだ誰でも使えるわけではないので、「グラフィカルランゲージ」というのを考えて、もう誰でも作れる、かつ誰でも見てわかるものを作ろうとなりました。見てわかるって結構大事で、コーディングが書いてあってもわからないじゃないですか。書いた人しかわからないものではなく、フローチャートのように他の人でも見てわかる。エンジニアじゃなくても見てわかるものとして、グラフィカルランゲージを考えたのを形にしたのが、最初のバージョンR2です。
データを目で見てつなぎ方をわかりやすくする?
平野:ロジックをですね。データは見えないので、どういう処理をするかということをやったのがR2ですね。そして、その時考えたものを20年も使ってきてるんですよね。
そのあたりがノーコード/ノン・コーディングというところにつながってきていると思いますが、次の質問….
この当時でノンコーディングってまだかなり先進的だったと思いますが。
平野:はい、そうですね。やっぱり当時から日本ではエンジニア不足で、何万人も足りないと言われていて、その状況は今も変わらないですね。その何万人足りないという人たちがいる一方で、インターネットの発展により、システムは どんどん増えていて、これって多分ずっと解決しないだろうなというところで、エンジニアじゃない人でも作れる、それからそれを理解できる、そして変更できる。こういったようなところができるようにしたいというのが一つです。もう一つ当時から言っているのは、属人性の排除なんですね。つまり特定の人、つまり書いた人しかそれを分からないとか、修正することが難しいところを排除して、誰でも見て、誰でも変更できる。特につなぐところは相手(つなぎ先)のある話なので、変更が激しいんですよね。自分のところはシステムが同じでも、相手のシステムが変わると変更しないといけないですし、そこの部分はとても考えてましたね。
北原:そうですね、一番大きかったのはプラットフォームですね。この場合のプラットフォームはOSのことですが、当時もWindows、Mac、Linux、Solarisなどいろいろありました。できるだけ多くのプラットフォームをサポートしないとみんなに使ってもらえないという部分があったので、全て使える言語ということで、一番最初にJavaScriptで作ってた頃は、もともとC++とJavaScriptエンジンを使ってたんですが、その後結局やっぱりどのプラットフォームでも動かなきゃならない、そうじゃないとやっぱりみんなに見てもらえないっていうのもあって、それでJavaを採用しました。ただ当時Javaのライブラリも十分揃っていたわけではなく、今みたいに 豊富なライブラリがなかったので、必要な部分は全部自分たちで用意しなければないというところがやっぱり一番大変でしたね。
平野:やっぱり何で開発するかとか、どんな技術を使うかは、とても重要で、その時一番流行ってるものというような選び方ももちろんあるんですけど、ただうちの場合はSIではなく製品なので、納めて終わりではなく、ずっと売り続けると考えると、途中で言語のサポートが終了したりするともう大変なことになってしまうので、長年使い続けられそうな技術や言語を採用する必要があったんです。なので、その時の見極めって大変だったろうなと思いますし、北原はじめ開発チームがJavaを選んだというのも、この20年間続けられてきた、ひとつの理由ですね。
北原:社内で言えば、一番最初にR1からR2に移る時に、R2の原型を説明しなきゃならないんですけど、ホワイトボードに四角とか丸とかを書いて、それを線でつないだだけの絵を僕が書いて、それをみんなに説明しました。我々のエンジニア自体がかなりプログラムを書けるメンバーだったから、「ロジックをすごく簡単に書く」ことに対して本当にできるのかっていう反応が結構あって。その時ホワイトボードに書いたのって、別に絵を僕がちゃんと書けるわけではないので、丸とか四角とか三角とか、それが一個一個が全部コンポーネントのアイコンと見立てていたので、そういう意味ではみんなに理解をしてもらうハードルは結構高かったですね。さらに実際の開発ってやっぱり難しくて、異常系の処理だとか例外処理だとか、そういうところまで含めて全部グラフィカルに書くことができるのかっていうことに関して、やっぱり技術的な見地からも開発のメンバーもそのへんは大変さっていうのを感じたんじゃないかなと思いますね。
「無理」とか「難しい」とかっていうことを言われはしなかったですか?
北原:大変だっていうよりは、やっぱりみんな初めてのものだったので、どう書いていいかっていうのが難しかったようですね。掲げた目標が僕としては、1行も基本的なプログラミング言語の文字列を使わない、ということを最初に縛りで入れたので、そうすると何でもかんでも全部アイコンでつないでやるっていう風になっちゃうんで、「本当にそんなのでできるの?」という気持ちはあったと思います。ただ、やっぱりそこまで高いハードルにしたので、それをみんなで解決していこうという風に流れができました。なので、今みたいなほとんど全てのことを、例えば文字列を2つつなぐところでもアイコンを使う、みたいな。普通だったらExcelでただ関数1個入れればいいだけじゃないですか。それをわざわざアイコンにする理由があるのかっていう世界まで突き詰めて作ったので、逆に文字を本当に書かない。それまでに世の中にあったシステムってアイコンをクリックしたらテキストエディターが開いてコードを書くという世界だったので、それをもう絶対やらないっていうルールの縛りがあって、そこがハードルとして一番高かったので、技術者もどうしていったらいいのかっていうことをすごく考えたと思います。
平野:この縛りの決定がね、素晴らしかったんだと思うんですよ。だからこそ20年続いている。当時から流れを綺麗にする、整理するためのグラフィカルなものは出始めてたんですよね。フローチャートがあって、クリックすると何かプログラムが書けるという。VBとかもそうだったかな。でもそうではなくて、1行も書かないっていうことがはっきりしているし、だからこそ今のノーコードにもつながるんですよね。
今ノーコードとローコードって結構並べて言われるんですけど、大きく違う。僕らは本当にこれは並べて欲しくないですね(笑)。ローコードっていうのは、少ないだけでゼロではない。だからエンジニアしか使えないんです。ノーコードっていうのは1行も書かないから、本当に使う人が広がるんですよ。全然違う世界観がそこにあるんですけどね。その時のやっぱりこの決定が今を作ってますね。
平野:一つは普通のストレートな反応として、「そんなの動くのか?」と。おもちゃっぽいわけですよ。だって絵を書いたら動くわけですから。で、ある程度ちゃんと動くことがわかると、次の反応はですね、「こんなの出してもらっちゃ困る」でしたね。なぜなら、簡単に早くプログラムを書けてしまうので、そうすると当時、まあ今もですけど、システムインテグレーターの方々って人月で売上計上されますから、30人月がかかるものが、例えば3人月とかで、10分の1でできたりするわけですね。そうすると売り上げも10分の1になってしまうわけですから、こんなの出してもらっちゃ困るっていうのと、あとは「表向きには言わないで自分たちだけに供給してくれ」、と(笑)。まあこんな面白い反応がありましたね。
インパクトがそれだけ大きかったということですかね?
平野:わかった人にはそうですよね。わからない人は「おもちゃだから、大したことはできないだろう」という感覚でしたけどね。
子供の使う学習ソフトみたいな感じに取られたと。
平野:そうですね(笑)。
北原:今でこそ本当にコードを書くことの量というのがみんな負担になってるので、ローコード/ノーコードっていう世界が受け入れられていますけど、さすがに20年前だとそのプログラムを多く書くことで仕事をされてる方もたくさんいらっしゃったので、そことどうやって一緒にやっていかれるのかという難しさはありましたね。
平野:そうですよね。当時だからチャージの方法としてライン数っていうのがあって、何行書いてなんぼ、みたいな。しかし、ノーコードはグラフィカルなので行がない(笑)。どうチャージしていいのかわからないということもあったのかもしれないですね。
平野:これはね、何だろう…。プロダクトそのもので言うと、何回か根本的なバージョンアップはしてますけどね。
それはどのあたりです?
北原:R2を出した後にR3を出してるんですけど、R3を出した時にやっぱりコードを 全面的に書き換えたので、結局R1のコードとR2のコードとR3のコードってほぼ一から書き直してるんですね。なので3つとも全く違うコードべースの世界なので、そういう意味ではR3を出した時に、かなり異常系の処理だとか例外処理だとか、プログラムとしてはちょっと難しい処理を入れましたね。正常系の処理だけ書くのであればすごい簡単なんですけど、やっぱり異常系の処理を書こうとすると色々なエラー処理みたいなのを書かなきゃならないので、そういうところがちゃんと作れるようになったのはやっぱりR3からなので、そこがターニングポイントですかね。そこで、まあこのくらい書ければここの部分はできるよね、っていうのが認知されたんじゃないかなとは思います。
平野:プログラムを全面的に書き直すことを専門用語で「リファクタリング」って言うんですけど、うちの一つの特徴として、特に日本のソフト会社と違うポイントとして、リファクタリングを厭わないということがあります。やっぱり、ある程度プロダクトができてるとそれを最大限生かしたいから、改良→改良→改良を続けるんですけど、今北原が言ったように、全部捨てて書き直すっていうのをやったっていうところに意味があるんですよね(笑)。
北原:全部捨てるっていうのは…汗。ゼロからやったってことですね(笑)。
平野:もちろんノウハウとかは残ってますけどね。
北原:やっぱりやり方がある程度はっきりすると、どこを削ってどこを残すかっていうのがはっきりするので、その段階でリファクタリングするとコードも綺麗になるし、プログラム自体も小さくなって性能も良くなったりするので、やっぱりやった方がいいんですけど、これは結構精神的な苦痛を伴いますよね(笑)。やっぱりそれまで動いてたものが全く動かなくなるので、それをみんなが乗り越えるところがやっぱり一番大変で、それを乗り越えたのでR3ができて、そこからちゃんと動けるようになったと思います。
その際ハンドリングも結構苦労されましたか?
北原:まあ…そうですね(笑)。でも、個々のメンバーみんなちゃんと努力して、フォーカスしてるエリアをしっかり決めてやっていたので、僕の方で細かな指示は全然しなかったですね。ただ、こういうことだけは間違えずにやってねっていう何個かポイントだけ話ししてやるっていう感じでしたね。
平野:これはですね、もう一番最初、会社を作った時から21世紀を代表する会社にしたいっていうのがあったんですよね。創業がもう20世紀の本当に終わりかけの98年なので、21世紀を代表する会社にしようって二人で言ってて、その時に考えたのが、21世紀の社会や組織は自律・分散・協調型になるので、そのためには「つなぐ」ということがとても大事で、だからこそ一番最初のWarpが出る前はXMLというつなぐ技術で、本当に一番基盤のところから始めて、そしてR1ですね。R1が出て、これも「つなぐ」ですが、ロゼッタネットとかアルバとかがあり、そしてR2が出てWarpが出たんです。ずーっとその自律・分散・協調の社会を作るために貢献をする、その社会を作っていくためのソフトウェアというところを続けてきました。まだまだ21世紀って22年しか経ってないので、まだ道半ばですけど、Warpをはじめとして今4製品ありますけど、それぞれの製品をもっともっと進化させていきたいですね。
北原: 結局つないでいかなきゃいけないのは残されていくデータなので、一番最初に会社を立てた時に、皆さんExcelとかを使っていて、他の製品、例えばExcelのデータを持っていきたいといった時に、なかなかデータ変換だとか、とにかくデータをどうやって次のところに持っていくかっていうところ。そういう意味ではどんどん何らかの形でデータを変換していく世界っていうのがあります。これをつなぐ、データをつないでいくことが未来につながるっていう部分があったので、Warpの根本は「今ある資産であるデータを未来にどうやってつないでいくか」です。そして、そこをずっとやっていくっていうのが、Warpなりアステリア社の「つなぐ」というキーワードになったんです。
データがつながらないと価値がないっていうことになりますよね。
平野:当時、マーケティングのメッセージで、「作るからつなぐへ」というのを言ってて、システムってどんどん色々なものが作られていて、会計システムとか製造管理、顧客管理など。。。それを「つなぐ」というところをやっていきましょうということを世の中へのメッセージとして出していましたね。
北原: 我々の製品って今Warpをはじめ4製品ありますけれども、その中で主軸がWarpなので、クラウドのエリアではデファクトになってきてるという自負はります。やはりこれからは、今平野が言ったように、自律・分散というところで特に今はなんでもかんでもクラウドにデータを上げればいい世界になってますけど、大量のデータを地域地域で処理していくということはこれから絶対必要になってきます。特に、自動運転も含めて、いろいろな情報を瞬時に処理しなければいけない部分がエッジ・コンピューティングのエリアになってくるので、Warpをさらにエッジの世界にも広めていく、簡単に言うと「どこでも使えるミドルウェア」に進化させるというのがこれからの目標です。
平野:変化したくないことは「つなぐ」です。
なるほど。
分散になっても結局「つなぐ」という根底は変わらない?
平野:分散が成り立つには「つなぐ」が必要なんですよね。
平野:それは世界中で自律・分散・協調の社会や組織形態というのができてくるということです。今まで20世紀の階層・規律・統制の社会は、ヒエラルキーがあって、そこにルールがあって、それで統制をされていて、こうなんかモノポリーみたいな社会なんですが、そうではなくて世界中どこにでもいろいろな人とかチームがいて、必要に応じてつながって、必要なければ切れる、そして最適なアウトプットを出していくというようなところがどんどんできていく、これが自律・分散・強調の形です。クラウドが普及してだいぶベースは出てきましたが、まだまだやることは沢山あります。人や社会の組織、特に日本はまだトラディショナルな昭和型の組織がたくさんありますし、世界で見てもまだまだ。一人ひとりの働き方も変わっていく。「つなぐ」で実現していきたいですね。
北原:技術的にはハイスピードインターネットが今出てきているので、それをどれだけ効率良く使えるかというところだと思います。それも結構地域性があって、都市部だと本当に高速大容量というのはすごく使えたりはするんですけど、そういうデータの処理がなかなかできない場所もある。でも、データはどこでも発生します。だからどこでも使える環境にしていきたいです。あとはオンラインとかオフラインとかを気にしなくて処理できるという世界にしていきたいと考えています。今はオンラインでないと何もできなくなってしまう世界があって、例えば自然災害だとかがあった時に、一部のエリアでも動いていればそこだけで自律で動ける世界というところに、何か我々のミドルウェアを入れていきたいですね。例えばロボットみたいなものとか、そういう何か一つのハードウェアの中で完結して運用できるような世界を、必要なときにつないで、必要な時に自律型に動ける、みたいな世界になると素晴らしいと思います。
どこまでも軸は「つなぐ」。
北原:そうですね。
わかりました、ありがとうございます。
ここから先は思い出トークとなりまして(笑)。より気楽な感じでお話伺えたらと思います。
ASTERIA Warp20th 記念サイトはこちらからご覧ください。
PM・SE・マーケティングなど多彩なバックグラウンドを持つ「データ連携」のプロフェッショナルが、専門領域を超えたチームワークで「データ活用」や「業務の自動化・効率化」をテーマにノウハウやWarp活用法などのお役立ち情報を発信していきます。
ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。
アステリア製品デベロッパー同士をつなげ、技術情報の共有やちょっとしたの疑問解決の場とすることを目的としたコミュニティです。