Findy Team+ Lab

インタビュー
テックブログ

テンポ良く・心地良い開発環境を実現した朝日新聞のモダンなエンジニア組織とは?

テンポ良く・心地良い開発環境を実現した朝日新聞のモダンなエンジニア組織とは?

全国紙「朝日新聞」を発行する新聞社であり、ニュースサイト「朝日新聞デジタル」の運営を行う、株式会社朝日新聞社。エンジニア組織における個人の振り返りや組織の課題発見に、エンジニア組織支援クラウド「Findy Team+」を活用いただいています。

今回は、朝日新聞社の社外CTOを務める広木大地さんと、朝デジ事業センター カスタマーエクスペリエンス部で次長を務める西島寛さんにインタビュー。システム刷新プロジェクト「Plasma」のお話を中心に、「Findy Team+」のデータを踏まえながら、開発チームにおけるこれまでの歩みや今後の取り組みについて伺っていきます。

※Findy Team+のサービス詳細は以下よりご覧いただけます。 https://findy-team.io

目次

歴史ある会社で、開発組織をつくっていくという挑戦

ーーまず最初に、お二人のこれまでの主なご経歴や、現在の役割について教えてください。

広木: 2022年9月から朝日新聞社の社外CTOとして、さまざまな技術面やDXなどを担っています。もともと2018年ごろから、「朝日新聞デジタル」でスピーディな価値を提供できる組織体制や仕組みをつくっていくということで、技術顧問として声を掛けていただき、4年間並走してきました。

その中で、さらに経営全体を含めたところで、テクノロジー+ジャーナリズムの価値を、より世の中に広めていくために、社外CTOとしてお招きいただきました。私自身ジャーナリスティックなものが好きなので、大事な価値を残していきたいという思いから、お受けさせていただいています。

新聞社というとレガシーなイメージがあるかと思いますが、 実はこの4年間でかなりモダンな技術組織に進歩してきました。 今回はそういった一連の話を、テックリードの西島さんと一緒にお伝えできたらと思っています。

西島: 前職はヤフー株式会社で、入社から4年ほどは主にフロントエンドの開発に携わり、JavaScriptでSPAをつくったりしていました。その後は、アプリのテストツールをつくる仕事をしていて、そのチームのスクラム導入に関わったり、エンジニアチームのチームリードを務めたりしていました。

そして、2020年に朝日新聞社へ入社して、「朝日新聞デジタル」のシステム刷新に携わってきました。チームではスクラム開発を取り入れていて、私はスクラムマスターとして、みんなのお母さん的な役割を担っております(笑)。

私はフロント技術が好きで、表現したいものがしっかりとある朝日新聞社で、そうしたフロント部分に関わっていけるのは夢があるなと。 こうしたレガシーな会社で、これから開発組織をつくっていくことにチャレンジできるのは、キャリアとしても非常に面白い挑戦 だと思い、携わらせてもらっています。 記事画像①

ーー朝日新聞社のデジタル化について、背景を簡単に教えていただけますか?

広木: 朝日新聞社のデジタル化は、2000年代初頭の元々スマートフォンが流行り始めるもっと前の頃から、率先して新しい技術を取り入れてスタートしていた部分がありました。なので、システムの中身を見てみると、少し前に主流だったアーキテクチャや、私の学生時分ぐらいの技術が先行して取り込まれていました。

例えば、CDN+ESI(Edge Side Includes)を利用した設計や、たくさんのトラフィックを捌いて、安定して配信するための仕組みを、当時の最新技術で作ろうとしていたんです。そうした背景がある中で、時が流れていきました。2020年代としてモダンで高速な開発をしていこうと思ったときに、ちょっと置いていかれてしまっていた部分があったんですね。

より高速で品質の高いサービスを展開するにあたって、SPA的な技術であったり、サーバーサイドレンダリングの中でもReactのエコシステムなどのモジュール化の技術を使って、スピーディーな開発にしていきたい。でも、これまでのアーキテクチャでは、いろいろな見せ方をしたり、機能を足し込んだり、というのは難しくなりそうだという状況がありました。

そこで、 Webフロントエンド側でスピーディーかつ安全な開発ができるような体制にしていこうと、フロントエンド刷新のプロジェクトが立ち上がりました。 それが「Plasma」というプロジェクトで、そのリーダーを担っているのが西島さんです。

ゼロからスタートした刷新プロジェクト「Plasma」

