製品仕様書の書き方

プロダクトマネージャーは、多くの場合、”ビジネス、デザインと技術の間の橋”として記述されています。 “デザインと技術の間の橋”の部分は、高品質の製品を出荷する際に特に重要です:バグフリー、ピクセルパーフェクト、そしてそれはすべての可能なscenariとエッ Bridgeが正常に機能していることを確認するには、設計チームが処理するいくつかの方法を次に示します。

  • 設計者は、製品のすべてのフローを示す包括的なプロトタイプを出荷します。 残念なことに、これはしばしば時間がかかり、まだいくつかのエッジケースを欠場します。
  • 設計者は、機能の主な流れを示すプロトタイプのみを出荷し、開発チームからの質問に利用可能なままになります。 残念ながら、これらの前後は非常に非効率的であり(特にリモートセットアップでは)、設計チームと開発チームの両方から多くの時間を無駄にします。
  • 設計者は、包括的なプロトタイプに加えて、すべての可能なシナリオとエッジケースを一覧表示する適切な仕様書を作成します。 問題は、(1)設計者の貴重な時間は、仕様書を書くのではなく、実際に他の機能を設計することによって費やされる方が良いこと、(2)製品マネージャーと同じ360°の製品ビューを常に持っているとは限らないため、いくつかのシナリオやエッジケースを見落とすことになるため、時間の無駄であることが多いことです。

そのため、成熟した製品チームは通常、製品仕様の作成を製品マネージャーに委託します。しかし、どのように製品仕様書を書く必要がありますか?

私は過去5年間の製品仕様書を書いてきたと私はよく私が働くソフトウェアチームによって評価されている形式を見つけました。 この記事では、私の方法論と製品仕様を書くために使用しているツールについてもっと共有しています。 私はまた、私が使用しているツールと私が念頭に置いている改善のいくつかのアイデアに直面しているいくつかの制限について説明しています。製品仕様で扱う5つの主なトピックは次のとおりです。

:

  1. コンテキストと目的
  2. アーキテクチャマップ
  3. エピックとユーザーストーリー
  4. 受け入れ基準
  5. デザイン、コンテンツ、翻訳

コンテキストと目的

製品の仕様が主にソフトウェアチームを対象としているとしても、彼らはまだ彼らが取り組んでいるものに取り組んでいる理由を知りたいと思っています。 私は、ソフトウェアエンジニアの動機付けの主な要因の一つがインパクトであることを理解するようになりました。 彼らのほとんどは、何百万人ものユーザーが使用している機能に取り組むことを夢見ています。 たとえば、実装した新しいUXが保持率を15%向上させたと聞いたとき、彼らは興奮しています。 だから、彼らが実装する機能についての文脈を与えることが重要です:

  • 私たちは何について話していますか? 製品のどの部分ですか? 現在の状況を理解するために有用である機能の任意の履歴を追加して自由に感じます。
  • 現在の問題は何ですか? 注:解決すべき問題がいくつかあります。
  • 引用されるユーザーからの定性的なフィードバック/動詞はありますか?
  • 表示するデータ(グラフなど)はありますか? このセクションでは、データをより理解しやすくするチャートやグラフを自由に含めることができます。
  • 選択された解決策は何ですか? (いくつかの文章で簡単に説明してください)
  • 他の解決策は考慮されていますか? はいの場合、なぜそれが脇に置かれていますか?
  • 他のソリューションは既に実装されていますか? それはどのように実行されていますか?
  • 目的は何ですか? 私たちが影響を与えようとしているKPIはありますか? これは特に、ソフトウェアチームがデータを適切に収集するために新しいトラッカー/タグ/イベントを実装する必要があるかどうかを理解するのに役立 私は、チームがプロジェクトに夢中になっているのを見て、私や他の誰もがそれを求めずに、リアルタイムで指標に従うようにダッシュボードを設定す

Architecture map

機能の詳細を説明する前に、製品で何が変更され、何が同じままであるかの高レベルの概要を提供することが重要です。 また、まったく新しい製品に取り組んでいる場合でも、アーキテクチャマップは、製品がどのように構造化されているかを理解するために非常に関連

“Architecture map”は、製品の機能(フロー、画面、コンテンツ)とそれらがどのように関連しているかを高レベルの図表現と呼ぶ方法です。 “情報アーキテクチャ”、”フローマップ”、”UXマッピング”などと呼ぶ人もいます。div>

アーキテクチャマップの例(私のクライアントのいずれかのために構築された)、”before/”カラーコード

