[go: nahoru, domu]

この記事は Google 副社長、Royal Hansen、Google Cloud および OpenTitan リード、Dominic Rizzo による Google Open Source Blog の記事 "OpenTitan – Open sourcing transparent, trustworthy, and secure silicon" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


 セキュリティは安全なインフラストラクチャから始まります。インフラストラクチャの安全性と整合性に対する信頼を高めるには、確実に信頼できる根底部分、すなわち専用のチップが重要です。

本日(元記事公開当時)は、信頼のルート(RoT)となる初めてのオープンソース チップ プロジェクト、OpenTitan についてお知らせします。これは、私たちがパートナーとともに進めているプロジェクトです。OpenTitan は高品質な RoT 設計と統合ガイドラインを提供するもので、データセンターのサーバーやストレージ、周辺機器などに利用できます。チップの設計をオープンソース化することで、透過性や信頼性が高まり、究極的には安全性も高まります。
OpenTitan ロゴ

チップの信頼の土台となる

RoT チップは、認証と検証が行われたコードを使って重要なシステム コンポーネントが安全に起動することを検証し、ハードウェア インフラストラクチャやそこで動作するソフトウェアが意図どおりの信頼できる状態を保つことを保証します。RoT チップは、以下を行うことで多面的にセキュリティに貢献します。
  • サーバーや端末が正しいファームウェアで起動し、低レベルの不正ソフトウェアに感染していないことを保証します。
  • オペレータがサーバーや端末の正当性を検証できるように、暗号学的に一意なマシン ID を提供します。
  • 暗号キーなどのシークレットを改ざんされない形で保護します。これは、物理的にアクセスできる人(例: サーバーや端末が輸送中の場合)に対しても有効です。
  • 信頼できる改ざん不可能な監査記録などのランタイム セキュリティ サービスを提供します。
この RoT チップ テクノロジーは、サーバーのマザーボード、ネットワーク カード、クライアント端末(例: ノートパソコン、スマートフォン)、コンシューマー ルーター、IoT 端末などに利用できます。たとえば、Google は専用の RoT チップ Titan を利用し、Google のデータセンター内にあるマシンが、検証されたコードによって信頼できる既知の状態から起動することを保証しています。これが私たちのシステムの信頼のルートになっています。私たちは、確実に信頼できるチップの重要性を認識しており、パートナーと連携して、信頼できる RoT チップのメリットをお客様や業界全体に広げたいと考えています。これを実現する最善の方法は、チップをオープンソース化することでしょう。

透過性と安全性の水準を上げる

オープンソース ソフトウェアと同じく、オープンソース チップも以下のことができます。
  1. 設計と実装が透過的なので、信頼性と安全性が高まります。問題を早期に発見でき、盲目的な信頼を減らすことができます。
  2. オープンソース設計への貢献を通して、革新を実現し、推進します。
  3. オープンで共通なリファレンス設計を通して、実装の選択肢を提供し、一連の共通インターフェースやソフトウェアの互換性の保証を維持します。
OpenTitan プロジェクトは、イギリスのケンブリッジに本拠地を置く独立した非営利企業で、フルスタックのエンジニアリング チームが在籍する lowRISC CIC によって管理され、志を同じくする ETH ZurichG+D Mobile SecurityGoogleNuvoton TechnologyWestern Digital などの企業の連合体により支えられています。

OpenTitan プロジェクトの創設パートナー

OpenTitan はアクティブなエンジニアリング プロジェクトで、パートナーの連合体を代表するエンジニアのチームが参加し、さまざまな観点からアイデアや専門知識を持ち寄っています。オープンソースのマイクロプロセッサ(RISC-V ベースの設計である lowRISC Ibex)、暗号コプロセッサ、ハードウェア乱数生成器、高度な鍵階層、揮発性および不揮発性ストレージ用のメモリ階層、防御メカニズム、IO 周辺機器、セキュアブートなど、RoT チップの論理設計は透過的に行われています。OpenTitan では、よりオープンで透過的かつ高品質な RoT を提供するため、パートナーの連合体が協力し合っています。
従来型の RoT と OpenTitan RoT の重要な設計コンポーネントの比較
OpenTitan プロジェクトは、次の 3 つの原則に根ざしています。
  • 透過性 – あらゆる人のための RoT チップの透過性や信頼性を向上させるため、OpenTitan の設計やドキュメントは誰でも調査、評価、貢献が可能です。
  • 高品質 – リファレンス ファームウェア、付帯検証ツール、技術ドキュメントを含め、高品質で論理的に安全なチップ設計を行います。
  • 柔軟性 – ベンダーやプラットフォームに依存せず、データセンターのサーバーやストレージ、周辺機器、その他のデバイスに統合できる RoT チップ設計を使うことで、導入者が費用を削減して多くのお客様に製品を届けることができるようにします。

OpenTitan プロジェクトに参加する

OpenTitan を活用できるのは、インフラストラクチャをチップベースのセキュリティで強化したいと考えているチップメーカーやプラットフォーム プロバイダー、セキュリティに敏感な企業などです。早速、GitHub リポジトリにアクセスしてみてください。

積極的に OpenTitan と連携して実際にオープンソース チップを安全にしたい方は、ぜひ OpenTitan チームにご連絡ください。製品にパイロット OpenTitan RoT を組み込みたい方は、こちらからお知らせいただけるとありがたく思います。


Reviewed by Eiji Kitamura - Developer Relations Team

2019 年 9 月 17 日に開催した第 10 回目「事業戦略と IT の融合:テクノロジー企業化への不可避な流れ」の開催レポートの後編です。前編はこちらよりご覧いただけます。

スピーカー:
  • 小野 和俊 氏 株式会社クレディセゾン 取締役 CTO
  • 辻 裕里 氏  株式会社 SUBARU   IT 戦略本部情報企画部担当部長
  • 長谷川 秀樹 氏 株式会社メルカリ CIO
聞き手:
  • 小島 英揮 氏、Still Day One 合同会社 代表社員 パラレルマーケター・エバンジェリスト
注:スピーカーの所属は、2019 年 9 月 17 日 時点のものです。

パネル進行スライドはこちらからご覧いただけます。


内製のためのチーム作り


小島:小野さんのブログに戻って、結局、自社内で開発をすることになったんですよね。その内製のチーム作りについて、教えていただけますか。

小野:内製のためのチームということですね。一般にどういう内製チームがあるのかというと 2 種類あると思います。1 つは社内の製造工場という役割を持つもの。社内からの要求に従って物作りをするというものです。そしてもう 1 つが、ユーザーにこういう体験を提供したいよね、こんな新しいものがあったら良いよね、というように、自らが作るものの内容も考えて物作りをするチームです。

私のチームは完全に後者です。最初は「プロジェクトがあまりうまくいっていない。予算ももうないので小野さんのところでならタダで作ってくれないか」というような依頼が何件かありました。ですが、そういう案件を受けることを仕事にしてしまうと、うまく進められていないプロジェクトを延命させるためのチームになってしまう。それは私たちが外部からエンジニアを採用して推進しようとしていたこととは違うことなので、丁重にお断りしていました。そういうやり取りが続くと、小野さんのチームは依頼されたものを作る工場じゃないんだね、という理解が浸透していきました。

エンジニアとして応募してくる人は半分くらいはベンチャー気質の人でした。カード会社は絶対ミスは許されないから常に厳しくチェックしながら仕事しなくてはいけないという人ではなくて、明日までにこれ対応しようぜ!というようなノリの人です。一方、しっかり確実にやって行こうというエンタープライズ系の人ももちろん必要です。文化の全く異なるエンジニアたちが一緒に仕事をしています。

そうすると、ベンチャーから来た人は、なぜこんなに硬い職場なの?となるし、エンタープライズ系の人や、クレディセゾン 70 年の歴史の上に立っている人からすると、なんでこんなチャラいやつらがいるの?ということになるわけです。