ーー今お話に挙がったプロジェクト「Plasma」について、立ち上げ時のことを教えてください。

西島: 「Plasma」は、広木さんとお話するようになってから立ち上がったプロジェクトで、立ち上げ時点では進め方も何もまったく決まっていませんでした。

当初はエンジニア4人から始まったのですが、本当に長い歴史のあるシステムなので、本来あるべき姿がよく分からなくなっている部分も多々あり、これまで「朝日新聞デジタル」に長く関わってきた方などをチームに巻き込んでいきました。

そういった形で、 自分たちで全てを決め切れて、全てを作れるようなチームを組成していったのが「Plasma」の成り立ちです。 チームには、企画やデザイナーの担当者に加わってもらい、さらに2名ほどエンジニアが加わって、そこから一貫してスクラム開発を続けています。

ーー「Plasma」というプロジェクト名には、どのような由来があるのでしょうか?

西島: これまで朝日新聞社のシステムには、「SORA」や「Orion」など、空を見上げたときにあるものの名前がつくことがあったんです。今回も検討する中で、星のようにキラキラしたイメージのある「Plasma」という名前が出て、これに決まりました。実は開発チームで一番最初にやったことが、プロジェクト名を決めることでした。

古いシステムを紐解きながら、課題を解決する新システムへ

ーープロジェクトの立ち上げから携わられて、システムを刷新していくなかで難しい面もあったと思いますが、いかがでしょうか。

西島: ものすごく難しくて、広木さんと隔週でお話させていただきながら、毎回ご指導いただいていました。まず難しかったのは、コードしか残っていない部分もあったので、コードから「これは何をやりたかったんだっけ?」と紐解いていくところです。

その部分は、経緯を把握していた企画の担当者にリーダーシップをとって進めてもらい、作りながら不明瞭な箇所はお話しつつ、出来上がったものを一緒に確認しながら進めていきました。

加えて、システム的な観点では、やはり古いシステムとのつじつまをどう合わせるかということも課題になっていました。それまで動いていたシステムの構成概念図は、下記のようになっています。 Plasmaシステム構成図

広木: 記事配信の仕組みは元々存在し、そこをAPI化させるためのFacadeのような層がGolangで書かれていて、フロントエンド側にはPreactをベースとしたサーバーサイドレンダリングのBFF、フロントエンドサーバーがあります。そこで様々な処理をしているので、構成としては比較的モダンに作っています。

Plasmaシステム構成図

広木: 元々は、Webサイト時代のメカニズムだったんですね。たくさんのトラフィックを捌いていく仕組みだったのに対して、Webサービス的なつくりを持ちたいというのが1つの目的でした。

つまり、一方的に配信するだけではなく、今後はより読者の方々とインタラクティブにコミュニケーションしたり、読者の方が独自にカスタマイズしたり、そういった部分を実現できるようにしたいと考えたとき、Webサイト的な作りから、Webサービス的なつくりに変えていく必要があったんです。

西島: 今までは完全に静的なHTMLをどこかに配置して、それを配信する仕組みだったので、当時はWebサービス的なことがやりにくい状況でした。ロジックを含まないHTMLだけでなく、様々な仕組みを入れて、ユーザーに対して、適切なアウトプットができる基盤を整えるというのが、実現したかったことの1つです。

広木: そして、もう1つ課題となっていたのが、コンテンツを組み合わせたり、機能を足したりしたいと考えたときに、事故が起きてしまう可能性があり、検証作業に時間が掛かっていたことです。

スピード感のある仮説検証や開発をして、安全に新しい機能等を提供できるようにならないと、お客様にWebサービス的な価値をデリバリーするのが遅くなってしまう。なので、スピーディーに提供するための仕組みを作りたいというのが、「Plasma」のコアになる部分でした。

西島: 元々はCSS1つをとっても、超巨大なCSSがサービスの広い範囲で使われていて、少しの修正がどこまで影響を及ぼすか、全然わからない状態だったんです。なので、リリースのためには勇気というか、気合と根性が求められるような状況がありました。

そのため、リリースしたときにどの部分に影響があるかが、明確になる仕組みにしていこうと。そうやって上手くコンポーネント化していき、開発スピードも上げていきたいと考えていました。

広木: 自動テストや型推論で比較的安全に依存関係をトレースしながらデプロイできる、そういう仕組みに切り替えましょう、というプロジェクトだったんですね。これが、その後「Findy Team+」を導入することにも繋がっていきました。

