自社のプロジェクト管理プラットフォームを使って、どのように自社のプロジェクト管理プラットフォームを構築しているかを学びましょう!
あなたは、BlueがどのようにBlueを構築しているかの内部ツアーに参加しようとしています。
私たちBlueでは、自社の製品を使用しています。
これは、私たちがBlueを使ってBlueを構築していることを意味します。
この奇妙に聞こえる用語は、しばしば「ドッグフーディング」と呼ばれ、1980年代のMicrosoftのマネージャーであるポール・マリッツに起因しています。彼は、Microsoftの従業員に自社製品を使用するよう促すために、件名が*「自社製品を使う」*というメールを送ったと報告されています。
自社のツールを使ってツールを構築するというアイデアは、ポジティブなフィードバックサイクルを生むことです。
自社のツールを使ってツールを構築するという考えは、ポジティブなフィードバックサイクルを生み出し、数多くの利点をもたらします:
- 実際の使いやすさの問題を迅速に特定するのに役立ちます。 私たちは毎日Blueを使用するため、ユーザーが直面する可能性のある同じ課題に直面し、それに対処することができます。
- バグの発見を加速します。 内部使用は、顧客に届く前にバグを明らかにすることが多く、全体的な製品品質を向上させます。
- エンドユーザーへの共感を高めます。 私たちのチームは、Blueの強みと弱みを直接体験し、よりユーザー中心の意思決定を行うのに役立ちます。
- 組織内の品質文化を推進します。 誰もが製品を使用することで、その優秀さに対する共通の利害関係が生まれます。
- イノベーションを促進します。 定期的な使用は、新機能や改善のアイデアを引き起こし、Blueを最前線に保ちます。
専任のテストチームがいない理由について以前にお話ししましたが、これはさらに別の理由です。
システムにバグがある場合、私たちはプラットフォームの常時使用によってほぼ常にそれを見つけます。そして、私たちはおそらくBlueのトップユーザーの一人であるため、それらが非常に迷惑であることを明らかに感じるため、修正するための強制的な機能も生まれます!
このアプローチは、製品への私たちのコミットメントを示しています。自らBlueに依存することで、私たちは顧客に私たちが構築しているものを本当に信じていることを示しています。それは単なる販売製品ではなく、私たちが毎日依存しているツールです。
主なプロセス
私たちはBlueに「Product」と名付けたプロジェクトを持っています。
すべての製品開発に関連することはここで追跡されます。顧客のフィードバック、バグ、機能のアイデア、進行中の作業などです。すべてを追跡するために1つのプロジェクトを持つというアイデアは、より良いチームワークを促進します。
各レコードは機能または機能の一部です。これは「もし...だったら素晴らしいだろう」という段階から「この素晴らしい新機能をチェックして!」という段階に移行する方法です。
プロジェクトには以下のリストがあります:
- アイデア/フィードバック:これは、チームのアイデアや電話やメールのやり取りに基づく顧客のフィードバックのリストです。ここにアイデアを自由に追加してください!このリストでは、これらの機能をまだ構築することを決定していませんが、さらに探求したいアイデアを定期的にレビューしています。
- バックログ(長期):これは、アイデア/フィードバックリストから、Blueに良い追加になると決定した機能が移動する場所です。
- {Current Quarter}:これは通常「Qx YYYY」と構成され、四半期の優先事項を示します。
- バグ:これは、チームまたは顧客によって報告された既知のバグのリストです。ここに追加されたバグには自動的に「バグ」タグが追加されます。
- 仕様:これらの機能は現在仕様が決定されています。すべての機能が仕様やデザインを必要とするわけではなく、機能の予想されるサイズやエッジケースおよび複雑さに関する自信のレベルによって異なります。
- デザインバックログ:これはデザイナーのためのバックログで、進行中のものが完了したときにこのリストから任意のアイテムを選ぶことができます。
- 進行中のデザイン:これはデザイナーが設計している現在の機能です。
- デザインレビュー:これは、現在レビュー中の機能のデザインがある場所です。
- バックログ(短期):これは、今後数週間で作業を開始する可能性のある機能のリストです。ここで割り当てが行われます。CEOとエンジニアリング責任者が、過去の経験と作業負荷に基づいてどの機能をどのエンジニアに割り当てるかを決定します。チームメンバーは、現在の作業が完了したら、これを進行中に引き込むことができます。
- 進行中:これは現在開発中の機能です。
- コードレビュー:機能の開発が完了したら、コードレビューが行われます。必要な調整がある場合は「進行中」に戻され、開発環境にデプロイされます。
- 開発:これは現在開発環境にあるすべての機能です。他のチームメンバーや特定の顧客がこれをレビューできます。
- ベータ:これは現在ベータ環境にあるすべての機能です。多くの顧客がこれを日常のBlueプラットフォームとして使用し、フィードバックを提供します。
- 本番:機能が本番に達すると、それは完了と見なされます。
時には、機能を開発する際に、特定のサブ機能が最初に予想したよりも実装が難しいことに気づき、顧客にデプロイする初期バージョンではそれらを行わないことを選択することがあります。この場合、"{FeatureName} V2"という形式に従った名前で新しいレコードを作成し、すべてのサブ機能をチェックリスト項目として含めることができます。
タグ
- モバイル:これは、機能がiOS、Android、またはiPadアプリのいずれかに特有であることを意味します。
- {EnterpriseCustomerName}:特定のエンタープライズ顧客のために機能が構築されています。各機能には通常、追加の商業契約があるため、追跡が重要です。
- バグ:これは修正が必要なバグを意味します。
- ファストトラック:これは、上記の完全なリリースサイクルを経る必要がないファストトラック変更を意味します。
- メイン:これは主要な機能開発です。通常、主要なインフラ作業、大きな依存関係のアップグレード、Blue内の重要な新モジュールに予約されています。
- AI:この機能には人工知能コンポーネントが含まれています。
- セキュリティ:これは、セキュリティの影響をレビューする必要があるか、パッチが必要であることを意味します。
ファストトラックタグは特に興味深いです。これは、私たちの完全なリリースサイクルを必要としない小規模で複雑さの少ない更新に予約されており、24〜48時間以内に顧客に出荷したいものです。
ファストトラック変更は通常、コア機能を変更せずにユーザーエクスペリエンスを大幅に改善できる軽微な調整です。UIのタイポを修正したり、ボタンのパディングを調整したり、視覚的なガイダンスのために新しいアイコンを追加したりすることを考えてみてください。これらは小さな変更ですが、ユーザーが私たちの製品をどのように認識し、対話するかに大きな違いをもたらすことができます。また、出荷に時間がかかると非常に迷惑です!
私たちのファストトラックプロセスは簡単です。
これは、メインから新しいブランチを作成し、変更を実装し、各ターゲットブランチ(Dev、Beta、Production)に対してマージリクエストを作成することから始まります。レビューのためにプレビューリンクを生成し、これらの小さな変更が私たちの品質基準を満たすことを確認します。承認されると、変更はすべてのブランチに同時にマージされ、環境を同期させます。
カスタムフィールド
私たちの製品プロジェクトには多くのカスタムフィールドはありません。
- 仕様:これは、その特定の機能の仕様が記載されたBlueドキュメントへのリンクです。これは常に行われるわけではなく、機能の複雑さによります。
- MR:これは、私たちがコードをホストしているGitlabのマージリクエストへのリンクです。
- プレビューリンク:主にフロントエンドを変更する機能については、各コミットの変更を含むユニークなURLを作成できるため、変更を簡単にレビューできます。
- リード:このフィールドは、どのシニアエンジニアがコードレビューの責任を持っているかを示します。これにより、すべての機能が専門家の注意を受け、質問や懸念に対する明確な連絡先が常に存在します。
チェックリスト
私たちの週次デモでは、議論されたフィードバックを「フィードバック」と呼ばれるチェックリストに追加し、機能の主要なWBS(作業分解構造)を含む別のチェックリストも作成します。これにより、何が完了していて何がまだ未完了であるかを簡単に把握できます。
結論
これで終わりです!
私たちは、時々人々が私たちのプロセスがどれほど簡単であるかに驚くことがあると考えていますが、私たちはシンプルなプロセスが、理解しやすい過度に複雑なプロセスよりもはるかに優れていると信じています。
このシンプルさは意図的です。私たちは敏捷性を保ち、顧客のニーズに迅速に対応し、チーム全体を整合させることができます。
Blueを使ってBlueを構築することで、私たちは単に製品を開発しているのではなく、それを実践しています。
次回Blueを使用するときは、私たちが構築した製品を使用しているだけでなく、私たちが毎日個人的に依存している製品を使用していることを思い出してください。
それがすべての違いを生み出します。