具体的なエピソードを一つ。ベンチャーから来たある人が、炊飯器を会社に持ってきていいですかという質問を Slack に書き込みました。その人は、社内規定を一語一句確認して、炊飯器を持参することがダメだとは書かれていないので、大丈夫だと判断したわけです。でも、一般的に規定にそこまで書きませんよね。

小島:そんなこと書かなくても、わかりますよねと普通は考えますね。

小野:そんな問いに答える間も無く、買いました!と Slack に書かれているわけです。でも、オフィスでご飯を炊かれたら困る人もいるわけです。匂いは気になるでしょうし、やめてくれという話もあるわけですよね。

小島:ちなみにその炊飯器持ち込みは最終的にはどうなりましたか?

小野:結果的には納得してくれました。最初は、「どうして炊飯器を持ってきたいの?」と聞いてみたんですね。すると、「炊きたてのご飯が食べたいんです」という。「なるほど、確かに。」となるわけですね。実はアプレッソ時代に、エンジニアが炊飯器を持ってきたことがあったんです。最初はみんな喜んで炊きたての米を食べていました。ただ、その後何が起きたかというと、毎回 4 合ぐらいを炊くので、どうしても食べきれない。そうするとラップに包んで冷凍庫に入れるようになる。そして、レンジで温めて食べることになる。あれ、これ、炊きたてのご飯じゃないよね?となって、結局しばらくして炊飯器は撤去されました。

そういう経験談を語ると、小野さんは規則だとか周囲の反感を買うからとか、そういう理由だけでダメと言っているわけではなくて、ちゃんと話を聞いた上で、自身の経験に基づいて言っているんですね、ということになり、理解を示してくれるのです。

小島:相手の考えをまず聞いてあげて、それに対して答えてあげることが大事だと。

小野:一方で、全く違う種類の苦労もありました。開発者には大きなディスプレイとハイスペックなマシンが必要ですが、「どうして他の社員は今の PC で我慢しているのに、小野さんのチームだけ良いマシンにしないといけないんですか?」というような話がありました。「本当に、その通りですよね。」とまずちゃんと話を聞いて、その上で、開発者にはなぜそれらが必要なのかを丁寧に説明してく必要がありました。

小島:仕事内容が違うから、枠にはめるのはおかしいということですよね。

小野:そうですが、それを言ってしまうと、マシンを調達している部門の意見を否定することになってしまうわけです。そこで、「自分は小学校からプログラミングしていて、(この)大きなディスプレイにすると開発生産性が 5 倍くらい違うと思うんですよね」と説くわけです。そうすると、小野さんがそこまで主張するのであれば仕方ありませんが、けれど今回は例外ですよとなるわけです。

小島:これまでのお話を聞くと、炊飯器を持ってきたとか、プログラミング経験も豊富な小野さんでないと説得できないみたいな感じになりますね。

小野:そうではなくて、全力で相手に歩み寄ることが大切ということを言いたいわけです。炊飯器を持ってくるという経験がなかったとしても、その人がなぜそうしたいのか、その背景には何かがあるはずだと考えることが重要です。それを理解した上で、相手にきちんと説明できるか、納得してもらえるかですね。皆を納得させていくことが一番難しいわけです。



辻:相手に歩み寄るには、その相手に愛情を持つことが重要という話を聞いたので、転職後に実行に移しました。部下が 35 人くらいいて、最初の 3 週間は、1 人あたり 40 分ほどかけて、全員と話をしました。業務の話は一切無し。40 分間、私があなたに惚れるような自慢話をすること、そして私が会社を大好きになるようにスバルの良いところを語ること、この 2 つをお題として出しました。

通常ですと、上司と部下ですから業務の話が中心になりますが、私は入社して間もない、まだ何もわからない者ですし、業務の話でお互いに歩み寄れる気がしませんでした。愛情を持ってこそ、相手に歩み寄れる自分が作れるなと思っていました。実際に、この対話をやってよかったですね。世界的に有名なゲーマーが実はスバルにいたこともわかりましたし。この体験から、あまり怒らないようになりましたし。

長谷川:昔はよく職場の仲間で飲みに行って、「お前の子、今度小学校だって」といった話をしていましたね。
小野:プライベート情報をかなりのレベルで共有していましたよね。

長谷川:しかし、最近はこうした飲み会が少ないですね。特に若手とおじさん達の飲み会がね。以前は上司に言われたら行くしかなかった。最近、ハンズラボ時代の新入社員に飲みに行こうかと誘ったら、いや別にいいですって言われてしまいました。今日用事あるのと聞くと、いや特に用事ないですけどと返してくるわけです。
小島:歩み寄ったわけですね。

長谷川:最近は One on One と言って、業務時間内に一対一で雑談や相談する機会を設けるところが多くなりました。昔は、タバコ部屋のようなところでしていた話を普通に会議室でする時代になっています。

小島:メルカリは新しい会社ですけど、カルチャーを明文化することは実は大事だったりしますか?

長谷川:明文化はとても大事ですね。阿吽の呼吸では会社はまわりません。「Go Bold - 大胆にやろう」ということを会社として掲げています。しかし、人によって持っている常識が違いますから、この言葉だけでは、解釈もまちまちです。明文化すること、文章にすることが実はとても大事だと考えています。メルカリとしては、バリューも毎年少しずつ変えていますし、会議でも議事録をきちんと残して、誰がみても、同じ結論になるように、そこはすごく気をつけています。



小島:透明性なのでしょうか?小野さんの炊飯器の件も、どういう経緯で炊飯器を諦めたのかという過程がクリアになっていることが大事ですよね。

小野:エンジニアにとって、説明責任は大事なことです。ペアプログラミングで、「うーん、このコード、ムカつく」ということはありますよね。でも、ファクトをもってストレートに非難するととても刺々しくなってしまいます。なので、わたしはそういうコードはヒヨコのコードという意味で「ヒヨコード」とか、ここピヨピヨしているよねといった、かわいい表現を使うようにしています。

こういうやり取りをボクシングに例えると、きつい言葉を使って相手を攻撃するのは、グローブに釘を仕込むようなことなので、相手が傷つくのはわかりますよね。それでは困るわけです。だから、グローブはふわふわのクッションにするわけですよ。パフっとかなって、はぁ気持ちいい、と。それが、炊飯器の話であり、調達部門へのディスプレイの説明であり、っていう感じです。
長谷川:Slack ってあるじゃないですか。メルカリでは Slack で 1:1 のやり取りは絶対にしない、つまりオープンで使うことを推奨しています。

少人数、3 人くらいで行う議論であったとしても、パブリックというかオープンチャンネルでやります。検索して、そのスレッドを誰でも見ることができて、入ることも、出ることもできる、そういう状態にしておきます。これは、とても重要なことで、あとから入ってきた人を嫌な気分にしてはいけませんから。

小島:主流派じゃないと思われる人に対して?

長谷川:プロジェクトを作ってオープンチャンネルでやるのとクローズドチャンネルでやるのとではかなりの差があります。クローズドチャンネルにすると、このプロジェクトが進まないのは、あそこの部が反対しているからとか、あいつが悪いとかそういう話になりがちです。オープンチャンネルの場合、誰でも入れるし、プロジェクトに興味のある人が入ってきます。だから悪口を言わない。オープンだと、ちょっとあの人を入れて議論しようとか、いろいろな人が入ってどんどん深い議論になっている、またそれをみんなが見ているので、決して殴り合いのような状況にはなりません。

小島:殴り合いにならないのは大事ですよね。マネジメントのそのいろいろ聞いて一対一でやると力関係が共通のゴールがあると、ここに行くために今回こちらを頑張ってサポートするけど、次はそっちが頑張ってやってね、という感じで 3 点目のゴールがあると、割と会話が成り立つっていう、習ったことがあるんですけどそういうのに近いかもしれないですね。その。殴れないから。ここに行きましょうよって話せざるを得なくて、そうするとチームはまとまりやすい。