安全に仮説検証しながら、お客様に価値提供していくことを目指しているので、それがより良くなっていることが測れるのは、すごくポジティブなことです。 なので、「Findy Team+」を導入してみて、さらにスピード感ある開発ができているかを確かめられるようにしよう、という流れになったんです。

記事画像②

実現したテンポの良い開発を、「Findy Team+」で振り返る

ーーご活用いただいている「Findy Team+」を用いて、実際に「Plasma」チームのデータを見ていきたいと思います。こちらは今年4月から9月末までのデータで、6月ごろからデプロイ頻度(棒グラフ)が右肩上がりに増加し、変更リードタイム(折れ線グラフ)も安定して下がっています。こちらに関する実感や、取り組み内容について教えていただけますか?

【2022年4月~9月末までの「Plasma」チームにおけるデプロイ頻度と変更のリードタイム】

西島: とても実感に沿うデータだと思います。取り組みとしては、5月あたりから大きく新しい開発を始めていて、その中でまずCI/CDなど、早くデプロイできるようにするための仕組みを作っていました。

同時に、チームでの振り返りのタイミングで、やりづらかった箇所等について話すようにしていました。例えば、開発がレビューで止まってしまっていた、手戻りが多くなっていた、などですね。

振り返りをしながら、特にレビューの仕方については、意識して取り組むようになり、段々と良くなっていきました。なので、CI/CDへの取り組みとチームでの振り返り、この2つが上手くいっていたのかなと思います。

ーー続いてこちらは、平均プルリククローズ時間やプルリク作成数のグラフです。プルリククローズ時間(折れ線グラフ)は、5月頃までは50~100時間でしたが、直近は24時間ほどに落ち着いています。プルリク作成数(棒グラフ)も、5月頃までは約10件だったのが、直近では約15件と1.5倍に増えています。こちらのご実感はいかがですか?

【2022年4月~9月末までの「Plasma」チームにおける、プルリクエストの平均クローズ時間・プルリクエスト作成数】

西島: 6月くらいからエンジンがかかってきた感じがあり、直近1~2ヶ月くらいで働き方の型が出来上がってきた実感があります。

ーープルリク作成からレビューまでの平均時間を見ると、直近では平均4~5時間になっており、当日中にレビューされているようにみえます。レビューの体制に関して、どのような取り組みをされていますか?

西島: チームの振り返りで出てきた内容としては、プルリクを出したらSlackで声を掛ける、レビュアーを指定するなどですね。すると今度は、レビュアーを誰に指定したらいいかわからないという話が出て、チームをレビュアーにしようとか、そういった仕組み等が決まっていきました。

さらに、レビューすべきプルリクがあれば、Slack通知が来るような設定を徹底するなど、リアルタイムに気づけるような取り組みが段々と進んでいきました。

また、レビューをするときに、やはりコンテクストが共有されていないとレビューが難しくなります。なので、ペアプロやモブプロ等を導入することによってコンテクストが共有されるようにすることで、チーム全員のシステムに関する理解を深めていきました。

広木: 9月頃の状況は、正にテンポ良く、心地よく開発が行えていることを体感できている状態だと思います。このような状況をチームが経験できたことは強みになるし、それが可視化されたことで、自分たちが改善したことへの気づきも大きくなります。ここまでデータが綺麗だと、ちょっと嘘くさいぐらいですが(笑)、素晴らしいと思います。

こうしたテンポの良い開発が大手の会社でもできるようになっていく、西島さんとこういった環境作りに取り組んできたので、これは1つの成果です。そして、それが可視化されて、チームをポジティブに運営できることも良いことだと思います。今後、より広い範囲に広げていきたいですね。

【記事画像③】DS 00221.jpg.jpg のコピー

デジタルならではの、新聞の新たな価値を提供していく

ーーチームとして、今後どのようなことに取り組んでいきたいと考えていますか?

西島: ここからさらにテンポを上げていくというよりは、問題の質が変わっていったときに、同じようにやれるかということが、ここからのチャレンジかなと思っています。

これまでに多く取り組んできたのは、現状を新しい仕組みに置き換えていく移植系の仕事でした。そうした仕事では、道のりは謎に満ち溢れているけれども、ゴールはそれなりにはっきりしている問題に取り組むことが多かったんですね。

ですが、これからは置き換えたものをグロースさせていくという、より難しい問題に取り組んでいくことになると考えています。その中でも、これまでと同じようにチーム内で助け合いながら、意思を持ってテンポの良い開発を続けていくことが、これからの挑戦だと思っています。

広木: 今出ている「Findy Team+」のスコアは、まだスクラムのタイムスロットという檻に閉ざされた中での限界ラインであって、開発のテンポという意味では、さらにもう1段、2段と進化できると考えています。

それは、決して無理をするのではなく、例えばどうチケットを切っていくか、開発単位をどう細かくしていくかなど、安全性とテンポを両立する開発の仕方を見つけ出していく、つまりチームとしてより創意工夫が求められる、「そろそろ守破離の“離”だよね」というゾーンに入っていくことが重要だと思っています。

そして、「朝日新聞」というジャーナリズムのコアにあるものを、テクノロジーを用いて進化させ、お客様である読者の方々にとって、より価値のある形に変換していくための土台が整ってきたタイミングでもあります。ここからは読者の方々に、どんなものを提供したらより喜んでいただけるのか、それを考えて提供していくフェーズになります。

今までは、記者の方々が紙面を作ることにエネルギーを割いていて、デジタルはその付属品でした。でも、デジタルであれば、紙に印字するという制約からどんどん解き放たれて、見せ方も変えていけるし、提供の仕方も変えていくことができます。

今の若い読者の方々にも、もともと新聞が担っていた価値や、新しいバリューの中での新聞の面白さを、もっと伝えていきたい。西島さんと一緒に、そういうところに挑戦していきたいですね。

求めるのは、記者や読者と向き合い開発できるエンジニア

ーーそれでは最後に、お二人が一緒に働きたいと思うエンジニア像について教えてください。

西島: 今まで私たちは、レガシーなシステムと向き合ってきました。これからは、より記者や読者の方々と向き合うことが重要なフェーズに入ってきたと感じています。記者が表現したいものと、読者の方の目線をうまく取り持つような、そういう感覚を持って開発ができる方に、ぜひ来ていただきたいなと思っています。

広木: 朝日新聞社には、多くのチャレンジが眠っています。 toCサービスの中では、実はかなりのトラフィックを持つWebサイトです。 これからはWebサイト的なものから、Webサービス的に変えていく必要があると考えています。たとえば、お客様毎にパーソナライズしたり、よりインタラクティブにしたりと価値をより高めていくということです。 大量のトラフィックのあるサービスをつくっていくことは、技術的な楽しみもたくさんあると思います。それに加えて、過去の記事を含め、膨大な自然言語コーパスなどの伝統的な新聞社ならではの資産もたくさんあります。

技術的なチャレンジに向けて必要な、取り扱いの難しい部分は我々がしっかりとマイナスをゼロにするところまでやり切ります。なので、そこで得たプラスの側面をバリューにしていくところを本気でやりたい、このアセットを利用してお客様に価値を届けることに挑戦したいと考える人と、ぜひ一緒に働きたいと思っています。

ーー広木さん、西島さん、ありがとうございました!

※朝日新聞の採用ページでは、Webフロントエンジニアをはじめ様々な領域でエンジニアを募集しています。 https://www.asahishimbun-saiyou.com/information/career

※「Findy Team+」のサービス詳細は、以下よりご覧いただけます。 https://findy-team.io/service_introduction

関連記事

技術負債解消とオンボーディング設計が秘訣?ココナラが目指す開発生産性向上と組織拡大の両立

技術負債解消とオンボーディング設計が秘訣?ココナラが目指す開発生産性向上と組織拡大の両立

インタビュー
テックブログ
Scrum@Scaleを導入し、チームの横連携を強化。デプロイ頻度を保ちながら組織拡大を目指すグロービスの取り組み

Scrum@Scaleを導入し、チームの横連携を強化。デプロイ頻度を保ちながら組織拡大を目指すグロービスの取り組み

インタビュー
テックブログ
組織拡大を見据えて開発組織の改善意識を醸成。コミュニティオによる定量指標の活用

組織拡大を見据えて開発組織の改善意識を醸成。コミュニティオによる定量指標の活用

インタビュー
テックブログ
Four Keysの自前取得からサービス導入で自動化。高信頼性組織を目指すセンシンロボティクスの取り組み

Four Keysの自前取得からサービス導入で自動化。高信頼性組織を目指すセンシンロボティクスの取り組み

インタビュー
テックブログ

エンジニアリング組織の
パフォーマンスを最大化

Findy Team+はGitHubやJiraなど
エンジニア向けツールを解析することで、
エンジニアリング組織の生産性を可視化するサービスです。