
ユーザーに安定したシステムを提供するために、エンジニアに「一番いい開発者体験」を届けるNewsPicksのSREチーム
こんにちは、Communicationsチーム(略してコムズ)の筒井です!
ユーザベースは2021年、エンジニア組織への投資を強化しています。
今回は外部ライターさんによるNewsPicksのエンジニアメンバーインタビューの第7弾をお届けします!
※社名を表す場合は「ニューズピックス」、サービス名を表す場合は「NewsPicks」と表記しています。
◇ ◇ ◇ ◇ ◇
NewsPicksのSRE(Site Reliability Engineering)チームでは、ユーザーがストレスなくアプリを使えるよう、安定したシステムを作ることを目的としています。その目的を達成するため「一番いい開発者体験を作りたい」という理想をもって2021年1月にチームのメンバーとなったウィルソン・エドウィンに、チームの働き方やオープンコミュニケーションの文化について聞きました。
自分から組織の変化を起こせる環境に飛び込んだ
——これまでの経歴や、エンジニアとしての経験を聞かせてください。
フランスのエンジニア学校を卒業したあと、日本のスタートアップ企業に就職しました。小さな組織だったのでエンジニアの人数が少なく、バックエンド開発、フロントエンド開発、インフラ周りまで何でも担当しましたね。
その後、大手企業に転職してサーバーサイドエンジニアを務めました。そこで半年ほどバックエンドやデプロイ周り、インフラ周りの開発をしてからスクラムマスターとなり、チームのメンバーにタスクをアサインしたり、自分でも手を動かして開発に携わったりしていました。ニューズピックスに転職したのは2019年です。
——大手企業から転職した背景には、どんな思いがあったんですか?
1つは、自分から組織の変化を起こせる環境に飛び込みたいと考えていたからです。大手企業よりもニューズピックスくらいの規模感の企業のほうが、組織の変化を起こせる可能性が高いと思ったんですよ。面談でエンジニアメンバーと話した感覚からも、社員から提案して新しいことを実行していく会社だなという印象を受けました。
もう1つは、ニューズピックスではエンジニアが「自由」と「責任」を持って仕事をしていると感じたから。たとえば、各自の労働時間を自分でコントロールできる――いつ働くか、どこで働くかを自分で決められるという働き方に興味を持ちました。
——入社後に実現したいと思っていたことは?
インフラ周りや開発環境の改善をしたいと思っていました。入社した当初はオンラインでの学びの場を提供する「NewsPicksアカデミア」、その後はNewsPicksの開発と、一貫してサーバーサイドの開発を担当していましたが、自分のやりたいことをチームリーダーに1年間伝え続けたんです。
その結果、念願が叶って2021年1月にSRE(Site Reliability Engineering)チームに異動することができました。SREチームに入って何を実現したかったかというと、「一番いい開発者体験」をつくることです。サーバーのコンテナ化などを通して、開発者にとって一番働きやすいシステムを作りたいという思いがあったんです。
安定したシステムをユーザーに提供するため、よりよい開発環境を作る
——SREチームではどんなことをしているか、具体的な業務内容を教えてください。
開発環境の改善や、データバックアップのためのコードを書くこと、アプリのデプロイ自動化、あとはNewsPicksのサーバーをコンテナで動かせるように開発を進めているところです。たとえば開発環境の改善でいうと、ニューズピックスでは2019年からエンジニアの人数が増えてきて、いろいろと課題が出てきました。
エンジニアが開発した機能は、リリースをする前に本番と同じ環境でデプロイしてテストをしています。ですが、実際のインフラのリソースでテストしようと思ったとき、ほかの人がその開発環境を使っていてテストできないことが起こるようになってきて。エンジニアが増え、行動変化のペースが早くなってきている一方で、開発環境が古いままでテストがやりにくくなっているんですね。
組織の構造や時代の変化に合わせて開発環境を進化させるために、テスト環境をどうするか、コストパフォーマンスを考えてどういう作りにすればいいか。開発環境を増やし続けたとしても、コストがかかってしまいます。そうした事情を考えながら、コストパフォーマンスよく効率的にエンジニアの開発環境を改善するにはどうしたらいいのか、バランスよく検討する必要があります。
——SREチームが目標としていることは?
私たちの一番大事な目標は、ユーザーがストレスなくアプリを使えるよう、安定したシステムをつくることです。そのために、SREチームでは日毎のエラー数とシステムの応答速度を集計し、目標数値に収まるように週次で確認しています。
今後はよりユーザ体験の改善にフォーカスするために、UIの速度やアプリのロード時間といったメトリクスを取る取り組みを行っていく計画です。
——そういった業務をどんなプロセスで行っているんですか?
2021年6月に新しいメンバーが1人増えて、現在5人のチームで仕事をしています。
ニューズピックスでは、半年間から3ヶ月スパンで達成すべき会社の目標が掲げられます。その目標をどう達成するかチームで考えてアウトラインを決め、フェーズやタスクに細分化して進めていきます。
業務プロセスはスプリントと似た形なんですが、週次の定例ミーティングで1週間で行う作業のプランニングをして、1週間分のタスクを決めます。実際の作業は基本的に各個人がでタスクを担当しますが、定期的にほかのメンバーとペアワークをすることもあります。私も希望するメンバーと一緒に、毎日1時間ペアワークをしています。
作業を進めていて分からないことや困ったことがあれば、1日1回15分ほど課題を共有し合う時間を設けていますし、週1回のプランニングで相談することもできます。
基本的にこうしたプロセスで業務を進めていますが、2週間に一度振り返りミーティングをして、「どこがよかった」「どこが悪かった」「このプロセスは変えた方がいい」といった意見を出し合い、プロセスの改善をしています。
ニューズピックスではチームごとに働き方や業務プロセスが異なっていて、それらを決めるのはチームの裁量に任されているんです。
——いろいろな業務がある中で、SREチームでのエドウィンさんの役割を教えてください。
チームのミッションや目標を達成するために、自らタスクを取って実装設計をしたり、サーバーをコンテナ化するためのコードを書いたりしています。こうした作業はチームリーダーから割り当てられてするのではなく、リーダーも含めてメンバーそれぞれがどのタスクを担当するか、自分たちで決めてやっていきます。
プランニングミーティングや毎日のスタンドアップミーティングのファシリテーションは私が担当しており、その際にメンバーで議論して、どのタスクを誰が担当するかを決めます。
ニーズに対応したり、目標を達成したりするために何をする必要があるかをベースとして優先度を決め、そこから各自が自分のやりたいタスクを選んでいくような流れです。
——SREチームで課題に感じていることはありますか?
今の課題はセキュリティですね。今期から力を入れて改善を進めています。エンジニアが増えてきたので、システムへのアクセス権限を管理する必要が出てきました。2020年から、誰がシステムに入ることができて、何を変えられるかという権限の管理を始めています。アクセス権限についてはだいたい見通しが立ったので、今後はアプリの脆弱性を見つけて1つずつ改善していきたいと思っています。
あとはNewsPicksのサーバーインフラを柔軟に使えるようにするのも、課題の1つです。サーバーをコンテナ化することで開発環境の管理が自動化できるので、より効率的な開発環境が作れるようになるはずです。
オープンコミュニケーションでシステムの改善点を探る
——SREチームはどんなカルチャーなんですか?
いい意味で自由ですね。誰かに言われたことをやるのではなく、どのタスクを行うか、大きな流れも含めてチームで決めて取り組んでいます。
あと、お互いに助け合う文化ができていると感じます。新型コロナの影響で昨年からWork from Homeという働き方が定着しましたが、チャットツールとビデオ会話を使ってお互い気軽に相談できる状況を作っています。
誰かに相談したいときや困ったことが起きた場合、チャットで「ビデオ会話できますか?」とメッセージを流すとその場で応じてくれることも多く、時間を取ってくれて、問題を解決することができます。
——SREチームやニューズピックス全体のカルチャーで、エドウィンさんが一番魅力を感じているのはどんなところですか?
オープンコミュニケーションですね。ニューズピックスでは機密情報でない限り、すべてのミーティングの議事録が全員に共有されます。Sllackのチャンネルもほとんどがオープンになっているのは、ニューズピックスやUBのすごくいいところだと思っています。
課題も含む社内コミュニケーションをできるだけオープンに共有することで、UBグループのみんなが現状の課題を認識できる状態になっています。何か問題が起こったときにSlack上で議論をしていると、直接そこに関係していなかった人も参加して意見をくれることがあります。それが問題解決のきっかけになることも。
もちろん良いことがあったときも共有されるので、そのことを誰もが知れるようになっています。こうしたカルチャーは本当にいいことだと思います。
あとビジネスサイドをはじめ、エンジニアではないメンバーともオープンに意見が交わされています。エンジニアは編成チームや編集者など、ビジネスサイドが使っているシステムもつくっているので、課題を共有することでお互いどこに困っているかが分かりやすくなるんです。
——オープンコミュニケーションの文化を大事にしながら、ほかのチームとも連携して仕事をしているんでしょうか。
そうですね。ビジネスサイドでいうと、NewsPicksのキュレーションを行っているメンバーや、ユーザーコミュニティを担当しているメンバー、編集者やデザイナーとはよく連携します。アプリ開発チームとも一緒に仕事をすることが多いですね。
SREチームがほかのエンジニアチームにヒアリングさせてもらって、システムの改善点を探したり、開発者のニーズを探ったりすることもあります。
——いま、SREチームにはどんなメンバーがいるんですか?
年齢は30〜40代で、エンジニアとしてはシニアな人が多いです。何かに尖った専門の知識を持っているというよりは、インフラについての幅広いナレッジを身につけたジェネラリストタイプがほとんどだと思います。
私は今年SREチームに入ったばかりですが、これまではサーバーサイド開発を中心に経験してきて、今ではインフラ周りを見るようになっています。ほかのメンバーもサーバーサイド開発やインフラ周りのシステム開発ができるメンバーです。
自ら変化を起こすため、自発的に新しいことに取り組める人と働きたい
——SREチームではどんなキャリア機会が得られると感じていますか?
1つは、最新の技術を触ることができる点かな。デプロイ周りやインフラ周り、セキュリティ周りのコードに興味がある人にはいい機会を提供できると思います。あとは、これまでインフラやシステムをやってきたけど、本当はコードが書きたいという人にも良い環境だと思います。
作業内容としてはインフラに関することが多いんですが、基本的にはすべてのインフラのコードを書くので、手を動かしたい人にはおすすめです。セキュリティ周りの対応にしても、手を動かすことが多いですね。
——SREチームのカルチャーにはどんな人がフィットしそうですか?
自分から変化を起こしたいと思っている人ですね。変化を起こすために、自発的に提案できる人。たとえば、業務プロセスを改善したいのであれば、それを提案していただきたい。新しい技術に興味があって、それが改善につながる技術なのであればぜひ提案してほしいですね。
実際にその技術を導入できるかどうかPoC(Proof of Concept)をつって試すこともできるので、新しいことに取り組みたいと考えている人には良い環境だと思います。
あとは、いい意味で自由に仕事をしたい人。先ほども言った通り労働時間や働く場所もそうですし、業務内容を自分から提案してやりたい仕事を取っていくような積極的な人にもニューズピックスの社風が合っていると思います。
僕たちが大切にしているオープンコミュニケーションをはじめとするカルチャーに共感して、自由に発言し意見を出してくれる人と一緒に働きたいですね。
[TEXT:宮原智子/EDIT:筒井智子]