ビジネス SaaS はどう活用する?


小島:さきほど、長谷川さんから社内システムでの SaaS 活用について話がありましたが、最後に、SaaS について、他のお二方、意見をお願いします。

辻:自動車業界はおそらく自分たちは特別な業界だ、もの作りのプロセスは違うという意識がどうしてもあります。なので、SaaS は使えないという考えがあるのかもしれません。少しでも危ない可能性があるとそれが車そのものの製造にも影響する世界です。なので、SaaS とかクラウドにいくのが、銀行よりも遅かったかもしれないですね。

ただ、一部、業務的に車自身に関係ないようなところ、バックオフィスものやお客様との接点では、SaaS で良いと思っています。あとは、企業のカルチャーとして、受け入れるのに少し時間がかかっています。部門による違いもありますね。

小野:ビジネス SaaS は積極的に使いましょうという考えです。私自身は、SaaS だろうが、PaaS だろうが、基本的にすべて積極的に活用しましょう派です。

しかし一方で、悩ましいこともあります。クレディセゾンは年間 5 兆円近いトランザクションがあるわけです。それをいきなりクラウドに全部データを送って BigQuery で分析することはできません。個人情報の塊ですから、慎重にステップを踏んで扱わなければならないレガシーを全否定し、BigQuery にデータがすべて載っていないことなどありえない!という人がいたら、こう後ろからそっと抱きしめて、「そんなこと言わせてごめんな」って、言いますね。

小島:小野のマネジメントスキルが高いってことだけはかなり理解できました。いや、こういうタイプでないと、テックカンパニーになるのは難しいというでしょうか。

小野:歴史がある事業会社と、テックのカルチャーって全然違うから、その文化的な対立が絶対起きるわけですよ。自社開発を始めると、そこに緩衝剤みたいな役割の人とかチームがいないと絶対否定しあってしまう。ほんとそこが一番肝だと思います。

小島:そろそろ時間もきたようなので、本日はこれにて終了としたいと思います。スピーカーの皆さん、また来場者の皆さん、どうもありがとうございました。




Posted by Takuo Suzuki - Developer Relations Team

2019 年 9 月 17 日に開催した第 10 回目は、「事業戦略と IT の融合:テクノロジー企業化への不可避な流れ」をテーマでした。恒例の対談セッションは、次の皆様にご登壇いただきました。

スピーカー:
  • 小野 和俊 氏 株式会社クレディセゾン 取締役 CTO
  • 辻 裕里 氏  株式会社 SUBARU IT 戦略本部情報企画部部長
  • 長谷川 秀樹 氏 株式会社メルカリ CIO
聞き手:
  • 小島 英揮 氏、Still Day One 合同会社 代表社員 パラレルマーケター・エバンジェリスト
注:スピーカーの所属は、2019 年 9 月 17 日 時点のものです。

パネル進行スライドはこちらからご覧いただけます。


すべての企業はテック企業化するのか?

小島:今日のテーマは「事業戦略と IT の融合」ということで、すべての会社がテクノロジーと直面すべきであり、テック企業化するのではないか、そういうテーマでお話を進めていきましょう。すべての企業はテック企業化するのか? まずこの点について、皆さんのご意見をうかがいたいと思います。

長谷川:私は完全にそう思っているタイプです。大なり小なりテクノロジーの波はきており、無視することはできません。小売業界では、アメリカのウォルマートがテクノロジー会社を買収して子会社化していますし、Amazon Go のような動きもあります。小売業界に限らず、テクノロジー無しでは起こり得ないことがたくさんあります。

小島:今日のテーマは、小野さんのブログ「クレディセゾンでエンジニアリングチームを立ち上げます」からヒントを得たものです。小野さんは完全にテックの人であり、その方が事業会社の中の人として活動している、外部のシステム開発会社にいてもできることをなぜ中の人としてやっているのか。きっとそこには何かしらの意味があるのだなと思って、このイベントを開催したわけです。そこで小野さんはどのように見ていますか。

小野:「読み書きそろばん」は学問の基礎という話があります。現代社会では、さらにコーディングも必要だと思っています。小学校ではプログラミングが義務化されますし、「読み書きそろばんコーディング」は当然という時代です。

そろばんをできない人が経営企画の仕事をしたら周りが困ります。財務だともっと困るわけです。今の世の中、とりわけデジタル分野での事業戦略を立てる人には、コーディング経験が求められるようになってきていると思います。

今までは事業会社と SIer の関係において、要件定義して、ミーティングを重ねて、ウォーターフォールモデルで開発して何かあったら瑕疵担保責任でという考え方でも良かったかもしれません。しかし、今は、試作して、市場の反応を見て、場合によってはピボットしてという流れです。事業は生き物ですし、仮説検証と改善のサイクルを繰り返すのが一般的でしょう。そうなると必然的に、企画する人とその企画を実装する人との距離は近いほうが良いわけです。しかし、企画する人と実装する人との距離はまだまだ遠い状況です。事業部門とシステム部門の壁があり、システム部門と SIer の壁があり、SIer と下請け先の壁があり、企画する人と実装する人との間にはいくつものレイヤーが存在します。

そうすると、コミュニケーションの中で誤解というものが絶対に発生します。これを変えたいとか微修正しようとしたときも時間もコストもかかります。さらに、事前に要件が確定できず、試行錯誤的に進めるしかない状況が多いはずなのに、無理やりウォータフォールで進めなければならないということもあります。

小島:IBM でウォーターフォール型開発を進められていた辻さんは、今の小野さんの話を聞いてどう思いますか?

辻:そうですね。ADSG(Application Development Standardization Guide:アプリケーション開発標準化ガイド)というガイドラインに従って私も長年ウォーターフォールで仕事をしてきました。開発したシステムをユーザー側に移管した後、ユーザー側で改善することはなかなか難しいので、結局、新たに要求とまとめて、お金払って外部に開発を委託することになるわけです。前職の製造業でも、また現職でもその課題はあり、内製化戦略の必要性を感じています。

長谷川:自動車の場合、プランニングから市場に出るまでに 3、4 年はかかりますよね。すると、自動車も含めてハードウェアの開発でアジャイルというのは適さないかなと思うのですが、いかがでしょうか?

辻:確かに、自動車の中を制御するインカーの部分は難しいと思います。ただし、アウトカー、すなわちサービスの部分はアジャイルでどんどんやっていくべき領域です。

小野:むしろ、インカーは今後もウォーターフォールが向いている領域ではないでしょうか。ウォーターフォールが適したものは、他にもあります。例えば、セゾン情報システムズの HULFT という製品は今でもコアの部分の絶対的に安定性が求められるところはウォーターフォールで開発しています。

自動車は安全が一番大事じゃないですか?安全性を最重視する領域ではあらかじめ要件が確定できないなんてことになったらそれ自体が危険なわけで、安全性や安定性を重視するもの、事故を起こしたら絶対にだめなものは、ウォーターフォールの方が絶対向いていると思います。あらゆるものがアジャイルで良いわけではなくて、アジャイルの良さも悪さも両方を知った上で選ぶことが大切です。

小島:事業がウォーターフォール的に物事を進めるべきものなのか、アジャイル的に進めるべきものなのか、そこの判断を誤ってはいけないということですね。



事業戦略とITの関係

小島:AgriTech、EdTech、SportTech、FinTech、HRTeck、FoodTech など、ちょっと調べただけで、約 20 のなんとかテックというものを見つけることができます。共通していることは昔から存在する事業にテクノロジーを取り入れて、バージョンアップしようという考え方です。合理的にもっと早く安くということではなく、新しい価値をつけるのにテクノロジーを使っています。こうした動きをもたらしている外的要因として、次の 3 つが考えられます。
  1. 顧客接点のデジタル化
  2. クラウド/as a Service の普及
  3. 変化のサイクルが加速

