インスピレーションに公開

Notionがチーム連携を加速するために作ったプロダクト管理システム

作成者: Madhu Muthukumar

Notion 前最高プロダクト責任者

約 10分で読めます

ひと晩で数百ものサポートチケットが押し寄せた時に、私たちは限界点が迫っていることを知りました。エンジニアリングが新機能をローンチしたことをサポートが知らなかったため、カスタマーの問合せ対応に一晩中追われることになったのです。

それだけではありません。そのローンチまでの数週間、プロダクトマーケティングは10人以上のエンジニアに対し、毎週リリースノートに記入するよう催促していました。同じローンチを管理するために、異なるチームがめいめいで進捗会議を実施している状態でした。つまり私たちはみんな、コミュニケーションをとろうとして多くの時間を無駄にしていたのです。

成長段階にあったNotionでは、5つのエンジニアリングチームが、複数のプロジェクトを並行して進行していました。でもリリースされているすべての機能、あるいはその理由を把握している人はほとんどいませんでした。チーム間をコーディネートするもっと良い方法を見出さなければ、ビジネスを拡大することは不可能な状態だったのです。

スタートアップの成長には、こうした痛みが伴います。Twitter、Oculus、Robinhood、そしてNotionでも、プロダクトチームが同じ状況に陥るのを見てきました。(そうです、Notionも例外ではありませんでした。)ですから、私たちが自社でどのような解決策を構築したのか、共有させていただこうと思いました。

この記事では、エンジニアリングとプロダクトの最新情報が常にチームに届くよう徹底するために導入したシステムとプロセスについて、詳しく解説したいと思います。ご自身のチームに適切な部分を適用いただけるよう、テンプレートも併せて紹介します。

ベストな方法を標準化する

私がNotionに入社して最初にしたことに、エンジニアやデザイナーに話しかけたことがあげられます。彼らがいつもどのようにプロダクトを構築・リリースしているかを尋ねたのです。正式なタスクやスプリントシステムを使っているチームもあれば、大きなドキュメントを共有しみんなで更新を記録しているチームもありました。

私自身が何度か見てきたことですが、企業が成長するにつれ、チームはそれぞれが異なる習慣を身につけ、仕事の調整が難しくなっていきます。それ自体は悪いことではありません。特にリモートワークの世界では、チームは自分たちにとって一番いいやり方で仕事をすべきです。でもチームが行っている作業に関するコミュニケーションの仕方を、標準化する必要がありました。

でもそれぞれが異なる方法で仕事をしている中で、どうすれば標準化すべきものを特定できるのか? みんなが概ね同じように使っているアイテムを把握し、それを標準化すればいいのです。

Notionのエンジニアリング、プロダクト、デザインの各グループでは、チーム・プロジェクト・タスクの3つのコンセプトを軸としていました(各々の定義は下に記載します)。それぞれの要素を時間をかけて定義し、全社的なドキュメントで体系化し、誰もが同じやり方でプロジェクトを作成できるようにしました。

その時に、標準化しないことに合意を得ることも重要です。例えば私たちは、チームのミーティングのやり方や、使用するモックアップツールには口を出しません。いくつか基本ルールを決めたら、あとはチームが自由に仕事ができるようにします。

すべてのチームを動かすプロダクト管理システムを築く

そうした要素を特定し標準化することは、プロダクトとエンジニアリングのすべてのチームに渡る、あらゆる仕事を整理するのに役立ちました。ですが、この仕事について社内の他の人たちに、彼らがわかる言葉で逐一伝えていく必要がありました。

これを効率的に行うために、4つの部分から成るコミュニケーションシステムを構築しました。

  • チーム: プロジェクトを含む一連のユーザー

  • プロジェクト: タスクに分割でき、個別に完結する一連の作業

  • タスク: 個人に割り当てられた作業アイテム

  • アップデート: 2週間ごとに更新される、各プロジェクトの簡単な概要

エンジニアリングチームの相互連携に役立つ部分もあれば、アップデートのように会社の他部門を動かす部分もあります。それぞれがNotionのデータベースであり、そのすべてがリンクしてシステムを作り上げます。私たちの考えでは、このシステムには4つのレイヤーがあり、各レイヤーが異なるレベルのコンテクストを異なるチームに提供する役割を果たしています。

あなたがお使いのシステムは、おそらく様子が異なるでしょう。それはスプレッドシートや文書フォルダという形かもしれません。あるいはスプリントやマイルストーンで仕事を整理しているかもしれません。手がかりが必要な方のために、下記のリンクでNotionのプロダクト管理システムをテンプレートとして紹介しています。

ではシステムの各部分について、それがどのように構築されているか、どんなオーディエンスに役立つのかを一緒に見てみましょう。

チーム

プロジェクトを組織化するには、まずメンバーを明確にしなければなりません。でもチームのリストを正確に作るのは、見かけよりも難しいものです。ソフトウェアは、組織図のように組み立てられるわけではないからです。ここで作りたいのは、プロダクトを開発しリリースするために実際の仕事をする仮想的なグループです。そこには、エンジニア、デザイナー、プロダクトマーケター、法務担当など、通常は同じチームとみなされないようなさまざまな職務が含まれてくる可能性があります。

こうしたチームを特定するいい方法は、プロジェクト作業をコーディネートするために作られるSlackチャンネルを見ることです。このようなチャンネルは、実際に稼働している非公式なチームを知る手掛かりになります。

このような一覧は必要に応じ、極々シンプルにも、反対に複雑にもできます。Notionの場合は、チーム名、チームメンバー、チームの作業内容の簡単な説明に加え、Slackチャンネルやチーム憲章といった便利な情報を記載しています。

プロジェクト

いくつかチームができたら、それぞれのチームのプロジェクトを特定することができます。Notionの場合は、プロジェクトは開発可能な「もの」であり、同時に会社の人たちが一番大事にしているものでもあります。

これはまた、営業、法務、他のエンジニアリングサブチームなどが気にするところでもあります。こうしたチームはプロジェクトの企画運営自体には参加していないかもしれませんが、いい仕事をするために進捗状況を理解したいと思っているものです。そして、全員が同じレベルのコンテクストを必要としています。

  • 何を解決するためのプロジェクトなのか

  • 現在のステータスは

  • リリースはいつになるのか

  • デザインや意思決定を掘り下げるべきところはどこか

私たちのプロジェクトデータベースは、こうした質問に答えられるよう最適化されています。例えばプロジェクト名、詳細な説明、ステータス、ローンチ日、より詳細なプロジェクトドキュメントへのリンクなどが含まれます。これらの情報をテーブル形式で表示することで、誰でも進行中のプロジェクトのリストを確認して、必要な答えがすぐに得られるようにしています。

以下は私たちがプロジェクト管理表に含めているすべてのプロパティのリストです。

タスク

プロジェクトが適宜特定されると、エンジニア、デザイナー、プロダクトマネージャーはプロジェクトを管理可能なタスクに分類することができます。タスクはプロジェクトチームの日々の業務を示します。作業を行う人がわかるよう具体的に詳しく表示する必要があります。ただしタスクを誰にでもわかるようにしようとすると、かえって曖昧で使えないものになってしまいます。

タスクを行う人たちに理解しやすくするために、優先度、QAステータス、担当エンジニア、関連プロジェクト、その他作業を終えるためにエンジニアが必要なことを、特定のプロパティを使ってフォローします。

週次アップデート

最後のレイヤーは自分がどのプロジェクトに興味があるのかがわからない人に向けたものです。プロジェクトが多数のタスクで構成される場合、アップデートも多数のプロジェクトで構成されます。でも50のプロジェクトのリストをわざわざ読む人は希でしょう。彼らは注目すべき箇所を教えてほしいのです。

週一度のアップデートは組織全体のためのものなので、私自身が平易で読みやすい言葉で書くように心がけています。各エンジニアチームが作成する個々のプロダクト更新情報から内容を引っ張ってきて、これまでのアップデートから簡単に検索して見つけれられるよう、Notionのページにまとめます。これらはメールやドキュメントのフォーマットにすることもできます。

現在私は毎週のアップデートを3つのカテゴリーで構成しています。

  • 納品物: その週に外部カスタマーに向けて納品されたもの全部の単純なリストです。

  • 告知: 進捗中に関するすべての告知事項(良し悪し問わず)です。新しいPRD(製品要求仕様書)やプロジェクトの大幅な遅延などがこれにあたります。

  • 参考: 最近のプロジェクトからの学びや、製品やエンジニアリング組織全般の一般的な変更などです。

でもこの構成は、会社の優先順位が変わるにつれて変わるのが当然と思ってください。Notionでは現時点で、リリース予定のアイテムと、全チームに確実にその予定を認識してもらうことに関心があります。チームが3つの大きな柱を中心に活動しているとしたら、アップデートの内容はその3つの進捗状況を中心にしてもいいでしょう。

自己を強化するシステムは成功する

ここまで話したことはすべて、システムを使う人が誰もいなければ、無用の長物になります。確実に機能させるためには、みんなに価値を理解してもらう必要がありました。

できるだけ彼らの仕事を増やさないようにしながら、全員に同じ認識を持ってもらうことが目標でした。その絶妙なバランスを実現するために、システムのさまざまな部分を相互につなぐ方法をできるだけ多く見つけるようにしました。そうすることにより、ひとつの部分に情報を追加することで他の部分も価値が高まり、参加者もシステム全体に貢献しようという意欲が湧くのです。

例えば、週次アップデートの一番下に、プロジェクト管理表を埋め込んで、そのプロジェクトについてもっと知りたい人が誰でも、簡単に詳しい情報にジャンプできるようにします。このようにして、エンジニアリングチームがプロジェクトのリストを常に最新の状態にしておくインセンティブを創り出しています。

また個々のエンジニアチームも、それぞれのプロジェクト資料にタスクデータベースを絞り込んで埋め込み、関係のあるタスクのみが表示されるようにしておきます。プロジェクトページを開いた人は誰でも、作業がどのように分割され、どれくらい進捗しているかがすぐに確認できます。

他部門のシステムとリンクさせることも、価値を高める策のひとつです。例えばプロダクトマーケティングでは、プロジェクト管理表で外部ローンチの日付を見つけて、ローンチカレンダーに追加しています。

プロダクト作りのための共同体

このプロセスが終わる頃には、Notionのプロダクトとエンジニアリングの全作業を一か所で管理し、最低限のコストで社内に伝えることのできるシステムができ上がりました。私たちのフレームワークを、あなたのチームの参考にしていただければうれしいです。

とはいえ、スタートアップに急激な変化はつきものです。成長するにつれ、私たちがいま使用しているシステムも確実に変わっていきます。あなたのシステムも変わるでしょう。

システムが進化するにつれて見えてきた一番重要なことは、それぞれのチームが必要とする知識や情報を理解することです。プロダクトを作り上げるには、会社全体の協力が不可欠です。一人ひとりのニーズを考えることで、Notionでは規模が拡大しても情報の透明性を保つことができています。

この投稿を共有する


今すぐ試す

Web版またはデスクトップ版で始める

Mac版とWindows版のアプリもあります。

iOS版とAndroid版もご用意しています。

Webアプリ

デスクトップアプリ