ちょっと話題の記事

組織戦略としての React Native

2020.12.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

組織戦略としての React Native

この記事は React Native Advent Calendar 2020 の 13 番目の記事です。私の視点や感覚をもとに、 React Native を採用する際の現状を記述したものです。

次の方を対象としています。

  • 技術をビジネスの競争力へ転換する責任を負う方
  • 採用の責任を負う方

技術的な詳細については拙著を参照してください。

書影

書いているひと

エンジニアリングマネージャーの januswel です。現在は育成をメインに、採用を少し手伝ったり、メンバーのキャリアと組織の方向性をすり合わせるなど、主にピープルマネジメントを担当しています。また、チームでの採用技術の軸足を揃えたり、実案件も少し関わらせていただいてます。

React Native とはなにか

React を用いて様々なプラットフォーム上でアプリケーションを構築可能なオープンソースソフトウェアです。開発は Facebook ですが、現在はコミュニティによる開発方針の決定とメンテナンスへと移行しています。

対応プラットフォームは次の通りです。

  • iOS
  • Android
  • Windows
  • macOS
  • Web

React は Facebook が開発しているオープンソースソフトウェアです。 JavaScript による UI 作成ライブラリーのひとつで、現在世界で最も使用されている選択肢です。

ハイプ・サイクルに当てはめると、すでに生産性の安定期に入っていると言えるでしょう。

React Native 採用時の組織におけるメリット

大きなものは次の 4 つです。

  • 採用のハードルを低減可能
  • 柔軟なチーム構成が可能
  • 多様なプラットフォームへの進出が容易
  • プラットフォームをまたいだスキルトランスファーが可能
  • OSS へのコントリビューションというブランディング

採用のハードルを低減可能

世界で最も使われている React を用いるため、求人市場の規模が極めて大きいことが理由です。日本においても React は広く使われており、 React Native の採用事例も多く見聞きされるようになっていますWada さんの記事は最近の採用事例をまとめてくださっているようです

React の学習についても、書籍やインターネット上の様々な教材を用いることが可能なため、メンバーの育成も問題ないでしょう。

柔軟なチーム構成が可能

各プラットフォームごとに覚えるべきことはあるものの、アプリケーション構築に占める比率は少ないです。そのため、 React を書ける人材であれば各プラットフォーム上で問題なくパフォーマンスを発揮してくれるでしょう。

これは組織にチーム構成が柔軟になる利点をもたらします。様々な理由でチームの再編成が必要になった際も、スキルセットが同じであるため開発効率の低下が最小限で済みます。

多様なプラットフォームへの進出が容易

現在、多くの業種で市場を占めているモバイルをはじめ、エンタープライズ向けの OS もサポートしているため、段階的なプラットフォーム進出が計画しやすい利点があります。もちろん実験的な進出による実地データの収集が実施しやすいことも追い風です。

消費者にはモバイルアプリを、管理をされるオペレーターには Web アプリを提供する場合でも同様のスキルセットで対応可能な点も大きいでしょう。

また、少なくとも技術的な問題によるピボットのしにくさは低減されるため、組織のサバイバビリティが向上します。

プラットフォームをまたいだスキルトランスファーが可能

React Native ではネイティブ層を JavaScript で制御するアーキテクチャーを採用しています。そのため、同様の技術に比べ各プラットフォームのネイティブ層を触りやすい利点があります。

React を共通言語としながら、ネイティブに詳しいメンバーが他のメンバーにスキルトランスファーしていくことも可能なため、チームの練度が上がりやすいでしょう。チームの練度次第ですが、ネイティブアプリなどへの投資対象の切り替えも視野に入ってきます。

また、現在ネイティブアプリを運用している場合、 React Native の部分的な組み込みが可能なため、徐々に React Native へ移行することも可能です。そこからまた、適切なプラットフォームへ展開することも可能なので、フレキシビリティの確保という面でも優位です。

OSS へのコントリビューションというブランディング

オープンソースソフトウェアのため、本体へのコントリビュートが容易です。どんなに小さなコントリビュートでも React Native コミュニティへの貢献となるため、技術的なブランディングとなりやすいでしょう。

React Native 採用時の組織におけるデメリット

まだ正式リリースされていないため、ステイクホルダーからの承認を得にくいかもしれません。ただし、 Facebook の公式アプリをはじめ様々な実績があるため、実用上は問題ありません。

また、最近は JavaScript エコシステムの進化が鈍化しているため、採用にあたっては火のエンジニアから難色を示されるかもしれません。

まとめ

組織戦略として React Native を考える場合、積極的な理由としてサバイバビリティおよびフレキシビリティの向上が挙げられます。また、消極的な理由として投資判断の遅延評価を可能とします。

ぜひ検討してみてはいかがでしょうか?