まずは、顧客接点のデジタル化。アウトカーの部分ですよね。カーナビでいろいろな情報にアクセスできるという点です。そういえば、スバルさんはカーナビでいろいろなテストをされていますよね。

辻:スバルが大好きな方のことを「スバリスト」と呼ぶのですが、スバリストは最短コースでは走りたくないのです。

小島:通常、カーナビでは、最短距離の経路を教えてくれますよね。

辻:毎回、同じ道ではなくて、天気の悪い日だったらこの道、あるいはカーブ好きにはカーブが多いところ、森の中とか、それぞれが楽しく走れるところを求めているのです。

社員が一番のスバリストなので、普段からどうやったら自分は楽しく走れるだろうという議論をしています。社内情報システムの話題から離れますが、「デジタルよ、車の楽しさを奪うな」という考えがベースにあるのです。

小島:合理化だけのために IT を使うのではなく、もっと本来の良さを引き立てるところに使って行こうということですね。

2 つめが、クラウドであり、なんとか as a service です。物が作りやすくなったので、テクノロジーを取り込みやすくなった。これは小野さんの視点から見てそうですか?

小野:プログラマーは、あるものを使って、ないものを作ることを原則とすべき、という考えです。せっかくクラウドが出てきているのに使わないのはナンセンスです。クラウドは使いまくった方が良いということはもう明らかでしょう。

ただ一方で、デジタルトランスフォーメーションありきで、何でもかんでも AI とかブロックチェーンとかクラウドでやろうとするのも違います。目的に応じた使い分けが必要です。

小島:3 つめが、変化のサイクルが加速しているという点です。長谷川さんは、エンタープライズ分野の中でも急進派で、すぐにやりましょうというタイプですよね。その長谷川さんが、メルカリに入った直後に、Slack を使う仕事のスタイルについていけなかったそうですね。

長谷川:はい、ついていけなかったですね。

小島:しかし、Slack で仕事をすることが普通になっている会社がどんどん増えています。変化のスピードが更に加速していませんか。

長谷川:メルカリは概ね四半期を単位に、いろいろなことが一気に変わります。毎期、フルスクラッチで事業のことを考えて成長していくと言えば良いでしょうか。一般的に、都度フルスクラッチで考えていたら、業務効率はとても悪くなると思うのですが、メルカリはそれを上回る高い生産性があります。たとえば Slack や G Suite といった IT ツールをフル活用していることもこの生産性を高めている要因です。

小島:お客さんもテクノロジーを駆使して変化している、今述べた外的要因もあり、自らもどんどん変化していかなければならないということですね。では、こうした変化の中で事業戦略と IT を融合しようとした時に必ず議論になること、「内製と外注」。このテーマに移りましょう。

内製と外注を比較する

小島:私は若い頃にシステム開発は外注すべしと教えられました。その理由は開発需要にあわせて人を雇うことが非常に難しかったからです。そのあたりの調整はやはり外部に任せた方が安心できましたし、そもそも当時は IT の専門家が社内には少なくて、外部に仕事を出すことが一般的でした。しかし、最近はその考え方が変わってきた気がします。

辻:確かにコストが厳しい時代には私も外注化を勧めていましたが、結局中にいる人が、手配屋になってしまうのです。つまり、出す仕事の中身はわからないけれどベンダーに仕事を出せる人が増えてしまうわけです。最近は、すぐに手をつけなければいけないところは SaaS を使うという選択肢もありますが、それでも、アジャイル的に仕事を進められる人材確保は急務だなと感じています。

長谷川:東急ハンズに在籍していたときに 10 年間、内製化を進めていました。当初は、IT によっていろいろなことが実現できて、ユーザーの期待値もどんどん上がって、あれもこれもやろうということになっていきました。その結果、開発サイドの能力の限界を超えてしまったんです。すると、ユーザーの要求はもう受けられませんから、ユーザーは何もやってくれないじゃないかということになり、不満をぶつけられる我々エンジニア側もテンションが下がる、そういう悪いサイクルに入っていきました。

小島:ユーザーの期待値の調整ですね。

長谷川:エンジニアを管理する立場としても、こうした状況が続くといろいろと投げ出したくなる気分でした。また、ユーザーから文句を言われたくないので、エンジニアもそれまで 1 週間でできますと言っていた仕事を 1 か月でできますという言い方に変わりました。そうしないと、ユーザーに責められるからです。そこで、ある時、同じ開発案件について、外注から見積もりをとってみました。そうすると、内製した方が時間がかかるものが出てきたわけです。これはちょっとショックでしたね。

誰が作っても同じ結果になるものであれば、外注でもいいでしょう。たとえば、在庫管理システム。単純に在庫データを管理するだけなら誰が作っても同じでしょうから、外注はありです。しかし、最適な在庫を持つとなったら話は別です。ここは小売業にとって重要なところです、内製化となるでしょう。

小島:コモディティ化している機能のように見えるが、こだわりのある部分は自社で作ったほうが良いということですね。

IT 活用の意味 - エンタープライズ IT と ビジネス IT

小島:内製とするか外注とするかの判断基準として、コストとコモディティ化というものが上がりました。ただ、そう単純に分けられないと思うのですが、どこで分ければ良いのでしょうか?

小野:内製か外注かの議論の前に、そもそも、IT の位置づけがこの数年間で大きく変わっています。IT を使うという言葉には 2 つの意味があります。社内の業務効率化のために IT を使う、エンタープライズ IT と呼ばれるもの。そして、最近のデジタルディスラプションの文脈で語られる IT です。Uber が良い例ですよね。従来の ERP を中心とした、エンタープライズ IT のように、業務の効率化や自動化を目指した世界とは全く異なります。ユーザーに提供するものに IT が密接に関係してきているわけです。ビジネスをより魅力的なものにするための IT とは分けて考えるべきです。

小島:なるほど。

小野:私は、エンタープライズ IT については、ある程度は外注でも良いと考えています。しかし、もう一方のビジネス IT は自社で開発すべきです。要件定義をしてその通りに作り、良かったねではユーザーにとって使いにくいものしかできないと思うのです。たとえ最初の要件に合ったとしてもこまめに改善しなければいけませんからね。

小島:事業そのものは自分で作りなさいということですね。自動車業界はどうなのですか?たとえば、エンジンはスバルさんが自社で作るけれども、オーディオなどのアクセサリまわりは他社製でも良いわけですよね。

辻:自動車業界は歴史も長く、世界経済を支えてきた自負もある、自社の強みが何かをしっかり持っています。その強みの部分はもちろん内製します。そうでないところは外部から調達します。ただ、IT に関わる部分は最近の出来事で、先程のインカーやアウトカーの議論ではないですが、一気に押し寄せてきたこともあって内製か外注かというところはまだ混沌としています。

長谷川:自動運転は各社違うのでしょうか?スバルさんにはアイサイトがありますが、世の中にはそこだけを一生懸命作るメーカーもあります。そういうものを使ったらいいんじゃないか、自社で作らなくてもという考えはないのでしょうか。

辻:アイサイトと機能的に似ているものは確かにあります。しかし、嵐の中でも快適に走りたいというスバリストにはやはりアイサイトです。雨の降る日はスバル日和と言うユーザーにとっては、汎用的なカメラではだめなんですよね。多分大衆車であればある程度使えのかもしれませんが、スバルの場合はどうかなという感じはありますね。

小島:他メーカーだったらここは外のでいいとしてもスバルさんだったら、もしかしたら、そこは内製になる。顧客ニーズ、技術動向などいろいろな要素を考えて仕分けしていかれるのでしょうね。

辻:そうですね。以前は、ERP が企業内システムのど真ん中にいたわけですが、今は端の方にいっちゃったじゃないですか。まだ、企業内システムのところにリソースをかけすぎているところもあるので、お客様対応の部分にリソースを配分するようにしていかなければなりません。

小島:メルカリさんは、コアのサービスはもちろん内製でしょうが、逆に外部から調達するものはありますか?

長谷川:人事システムのように特異なところは一部内製もありますが、基本的に SaaS です。しかし、外部から調達したものをカスタマイズして使おうという考えはなくて、カスタマイズ無しで、どううまく使うかを常に考えています。

小野:SaaS を使うことで社内システムを実現しているのですね。

長谷川:海外にはニッチな SaaS がたくさんあります。たとえば、最近日本市場に入ってきた BlackLine というサービスがあります。これは、会計の損益計算書と元々の伝票を突合するサービスです。

小島:そこだけのサービス?

長谷川:突合だけです。日本だとそれで売れるのかと疑問に思われるでしょうが、アメリカではかなり売れているらしいです。そこでメルカリも導入しました。会計上の処理のログがすべて取れるので、そのまま会計士にログも含めてデータを渡すだけで面倒な作業は一切無し。ニッチな SaaS ですけど、とても役立っています。BlackLine は大手企業でも採用が進んでいるようです。

小島:個々の作業は大したことないですが、積もると膨大になりますしね。だから、SaaS でという考えですか。

長谷川:でも、そうかんたんに導入に至ったわけではありません。いままで Excel でできていたことですからね。 Excel でできているのなら、そのままやればいいじゃないかという考えもあったわけです。

SaaS、クラウドはこれからどんどん新しい機能がでてきて、この伝票、ちょっと怪しんじゃないかといった AI らしきものも出てくるでしょう。Excel だけではできない、何かプラスアルファの価値が SaaS にはあります。パッケージをインストールして使っている世界はそれ以上伸びしろはないですが、SaaS にはそういうものがあるわけです。だから、さっさとクラウド、SaaSに移行した方が良いと思っています。


後編に続きます。




Posted by Takuo Suzuki - Developer Relations Team

この記事は Francis Ma (Head of Product, Firebase) による The Firebase Blog の記事 "What's new at Firebase Summit 2019" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

私たち Firebase チームの使命は、モバイルとウェブのデベロッパーの成功を支援することですが、毎月 200 万を超えるアプリで Firebase が利用されていることもあり、成功が意味する内容は当然ながらデベロッパーごとに異なります。たとえば、フランス最古で最大の新聞 Le Figaro にとっての成功は、複数の Firebase プロダクトを組み合わせて活用し、有料定期購読者を大幅に増やすことです。3 人で起業した Mighty Immersion というスタートアップ企業は VR テクノロジーによる患者様のケア向上を目指していますが、同社にとっての成功は、Firebase バックエンド プロダクトを使用してできるだけ早く自社アプリの導入施設を増やすことです。


こうしたさまざまなストーリーが、デベロッパー コミュニティへの投資を継続していく原動力になっています。活発でオープンなエコシステムはアイデアの実現を後押しし、すべての開発者に利益をもたらしています。

4 回目を迎える年次イベント Firebase Summit は、今回マドリードで開催されました。この機会に皆さんがどのようなものを開発しているのかを伺うとともに、Firebase の最新情報として、アプリ開発のワークフローとインフラストラクチャ要件の簡素化への取り組みについてご紹介しました。Firebase Summit 2019 で初めて発表した内容については、以下をご覧ください。基調講演と各セッションは Firebase の YouTube チャンネルまたは Firebase Summit のウェブサイトでもご覧いただけます。

モバイルアプリとウェブアプリの質を高める新しいツール

Firebase Extensions で毎日の開発タスクを効率化

アプリ開発で同じようなタスクを繰り返しているとペースが低下し、ユーザー エクスペリエンスの向上に充てる時間が減ってしまうことがあります。そうした時間の無駄を省くために導入されたのが Firebase Extensions です。これは、多くのプロジェクトに共通するタスクの自動化を念頭に設計されたコードをまとめてあらかじめパッケージ化したものです。

画像のサイズ変更、メーリング リストへのユーザーの追加、URL の短縮など、必要に応じてプロジェクトに簡単にデプロイできる多数の機能を Firebase チーム側で構築しました。コードを書いたりデバッグしたりする必要はありません。そうした作業はすべて済ませてあります。

それでも柔軟性は残されているため、個々ののユースケースに合わせて拡張機能を構成できます。Firebase Extensions はオープンソースなので、Firebase や Google Cloud Platform の他のプロダクトとシームレスに統合できます。ご自身のユースケースに適した拡張機能があるかどうか、本日からお探しいただけます。Firebase ウェブサイトの拡張機能検索ページまたは Firebase Extensions GitHub リポジトリで探してみてください。

利用可能な拡張機能を Firebase コンソールでリリース


Firebase エミュレータ スイートで開発をスピードアップ

Firebase エミュレータ スイートは、アプリや機能の構築を支援するさまざまなローカルで作動するツールが揃った、高パフォーマンスで安全な環境です。皆様からのフィードバックに基づいて、エミュレータ スイートの機能を拡張し、セキュリティ ルールに加えた変更のホットリロード機能を追加しました。

クライアント側とサーバー側の SDK のサポート範囲も拡大されています。Realtime Database によるファンクションのトリガーもサポート対象になり、継続的インテグレーションとの連携を強化する新しいコマンドも開発されました。詳細はこちらをご覧ください。

Firebase エミュレータ スイートで Realtime Database がサポートされるようになり、クライアント側およびサーバー側 SDK のサポート範囲も拡大


アプリの品質とユーザー エンゲージメントの向上

Firebase App Distribution を使用して、アプリを公開する前に安定性とユーザビリティを向上

アプリ開発にはバグがつきものですが、アプリを公開する前にバグを解消し、ユーザー エクスペリエンス、あるいは評価やレビューに影響が及ばないようにすることが重要です。

Summit で発表した Firebase App Distribution は、信頼できるテスターにプレリリース版アプリを簡単かつ柔軟に配布する手段として使用できます。iOS と Android 両方のテストアプリを、App Distribution を単一の中央ハブにして配布することが可能です。

また、Gradle、fastlane に対応した CLI や Firebase CLI を使用してプレリリース テストを既存のワークフローに組み込むこともできます。SDK のインストール、フォームの入力、レビュー プロセスの実施は不要です。Firebase App Distribution の使用方法については、こちらをご覧ください。

Firebase コンソールから信頼できるテスターにプレリリース版アプリを送信


Google アナリティクス、Firebase Remote Config、Firebase Cloud Messaging を使ってウェブアプリの機能を拡張

アプリをリリースしたら、次にやることはユーザーを理解し、エンゲージメントを促進する方法を見極めることです。ユーザーは多くの場合、複数のタッチポイントを介してビジネスと関わり、その際にはさまざまなデバイスを使用します。

そこで Firebase Dev Summit では、Google アナリティクスとの統合対象がウェブのサポートまで拡大されたことを発表いたしました。これまでネイティブ モバイルアプリにご利用いただいていた強力な分析機能(ユーザーのセグメント化、アクションのトリガー、イベントやユーザー プロパティの記録など)が、ウェブアプリにも利用できるようになりました。

そのため、ユーザーの使用するデバイスやプラットフォームが何であっても、ユーザーがアプリをどのように利用しているかをより簡単に把握できます。また、Google アナリティクスの UI をクリックするだけで明確な目標到達プロセスにアクセスできます。つい最近アップグレードされたオーディエンス機能を使用すれば、ウェブユーザーのエクスペリエンスをよりパーソナライズすることが可能です。その際には、こちらも今回からウェブに利用できるようになった Remote Config または Firebase Cloud Messaging を使用できます。

Google アナリティクスでのウェブアプリのサポートを開始


Firebase Predictions でユーザーの行動を簡単に予測

昨年、Firebase Predictions の一般提供を開始したことで、アプリ分析に機械学習を応用し、予測される行動に基づいてユーザー セグメントを自動的に作成できるようになりました。最近、Predictions のエクスペリエンスにいくつかの改良を加え、より多くの情報が得られ、より詳細な管理ができるようにしました。最も大きな改良は、Predictions のインターフェースの更新です。これにより、予測されるあらゆるユーザー行動の確認が可能になり、ユースケースに応じてどのようなユーザー セグメントでもターゲットに設定できるようになりました。詳しくはこちらをご覧ください。

管理性、柔軟性、透明性の向上

SDK のオープンソース化を進めて内部を公開

オープンなプラットフォームがなければ強力なソフトウェアの作成やつながり合ったコミュニティの構築はできないと、私たち Firebase チームは考えています。この数か月間で、iOSAndroid のライブラリをそれぞれ 4 つ追加でオープンソース化しました。

本日は、Remote Config とアナリティクス向けのウェブ SDK の新しいリリースをオープンソース化します。また、Firebase 向けの包括的な React Native ライブラリを作成してきた企業である Invertase と緊密に連携し、同社のライブラリですべての Firebase プロダクトがカバーされるようにしました。

新しい React Native Firebase v6 リリースではすべての Firebase サービスがサポート対象に追加されており、新しいドキュメント ウェブサイト、クイック スタートガイド、アップグレード済みの SDK がリリースに含まれています。React Native Firebase に興味をお持ちの方はこちらをご覧ください。

Firebase プロジェクトへのアクセスを制限する

私たち Firebase チームは、プラットフォームのオープン化を進めるだけでなく、データのセキュリティを確保するために、適切なプロセスが確実に整備されるようにもしています。そのための支援として、Firebase の役割と権限が一般提供となったことをお知らせします。

この実証済みのシステムでは、事前定義された Firebase の役割を使用するか、独自の役割を作成して、適切な人以外は Firebase プロジェクトと Firebase のデータにアクセスできないようにすることができます。詳しくはこちらをご覧ください。

Firebase Summit 2019 で発表されたその他のニュース

Firebase Test Lab でテストの実行時間を短縮

Firebase Test Lab が改良され、シャーディングを使ってテストを高速化できるようになりました。テストのシャーディングを使用すると、複数のテストをサブグループ(シャード)に分割し、平行して実行できます。詳しくはこちらをご覧ください。

Fabric の移行に関する最新情報

App Distribution をリリースしたことで、Fabric の優れた機能を Firebase に組み込む作業は完了しました。Fabric の便利な機能はすべて Firebase でアクセスできるようになりました。最新のアップデートを利用できるようにするために、Fabric のアプリとチームメイトを今すぐ Firebase に移行することをおすすめします。

Fabric ダッシュボードを利用できるのは 2020 年 3 月 31 日までです。新しいプラットフォームでの成功を確実なものにするために、移行は早めにお済ませください。こちらから開始できます。

2020 年とその先に向けて

私たち Firebase チームはこれからも Firebase への投資を続け、アプリ開発のワークフローとインフラストラクチャの要件が簡素化され、素晴らしいユーザー エクスペリエンスの構築に皆様が専念できるよう、プラットフォーム機能の充実を図ってまいります。

プラットフォームの育成と強化を続けるにあたり、皆様からのフィードバックをお待ちしています。アルファ版プログラムに参加し、Firebase チームが構築を進めている次期機能などの最新情報を入手してください。そして、Firebase チームとアイデアを分かち合い、Firebase の未来をともに形作りましょう。

Posted by Takuo Suzuki - Developer Relations Team

この記事はウェブ デベロッパー エコシステム、Dion Almaer による Chromium Blog の記事 "Chrome Dev Summit 2019: Elevating the Web Together" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


ウェブは史上最大のオープン エコシステムであり、すばらしいユーティリティです。現在のインターネットでは、15 億以上のアクティブなウェブサイトが世界中の約 45 億人のウェブユーザーにサービスを提供しています。こういった多様性(地理、端末、コンテンツなど)を実現できるのは、オープンなウェブ プラットフォームがあってこそです。

ユーザーはサイトを巡りながら、ウェブ全体を 1 つのものとして独自の体験を重ねます。そのため、あらゆる人に行き届く質の高い体験を提供するのは、私たちすべての責任です。

今年の Chrome Developer Summit(CDS)では、ユーザーが望む水準に到達できる機能をデベロッパーの皆さんに提供することに注力しました。多様性を促進してウェブ デベロッパー向けの機能を拡充するため、エコシステムと密接に連携してウェブ プラットフォームの強化、デベロッパー エクスペリエンスの改善、ブラウザ自身の有意義なアップデートを行ってきました。

ウェブの汎用性を向上させる

私たちが目指すのは、すべてのユーザーから「読み込み中」をなくすことです。今年の I/O では、プレビュー版の Portals を紹介しました。Portals を使うと、事前にコンテンツをレンダリングし、場合によってはページに埋め込むことにより、シームレスな体験を実現し、ユーザーがウェブを巡る方法を変革できます。Fandango などの早期パートナーは、既にサイトでこの機能をテストしており、嬉しいことに、この新しいスタイルのナビゲーションを見ることができます。Portals を試すには、chrome://flags/#enable-portals フラグをご利用ください。
Fandango の Portals デモ

今年の CDS では、Web Bundle のプレビュー版を紹介します。これは、デベロッパーが任意のフォーマット(メール、FTP、USB など)でウェブ コンテンツを安全に配布する際に基盤として使える API です。Web Bundle が実現するのは、ウェブ コンテンツの超高速配布だけではありません。たとえユーザーがオフラインでも、ピアツーピアで配布できます。将来的には、Background Periodic SyncContent Indexing などの API により、たとえアクティブなインターネット接続がなくても、あらかじめキャッシュして関連するウェブ コンテンツを表示できるようになる予定です。現在、Web Bundle は試験運用版フラグを指定すると利用できます。他の 2 つは、オリジン トライアルとして利用できます。

ウェブ コンテンツの利用はこれまでになく多様化しています。発展途上のマーケットでモバイルファーストの気運が高まっていることはよく知られていますが、世界中の若い世代では複数端末での利用が増加しています。デベロッパーがウェブのスムーズさを活用し、ユーザーの期待に添うすばらしい最新の体験を実現できるよう、私たちはこのプラットフォームを十分に強化することに尽力しています。そして、高機能なウェブ アプリケーションを実現するために集中的に作業を行い、以下のような多くのプリミティブをプラットフォームに導入しています。

  • SMS Receiver: ウェブアプリで 2 要素 SMS メッセージを取得します。
  • Contact Picker: 連絡先リストにウェブ コンテンツを共有できるようにすることで、ウェブアプリでソーシャル メディア機能や通信機能を実現します。
  • Native File System API: ウェブアプリから、ユーザーの端末上のファイルやフォルダを直接読み込んだり、変更を保存したりできます。これにより、ユーザーのローカル端末上のファイルを操作する強力なウェブアプリを実現できます。たとえば、IDE、写真や動画のエディタ、テキスト エディタなどが考えられます。
この分野では、他にもさまざまなことを行っています。これらの機能を使って皆さんが構築するものを見るのが待ち遠しくてたまりません。私たちの直近の作業の詳細については、新しい ウェブ エクスペリエンスのサポートについてのブログをご覧ください。

フレームワークや CMS にかかわらずデベロッパーの成功を後押しする

ウェブ デベロッパーである私たちは、他では味わえない最高のウェブ エクスペリエンスを提供するための道のりを共に歩んでいます。この連帯責任により、正確でアクション可能なウェブの健全性データの重要性が高まっています。

CDS は、現状を確認して次に向かうべき場所について議論するためのチェックポイントとなります。HTTP Archive を使えばウェブがどのように構築されているかを、Chrome ユーザー エクスペリエンス レポートを使えばウェブがどのようなエクスペリエンスを提供しているかを確認できます。この 1 年間で、読み込みと操作性を表す中核的指標である First Contentful PaintFirst Input Delay が小さいサイトの比率が増加しています。

ユーザー エクスペリエンスの質はさまざまな切り口で測定できますが、本日紹介したのは 2 つの新しい指標です。この 2 つの指標は、デベロッパーにサイトのパフォーマンスの全体像を提供するもので、Largest Contentful Paint(ユーザーがページで最も有意義なコンテンツをどのくらい早く見ることができるか)と Cumulative Layout Shift(ページがどのくらい安定しているように感じられるか)になります。

データはすばらしいものですが、さらに優れているのは修正や改善につながる知見です。よく尋ねられるのは、「この情報を使ってどうすればいいのですか?」という質問です。私たちは、デベロッパーにウェブの健全性の全体像を提供するために、The Web Almanac コミュニティの多くの専門家と連携してきました。本日、17 を超える章を公開しています。今後も、こういった知見を探して公開する予定です。
デベロッパーは、パフォーマンス指標を適切な方向に導くため、信じられないほどの労力を注いでいます。私たちは、そのような努力を続けているデベロッパーの皆さんに報いる方法を探しています。本日、Chrome の UI にスピードに関するシグナルを表示するいくつかの試験的機能について共有します。

フレームワーク、ライブラリ、CMS は、デベロッパーのエコシステムにとって不可欠な存在です。私たちは、これらをユーザーにとって高速でシームレスなものにするための取り組みを積極的にサポートしています。今年すでに、デベロッパー エコシステムのサポートと高速で信頼性の高いサイトの構築を目的とした、WordPress および React 用の Lighthouse Stack Packs を作成しました。そして本日、Angular と AMP、さらに e コマース CMS である Magento も対象になります。これにより、デベロッパーが使うツールにかかわらず、さらに多くのアクションにつながる知見を提供できるようになります。

Framework Fund がたくさんの重要なプロジェクト をサポートすることで、デフォルトの状態でも一定のパフォーマンス水準に到達しやすくなっていることをうれしく思います。今年は、さらに多くのプロジェクトが資金を得ることになるでしょう。

また、各プルリクエストについてデベロッパーが確実に知見を得られるよう、Lighthouse CI を公開しました。デベロッパーは、Lighthouse CI を簡単にビルド パイプラインに組み込むことができ、行った変更の詳細な差分や、それがサイトの質に与える影響を取得できるようになります。

ブラウザをすべての人々のために

私たちは、ウェブはすべての人のためにあると考えています。端末の種類やインターネットの速度、購買力は関係ありません。すべての人がこのプラットフォームにアクセスし続けられるように、ブラウザのパフォーマンスやメモリの改善を行っています。一例として、イメージの遅延読み込みや Paint Holding などの新機能の導入があげられます。イメージの遅延読み込みは、ライトモードの Chrome ユーザーに対してデフォルトで有効化される予定です。また、Paint Holding もまもなく Chrome に導入されます。

ウェブは、すべての人にとって安全で信頼できる場所でなければなりません。HTTPS 暗号化に関する取り組みをさらに進めるために、コミュニティと連携し、デフォルトですべての混合コンテンツのブロックを開始しています(混合コンテンツとは、安全でない HTTP サブリソースが使われている HTTPS ページを指します)。また、ブラウザと DNS プロバイダ間のトラフィックを暗号化し、セキュリティとプライバシーを高める DNS over HTTPS の実験も行っています。

また、既存のサードパーティ Cookie 制御をさらに透明化するという I/O での約束も実行しています。Chrome M79 ベータ版以降、シークレット モードの新しいタブの画面でサードパーティ Cookie の制御を切り替える機能を実験しています。さらに、通常モードでこの制御にアクセスしやすくするため、設定ページを再設計する作業にも取り組んでいます。最後になりますが、既存の Cookie インフラストラクチャの改善以外に、プライバシー サンドボックスの開発も続けています。プライバシー サンドボックスはコンテンツを表示する安全な環境で、ユーザーのプライバシー保護にも役立ちます。

ウェブは、世界中の人々に対して大きな影響力を持つプラットフォームです。そこに力を注ぎ続けているウェブ コミュニティ全体に感謝いたします。すべてのユーザーのウェブ エクスペリエンスを向上させることは、私たちの連帯責任と考えています。そのような気持ちで、ウェブ(Web)の中に私たち(We)がいることを喜び合いましょう。


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は超絶ウェブ エクスペリエンス担当プロダクト マネージャー、Thomas Nattestad による Chromium Blog の記事 "Making new experiences possible on the web" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


現在私たちが知っているウェブは、相互にリンクされたシンプルなドキュメントという素朴な始まりから、長い道のりを歩んできました。そして今では、膨大な数の高度なサービスやアプリケーションを支えるまでになっています。

ウェブの中核にあるのはコンテンツの参照ですが、そこにはネイティブ アプリケーションを使わなければ実現できない多くのタスクが存在します。私たちが目指すのは、大量のダウンロードやアップデートを必要としないアプリケーションです。ウェブは、すべてのユーザー エクスペリエンスにおいて、納得できるレベルであるべきです。

アプリにとってウェブが特別である理由

ウェブの最大の強みは、アクセスがとても簡単なことです。ユーザーは、インストールやセットアップをまったく行うことなく、コンテンツや機能をすぐに利用できます。 私たちは、ショッピング、メール、バンキング、友だちとの連絡などを行う際に、このアクセスしやすさを役立てています。このアクセスしやすさを実際にすべてのユースケースに適用できない理由はありません。ウェブでは、サンドボックスやプログレッシブ パーミッション モデルが強化されているおかげで、ユーザーがリンクをクリックするときには、実行可能ファイルをダウンロードするときほど心配する必要はありません。

URL とリンクにより、アプリケーションの配布や爆発的な普及が促され、コラボレーションしやすくなります。ウェブ アプリケーションを使うと、ユーザーは任意のチャンネルでリンクを共有でき、それを受け取ったユーザーはその文字列をクリックしてすぐにアプリケーションにアクセスできます。リンクを共有するユーザーは、リンクを受け取ったユーザーがアプリケーションをインストールしているかどうか、OS がアプリケーションをサポートしているかどうかを気にする必要はありません。アプリケーションはただそこにあり、どこでも動作します。共有しやすさとアクセスしやすさは、ユーザーの獲得にも大きく貢献します。

ウェブは真のオープン プラットフォームです。自分のサイトの可用性は自分で制御でき、アクセスをブロックすることは誰にもできません。また、ウェブはオープンな標準で構築されており、主要なレンダラーはすべてオープンソースです。つまり、特定の企業や OS に依存することはなく、新しい端末やプラットフォームが登場すれば、そこでもウェブがサポートされます。

Chromium の 3 つのソリューション

現在、ブラウザを使える人なら、誰でも複雑なデザイン作業を共同で行ったりCAD 図面を作ったりドキュメントを編集したり無数の動画を見たりたくさんのゲームで遊んだりすることができます。しかし、ネイティブ アプリケーションができることとの間には依然としてギャップが存在しています。具体的には、複雑な編集作業、クリエイティブ ツール、高度な端末通信などのタスクです。Chromium は、そのギャップを埋めるため、WebAssembly、Advanced Capabilities、プログレッシブ ウェブアプリに取り組んでいます。

WebAssembly: 強力な移植性

デベロッパーは、C++ などの低レベル言語へのこれまでの投資を効率良くウェブに移行できるべきです。要求の多いワークロードを高パフォーマンスで安定して処理するというニーズも、アプリがウェブを避ける理由の 1 つになっています。この 2 つのニーズに対する私たちの答えが、WebAssembly です。

WebAssembly は、低レベルのプリミティブと強力な静的型付けを組み合わせることで、パフォーマンスの急低下や GC による停止を避けつつ、低レベルのコードが予測可能なパフォーマンスを発揮できるようにしています。スレッドや SIMD などを追加することで、アプリケーションは高度な命令セットを備えた最新のマルチコア プロセッサをフル活用できるようになります。

WebAssembly はコンパイル ターゲットなので、デベロッパーは既存のアプリケーションやライブラリを JavaScript で書き直すことなくウェブで利用できます。Emscripten ツールチェーンは、たくさんの移植サポートを提供し、AutoCAD や Sketchup などのアプリケーションをウェブで利用できるようにしています。これはすばらしい結果を生んでいます。簡単に共有や共同作業ができるというウェブのメリットを高度な生産性アプリにも適用でき、新たな作業の方法も登場しています。

Advanced Capabilities: 強力な機能に安全にアクセスを付与

ウェブアプリをネイティブ アプリ並みに便利なものにするには、ネイティブ アプリと同じ端末機能にアクセスできる必要があります。たとえば、ファイル システムへのアクセス、NFC 通信、連絡先ピッカー、位置情報などの機能です。

こういった機能をユーザーが理解できる安全な方法で公開するのは大きな課題ですが、Chromium が積極的に取り組んでいる課題の 1 つです。ウェブはプログレッシブ パーミッション モデルで動作しています。つまり、各機能はユーザー パーミッションを通じて必要に応じて付与され、そのスコープはできる限り狭くなっています。これは、ネイティブ アプリとは正反対です。ネイティブ アプリはファイル システムに自由にアクセスできますが、ウェブアプリは明示的に共有して書き込みパーミッションを与えたフォルダやファイルにしか保存できません。USB や Bluetooth などの機能では、ユーザーが共有したい特定の機器を選択できます。

プログレッシブ ウェブアプリ: ウェブの強力さとネイティブの使い心地を両立

ウェブアプリは、他のアプリケーションと同じように動作する必要があります。また、ウェブアプリを生活の中心に位置づけてもらうためには、ユーザーが期待する場所に存在しなければなりません。それに対する私たちの答えが、プログレッシブ ウェブアプリ(PWA)です。

PWA はインストールでき、ネイティブ アプリと同じように動作します。一度インストールすれば、他のインストール済みアプリと同じ場所から起動して、独自のウィンドウを開くことができます。また、適切なストレージ管理属性などのさらに高度な統合を行うために、Microsoft や Chrome OS とも連携しています。PWA は、Microsoft や Samsung Galaxy のストアに登録することもできます。また、Trusted Web Activity を使って Play ストアに登録することもできます。

未だかつてない進化を遂げるウェブがここに

ウェブは、最初に誕生したときから、長い道のりを歩んできました。ウェブは本当に比類ないプラットフォームで、ユーザーやデベロッパーにメリットを提供できる多くの特性を持ち合わせています。WebAssembly、Powerful Capabilities、PWA という新技術を使えば、ユーザーが必要とするどんな体験でも作ることができ、ウェブのすばらしい特性を活用できます。


Reviewed by Eiji Kitamura - Developer Relations Team

この記事は Liz Kammer (Google), Maggie Hodges (UX research consultant), Ambar Murillo (Google) による Google Testing Blog の記事 "Code Health: Respectful Reviews == Useful Reviews" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

 本投稿は、コードの健全性シリーズの 1 つです。Google Testing on the Toilet(トイレでのテスト)として世界中の Google のトイレに登場したエピソードが元になっています。オフィスに掲示できる印刷用のバージョンもダウンロードできます。


投稿者: Liz Kammer(Google)、Maggie Hodges(UX リサーチ コンサルタント)、Ambar Murillo(Google)


コードレビューはソフトウェア プロジェクトの品質を改善するための貴重なツールと認識されていますが、コードレビューのコメントが不明確だったりきつい表現だったりすると、好ましくない結果が生まれる場合があります。たとえば、レビューが遅れたり、関連するコードレビューが進まなくなったり、否定的な感情が生まれたり、他の貢献者や同僚に対する否定的な印象ができたりすることがあります。

以下のポイントを参考に、コードレビューのコメントを礼儀正しく解決することをこころがけましょう。

レビュアーまたは作成者として:

  • 推奨: 相手の能力を推測する。作成者の実装やレビュアーの推奨事項は、皆さんとは違う状況で行われたものかもしれません。まずは質問して理解しようとするところから始めましょう。
  • 推奨: 根拠や背景を示す。たとえば、ベスト プラクティスに関するドキュメント、スタイルガイド、設計ドキュメントなどがこれにあたります。他のユーザーが皆さんの判断について理解したり、助言したりするうえで役立つことがあります。 
  • 推奨: コメントがどのように解釈されるかを考える。誇張、ジョーク、絵文字などは、意図したとおりに解釈されない可能性があることに注意します。
    Author Don’t:
    I prefer short names so I’d rather
    not change this. Unless you make
    me? :)
    
    
    
    
    
    訳: 短い名前のほうが好きなので変更したく
    ないです。あなたが私の考えを変えられる
    なら話は別ですが :)
    Author Do:
    Best practice suggests omitting
    obvious/generic terms. I’m not
    sure how to reconcile that
    advice with this request.
    
    
    
    
    訳: ベストプラクティスでは自明あるいは
    一般的な名称は省略することとなっています。
    このコード変更においてそれをどう適用する
    かはまだわかっていません。
  • 非推奨: 人を批判する。人ではなく、コードについての見解を述べます。コメントに人を指す表現(例:「あなた」や「あなたの」)が含まれているだけでも、コードを改善するという目的の妨げになることがあります。
    Reviewer Don’t:
    Why are you using this approach?
    You’re adding unnecessary
    complexity.
    
    
    
    
    
    訳: なぜこのような手法を採用したのでしょう。
    不必要に複雑にしようとしています。
    Reviewer Do:
    This concurrency model appears to
    be adding complexity to the
    system without any visible
    performance benefit.
    
    
    
    
    訳: この並行モデルは目に見えた性能改善を
    特にもたらすわけでもなくシステムをより複雑に
    しているように思えます。
  • 非推奨: きつい言葉を使う。否定的な調子になっているコードレビューのコメントは、有用性が低下する傾向にあります。たとえば以前の研究によると、作成者が非常に否定的なコメントを有用だと感じる確率は 57% ですが、中立的なコメントを有用だと感じる確率は 79% でした。

レビュアーとして:

  • 推奨: 具体的で実現可能なフィードバックを提供する。具体的なアドバイスがない場合は、作成者がその決定を下した理由について尋ねるのもよいでしょう。
    Reviewer Don’t:
    I don’t understand this.
    
    
    
    訳: 意味がわかりません
    Reviewer Do:
    If this is an optimization, can you
    please add comments?
    
    
    訳: ここのコードが最適化のためのものなら
    その旨コメントを追加してください。
  • 推奨: あまりに細かいことや必要性が低いコメントは、明確に区別できるようにする。たとえば、「Nit」(些細な指摘)や「Optional」(省略可能)などの印をつけます。これにより、作成者がレビュアーの意図をはっきりと理解できるようになります。

作成者として:

  • 推奨: フィードバックを受けたら、コードについて明確に説明する、またはレビュアーのコメントに回答する。そうしないと、フィードバックを受けてコードの改善を行う能力に欠けると見なされる可能性があります。
    Author Don’t:
    That makes sense in some cases but
    not here.
    
    
    
    訳: フィードバックの内容があてはまる場合
    もありますが、今回は違うと思います。
    Author Do:
    I added a comment about why
    it’s implemented that way.
    
    
    訳: なぜこのように実装したかコメントを
    追加しました。
  • 推奨: フィードバックに賛同できない場合は、自分のアプローチの利点を説明します。それでも合意が得られない場合は、コードレビューにおける不一致を解消するための Google のガイダンスに従います。


Reviewed by Yoshifumi Yamaguchi - Developer Relations Team