2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
リンクをコピー
記事をブックマーク
石黒卓弥氏(以下、石黒):「開発チーム、一言で言うとどんなチームですか?」という質問なんですが、では順番で10X石川さんからお願いしてよろしいですか?
石川洋資氏(以下、石川):うちのチームは一言で言うと、仕事がめちゃくちゃ進むチームです(笑)。どういうことかと言うと、メンバーにはけっこう自立してどんどん仕事を前に進めてほしいというのは徹底して伝えていて。その状況の中で、問題ってすごくたくさん出てくると思うのですが、問題をある程度言語化しておくと勝手にみんな仕事を進めてくれるなっていう感じで、仕事がたくさん進むチームです。
石黒:いいですね。仕事がたくさん進むチーム(笑)。じゃあLayerX榎本さん、お願いします。
榎本悠介氏(以下、榎本):ごはんがススムくんみたいな感じですね(笑)。一言で言うとアニマルです。みんなすごく好奇心が旺盛というか。
かなりドメイン知識が求められるんですよね。証券の例をひとつとっても、僕はなにひとつ証券のこととかわからなかったんですけど、とりあえずゼロから勉強するしかないっていう感じで。言われずともどんどん本を買って勉強して、なんならヒアリングを勝手に設定して、どんどん学ぶし教え合うし、突破していくみたいな。
そういうかなり突破力のあるチームだなと思います。なので、すごく技術的にこうっていうよりか、事業を作っていくのを楽しみながらどんどん進められるチームだと思います。
石黒:仕事が進むチームとアニマルなチームということですね。では2つ目いきましょう。ポンポンいきますね。今日はもちろん、BizDevの方もいらっしゃいますが、ディベロッパーのみなさんがほとんどで、やっぱり開発系の質問が多かったんですが。
会社紹介の中でも石川さんから回答がありましたけれども、「開発環境や言語選定の特徴があれば、考え方を含めお聞きしたいです」という質問です。Dartを使用することについてのコメントが3名くらいからあって、こちらもピックアップしていますので、これも10X石川さんから回答をお願いします。
石川:まず技術の選び方ですが、基本的には開発が生産的に進められるとか、システムが安定するとか自分たちが得たいメリットを得られるかどうかを中心に考えています。
10Xが現在開発しているStailer(ステイラー)の場合はクライアントもサーバーもDartなんですけど、これにはそこそこ事情がありまして。まずもともと前プロダクトのタベリーは、モバイルのほうはNativeで、iOSはSwiftで、AndroidはKotlinで書いていたんですね。サーバーサイドはGoを使っていました。そこからStailerにいくときに、両方Dartになったんですけど。
それにはそれなりに意図があります。まず背景をちょっと共有しますと、うちのチームの場合、僕もソフトウェアエンジニアに入れるとすると7人のチームで今開発を回しています。もう少し前は6人だったんですが……。そういう少ない人数で開発していく中で、役割を分けないのは、僕らが取っている戦略のひとつです。
前のタベリーの状態だと、僕もiOSを書くしAndroidも書くしサーバーも書くという状態でした。そういうスキルセットのメンバーが全員だったんですね。全員、iOSも書けるしAndroidも書けるしサーバーも書けるっていう状態になっていて。
そういう状況においてどういうタスクの割り方をするかと言うと、ある1人がiOSをやって、もう1人がAndroidやって、もう1人がサーバーをやるというのは、まったく非効率なので、基本的に1つの機能に関わるものは全部1人でやるっていうスタンスを取っていました。
そういう状況においては、iOSとAndroidが分かれているのは普通に不便なことなんです。もしそれぞれのプラットフォームに1人ずつアサインできるのであれば、それはそれで別々の言語で書かれていてもぜんぜんいいと思うのですが。
うちの場合は少人数でなおかつ複数の役割を1人でやるというスタンスを取っていたので、これはクロスプラットフォームにいったほうがいいだろうということで、まずFlutterを採用しています。FlutterなのかReact Nativeなのかは、また議論があるポイントだと思うんですけれども、我々の場合はFlutterを選びました。
もう1つ、サーバーですね。サーバーでDartを使っている会社を僕はまだ見たことないんですが(笑)、我々は採用しました。どういう理由で採用したかと言うと、サーバーはGoでいいじゃんって思うかもしれないですけど、我々はまずサーバーの言語をGo以外にするというところからスタートしています。
Goはいろいろな場所で活躍していますし、なんでもGoでいいじゃんって思うかもしれないですが、アプリケーションのビジネスロジックを表現するにあたっては、言語仕様が足りないという判断を我々はしました。
それはいろいろなところにあるんですけど、代表的なところだとnullabilityとか、mutabilityとか、そういうところが表現できないのは、ビジネスロジックを表現する言語としては少し不足があると思いました。
それがビジネスロジックではなくて、もっと別のところとか、もっと低いレイヤーのところとかだったら十分というか。実際にすごい実績もありますし、フィットしていると思うんですけど、アプリケーションを記述する言語としては、必ずしもそれがベストではないなという判断で、Goをやめるというところからスタートしました。
じゃあGoをやめて何やるの? というのはいろいろ選択肢があって。SwiftとかKotlinとか。僕はSwiftの本とか出しているんですけど(笑)、Swiftは言語としてはすごくいいですし、Kotlinも同じくらいよい言語だと思っています。
でもそういう中で、Goのことを振り返ってみると、Goってすごく開発環境が自由で、安定していて、スケールしてもデメリットを受けにくい言語なんですね。なんでかと言うと、ツールチェーンがすごくしっかりしているからです。
サーバーサイドの言語を選ぶうえで、IntelliJを選ばなきゃいけないとか、Xcodeを選ばなきゃいけないというのは、僕は受け入れるべきではないなと判断して、SwiftとかKotlinは外しました。同じ理由でScalaとかも外しましたね。大きい規模になったときに、コンパイルの速度で活動ができなくなるのは、我々としてはちょっと受け入れたくないな、という判断をした感じですね。
そうなってくると、残るのはだいたいTypeScriptとかだと思うんですけど、この言語を選ぶころには、すでにFlutterの採用は決めていました。Flutterのツールチェーンがどういう動きをしているのかはよくわかっていて、Dartも実はいけるなということに、途中で気づいたんです。
Dartを選んだというのは、ある意味Flutterに引きずられてDartを選んだところもあると思います。TypeScriptでやっていても、たぶんデメリットはなかったんじゃないかなとは思うんですが、今となっては、クライアントとサーバーで同じ言語の資産を使えるのは実際メリットがあるなと思っています。
もちろん同じ感覚で書けるようなものではないのですが、例えばリンターが同じとか、そういう言語のプラクティスを引き継げるっていうのは明確なメリットとしてあると思います。まあそんなわけで、ちょっと言語の話になると長くなっちゃう(笑)。
石黒:そうですね。話が急に(笑)。ゾーンに入った感じですかね。
石川:ははは(笑)。
石黒:ありがとうございます。さらにディープな話を聞きましょう。LayerXの榎本さんもお願いします。
榎本:同じ量をしゃべると時間がなくなっちゃうので、さらっと(笑)。この言語じゃないとダメだとか、この言語大好きだっていうよりは、普通に要件を達成できること、採用戦略上とかで弱みにならないような言語というのが基本方針であります。
ただちょっとおもしろいところを言うと、ブロックチェーンを扱っている会社なので、ブロックチェーン側のクライアント・ライブラリの事情とかに引きずられてきたんですよね。Ethereumっていうチェーンを、エンタープライズ側でもQuorumという、それをベースにしたチェーンをけっこう使うことが多いんですけれども、それをまとめるクライアントライブラリがJavaScriptベースのしかなかったりして。
なので、僕は別にTypeScriptがすごく好きとかではないんですけれども、その時点でサーバーサイドはTypeScriptにしておくのが、まあ普通に考えて自然だよねみたいになって。その延長で、けっこうTypeScriptの世界観になっていくみたいなのがわりと今までですね。
ただEthereumベースではないものについては、普通にGolangを使ったりしています。最近R&DチームでAnonifyというオリジナルのプロダクトをリリースしました。ブロックチェーンでけっこう問題であるプライバシーを解決したモジュールなんですが。
それについてはフルスクラッチで、Rustで書いていますね。メモリ管理がしやすいみたいなところで、ブロックチェーン自体をRustで作るムーブメントがあって、R&DチームはRustで作っていることが多いです。
なので事業チームはTypeScript、少しGo。R&DチームはRustみたいな使い分けが主になっています。
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには