2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
リンクをコピー
記事をブックマーク
石黒卓弥氏(以下、石黒):「開発チーム、一言で言うとどんなチームですか?」という質問なんですが、では順番で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みたいな使い分けが主になっています。
2025.01.09
マッキンゼーのマネージャーが「資料を作る前」に準備する すべてのアウトプットを支える論理的なフレームワーク
2025.01.16
社内プレゼンは時間のムダ パワポ資料のプロが重視する、「ペライチ資料」で意見を通すこと
2025.01.15
若手がごろごろ辞める会社で「給料を5万円アップ」するも効果なし… 従業員のモチベーションを上げるために必要なことは何か
2025.01.14
コンサルが「理由は3つあります」と前置きする理由 マッキンゼー流、プレゼンの質を向上させる具体的Tips
2025.01.07
資料は3日前に完成 「伝え方」で差がつく、マッキンゼー流プレゼン準備術
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.10
プレゼンで突っ込まれそうなポイントの事前準備術 マッキンゼー流、顧客や上司の「意思決定」を加速させる工夫
2025.01.08
職場にいる「嫌われた上司」がたどる末路 よくあるダメな嫌われ方・良い嫌われ方の違いとは
2024.06.03
「Willハラスメント」にならず、部下のやりたいことを聞き出すコツ 個人の成長と組織のパフォーマンス向上を両立するには
2025.01.14
目標がなく悩む若手、育成を放棄する管理職… 社員をやる気にさせる「等級制度」を作るための第一歩
安野たかひろ氏・AIプロジェクト「デジタル民主主義2030」立ち上げ会見
2025.01.16 - 2025.01.16
国際コーチング連盟認定のプロフェッショナルコーチ”あべき光司”先生新刊『リーダーのためのコーチングがイチからわかる本』発売記念【オンラインイベント】
2024.12.09 - 2024.12.09
NEXT Innovation Summit 2024 in Autumn特別提供コンテンツ
2024.12.24 - 2024.12.24
プレゼンが上手くなる!5つのポイント|話し方のプロ・資料のプロが解説【カエカ 千葉様】
2024.08.31 - 2024.08.31
育て方改革第2弾!若手をつぶす等級制度、若手を育てる等級制度~等級設定のポイントから育成計画策定まで~
2024.12.18 - 2024.12.18