アーキテクチャマップを描画する方法の公式の方法論はありません。 モバイルアプリケーションでは、通常、フロー、画面、および「画面の一部」(または「ページ内コンテンツ」)を区別するために、上記の凡例に詳述されているように、そまた、カラーコードで再生するのに役立ちます。

また、カラーコードで再生するのに役立ちます。

上記の例では、3色と実線と点線を使用して、作業していたアプリケーションのUX刷新で現在の情報アーキテクチャがどのように更新されるかを説明し (緑:はそのまま、オレンジ:は更新され、赤:は削除されます。solid:は同じ場所にとどまり、点線:は別の場所に移動されます)。 このようにして、エンジニアはアプリケーションのどの部分が変更される可能性があるかを明確な鳥瞰図を持っていました。

理解できるアーキテクチャマップを構築するためのもう一つのヒントは、ナビゲーションのさまざまな部分を明確に区別することです。div>

私のクライアント用に構築されたアーキテクチャマップの新しいバージョン

アーキテクチャマップを持つことは、製品仕様に非常に役立ちます; それはあなたがあなたのユーザーストーリーのそれぞれで話している製品のどの部分を強調表示することができます。

アーキテクチャマップを描画するためにどのツールを使用する必要がありますか? そこに利用可能なそれらのトンがありますが、私のお気に入りのものは気まぐれです(それは視覚的に快適で非常に簡単で、非常に多くの機能で雑Draw.io 過去には-それはGoogleドライブと統合されているので、興味深いですので、あなたはGoogleスライドとGoogleドキュメントで作業する場合、それはそれがいい使 また、JIRAやConfluenceとも統合されています。

アーキテクチャマップ(doとdon’ts、どのツールを使用するか、いくつかの例など)についてもっと知りたい場合は、

情報アーキテクチャへの包括的なガイド:)、Toptalは偉大な読み取りが出ています。

エピックとユーザーストーリー

製品のすべての部分を分解して説明することは、非常に迅速に非常に混沌とすることができます。 製品仕様を書く過去5年間で、仕様を整理して理解しやすくするために私が見つけた最良の方法は、”ユーザーストーリー”に従ってそれらを分解することです。

ユーザーストーリーとは何ですか? アジャイルモデリングによると、ユーザーストーリーは”要件の非常に高いレベルの定義であり、開発者がそれを実装するための努力の合理的な見積もりを”

ユーザーストーリーのアイデアは、ユーザーを最初に入れて、機能を議論するときに排他的にあいまいな&技術的な語彙を使用しないようにす “ユーザーストーリーを読んだ後、チームはなぜ彼らが構築しているものを構築しているのか、そしてそれがどのような価値を生み出すのかを知っています。”

彼らは、ユーザーが古き良き滝の製品開発に反して、議論の中心にあるより良い製品を構築することを目的としています。ユーザーストーリーを定式化する方法は次のとおりです。

ユーザーのタイプ<<<<>。たとえば、クライアントのために描いたアーキテクチャマップの次のサブパートのユーザーストーリーを定式化する方法は次のとおりです。

  • ユーザーストーリー#2: プロファイルセクションの従業員として、パスワードを更新して通知設定を更新できるように設定にアクセスしたいと考えています。
  • ユーザーストーリー#3:プロファイルセクションの従業員として、チャットにアクセスして、アプリの開発者にフィードバックを与えることができます。
  • ユーザーストーリーでどのレベルの詳細をカバーするかは、プロダクトマネージャー次第です。 必要に応じて、

    • User Story#2のように、ユーザーストーリー#2のレベルを深くすることもできます。a: 設定の従業員として、”パスワードの編集”セクションにアクセスして、パスワードを更新できるようにしたい
    • User Story#2。b:設定の従業員として、通知設定にアクセスして、各タイプの通知を受け取る頻度を更新できるようにしたい

    しかし、ご覧のように、これ 私は個人的に問題の物語の”受け入れ基準”(次のセクションを参照)でこれらのscenariをカバーすることを選択しました。

    ユーザーストーリーを整理するために、私たちはしばしば”叙事詩”を使用します。 アジャイルの用語では、”エピック”は、より小さなユーザーストーリーに分けることができる大量の作業です。 私は個人的にエピックを使用して、製品内の同じテーマまたは領域の一部であるストーリーをグループ化します。 例えば、私は”プロフィール”叙事詩の一部として上記の物語をグループ化することを選択しました。 一部の人々は、より単純な構造で、ユーザーストーリーと同じ方法で叙事詩を定式化することを選択します(例えば、 “ユーザーとして、私は自分のプロフィールにアクセスしたい”)

    Acceptance criteria

    ユーザーストーリーに十分な詳細が追加されるように、”acceptance criteria”(”満足の条件”とも呼ばれる)を使用します。

    によると、

    によるとLeadingAgile.com「受諾基準」とは、「ソフトウェア製品がユーザー、顧客、またはシステムレベルの機能の場合は消費システムによって受け入れられるために満たさなければな”

    受け入れ基準では、ユーザーストーリーによって明確に綴られていないすべての機能的特異性をリストする必要があります。 例:

    ユーザーストーリー

    プロフィールセクションの従業員として、プロフィールを編集して、写真、名、姓を更新できるようにしたいと思います。

    Acceptance criteria

    • 私は最初の名前の編集アイコンをクリックしたときにプロファイルの編集画面にいることを考えると、それは編集モードに切り替え、入力に焦点を当て、キーボードを開く必要があります(姓と同じ)
    • 私は写真の編集アイコンをクリックしたときにプロファイルの編集画面にいることを考えると、それはカメラとライブラリの間で選択するように頼む必要があります
    • 私は”保存”をクリックしたときに私の最初の名前を編集していることを考えると、それは読み取りモードに私をリダイレクトする必要があります。私は成功通知が表示されるはずです

    など…

    受け入れ基準を次のように考えてみてください。

    製品が出荷されるために完了する必要がありますチェックリスト。 上記で使用されている指定された/When/Then形式は、合格基準を策定するのに役立つ良い方法ですが、場合によっては使用するのが難しい場合があります。

    デザイン、コンテンツ、翻訳

    製品仕様に最新のデザインがある

    これまで、仕様を書くために使用しているツールについては言及していません。 過去には、Google Docs、Google Slides、およびNotionを切り替えました。 私は本当にそれが提供するすべてのクールな統合(特にInVisionとFigmaのもの)のための概念を使用して楽しんだ。 しかし、私は今、完全にGoogleドキュメントに切り替えました:私は私の製品の仕様をフォーマットする方法でより多くの自由を持つことを好みます。 また、外部のパートナーやクライアントと連携する場合は、Googleサービスを使用する方が便利です。

    製品のビジュアルidが開発チームによって正確に実現されるようにするには、デザイナーが出荷した最新の画面にアクセスできるようにするこ しかし、Google DocsとFigma、InVision、Zeplinなどのデザインツールとの間には実際の統合がないため、画面をエクスポートして製品仕様にコピー/貼り付けていました。

    これは非常に迅速に問題になります:設計者は毎日画面上で反復し、すべてが画面上で合意されている場合でも、デザインライブラリで特定のコンポーネ これにより、私の仕様はほとんどの場合時代遅れになります。そのため、今日は画面の名前のみを使用しています。

    たとえば、profile editionに関するユーザーストーリーが、Figma上で設計された2つの画面についての場合、「Figma画面名:edit-profile-1とedit-profile-2」のみを記述します。もちろん、これは理想的ではなく、開発者や私の仕様を読んでいる他の誰かがいくつかのツールを切り替えることを制約します。しかし、これは今日、製品仕様を書く方法に非効率的なものがあることを示しています。 いくつかの製品を使用すると、統合と同期の問題が発生します。 どのように製品を構築するために必要なすべての情報が古くなることなく、一つの場所に表示されていることを確認するには? (実際には、これはデザインだけでなく、アーキテクチャマップやコンテンツにも適用されます)。あなたもこの問題が発生していると解決策を見つけた場合→、私はあなたのフィードバックを得るために興味があるだろう!

    →あなたはまた、この問題

    誤字を避けるためにコンテンツや翻訳に簡単にアクセスできるようにする

    大量のコンテンツを持つ画面を設計するとき、開発者が簡単にコピー/ペーストする機会を与えるのはうれしいことです。 それ以外の場合は、(1)多くのタイプミスと(2)怒っている開発者になる可能性があります。 コンテンツへのアクセスを許可するには、いくつかの方法があります:たとえば、Sketch、Figma、またはZeplinの設計作業のソースファイルにアクセスできるようにします。

  • コンテンツを仕様に直接コピー/貼り付けることによって(少し乱雑になる可能性があります)。製品が複数の言語で存在する場合は、各翻訳にアクセスすることもできます。 たとえば、配列を使用して、元のコンテンツの翻訳を各言語で表示できます。 翻訳管理の次のレベルは、ローカリゼーションツール(フレーズなど)を使用し、製品仕様に”翻訳キー”のみを追加することです。 しかし、再び、これはあなたの製品仕様と別のツールとの間にもう一つの往復を意味します。
  • コメントを残す

    メールアドレスが公開されることはありません。