Amazon Web Services ブログ

Amazon CodeCatalyst を用いたチームコラボレーション

Amazon CodeCatalyst を使用すると、チームは機能、タスク、バグ、およびソフトウェア構築に関連するその他の作業について共同で取り組むことができます。CodeCatalyst は re: Invent 2022 で発表され、現在( 2023 年 3 月 31日時点)プレビュー中です。

イントロダクション:

このシリーズの以前の記事「Amazon CodeCatalyst を用いたワークフローによるビルド、テスト、デプロイの実現」では、Gene Kim著 The Unicorn Project を読み、主人公の Maxine が新しいチームに加わった後、複雑なソフトウェア開発ライフサイクル (SDLC) でどのように苦労しているかについて説明しました。

彼女が直面する課題(Issue)には次のものがありました

  • 高品質なアップデートを継続的に提供することは複雑で時間がかかる
  • 他者との効率的なコラボレーションが難しい
  • アプリケーション環境の管理は複雑さを増していく
  • 新しいプロジェクトの立ち上げに時間がかかる

このブログでは、この中の 2 番目の項目に焦点を当てて、どのように CodeCatalyst が場所にとらわれずに、色々な人とコラボレーションするのにどのように役立つかを説明します。

前提条件

このチュートリアルに沿って進めたい方は、以下のものが必要です。

チュートリアル

前回の投稿と同様に、

このチュートリアルではModern Three-tier Web Application のブループリントを使用します。

CodeCatalyst ブループリントは、新しいプロジェクトのテンプレートを提供します。「Amazon CodeCatalyst でのプロジェクトの作成」の説明に従ってブループリントを起動できます。 これにより、次の図に示されている Mythical Mysfits サンプルアプリケーションがデプロイされます。

図 1. ヘッダーと 3 つの Mysfits を表示するユーザー・インターフェース

このチュートリアルでは、アプリケーションに簡単な変更を加える必要があると仮定します。法務部門は、“© 2023 Demo Organization.”というテキストを含むフッターを追加したいと考えています。 CodeCatalyst で課題を作成してこの作業を追跡し、CodeCatalyst を使用してソフトウェア開発ライフサイクル (SDLC) 全体にわたる変更を追跡します。

CodeCatalyst では、プロジェクトはスペースに所属する構成となります。スペースは会社、部門、またはグループを表し、プロジェクト、メンバー、および CodeCatalyst で作成した関連するクラウドリソースが含まれます。このチュートリアルでは、次のスクリーンショットに示すように、現在このスペースにBrian Beach と Panna Shettyという 2 人のメンバーが含まれています。 どちらのユーザーも管理者ですが、CodeCatalyst は複数のロールをサポートしていることに注意してください。スペースのメンバーの役割について詳しくは、こちらをご覧ください。

The space members configuration page showing two users

図 2. 2 人のユーザーが表示されているメンバー設定ページ

この後の手順を進めるには以下の設定が必要です(訳者注)
issueメニューを開いた後、ギアアイコンをクリックした先の設定画面で‘“Hide estimates”となっている箇所のチェックを外します

Estimationの詳細についてはこちらをご覧ください

まず、Brian は法務部門からのリクエストを追跡するための新しい課題を作成します。彼はその課題を Panna に割り当てますが、今のところは未処理のままにしておきます。CodeCatalyst は、作業を整理するために複数のメタデータフィールドをサポートしていることに注意してください。この課題はユーザーには影響せず、比較的簡単に修正できます。そのため、Brian はこれを優先度が低いと分類し、労力は非常に小さい (XS) と見積もっています。Brianもラベルを追加したので、法務部門からのリクエストをすべてまとめて追跡できます。これらのメタデータフィールドはカスタマイズ可能であることに注意してください。詳細については、課題の設定をご覧ください。

Create issue dialog box with name, description and metadata

図 3名前、説明、メタデータを含む課題作成ダイアログボックス

CodeCatalyst は Description フィールドのリッチマークダウンをサポートしています。これについては、Markdown のヒントとコツをご覧ください。次のスクリーンショットでは、 Brian が「 @app .vue 」と入力すると、ユーザー、課題、コードのインライン検索が表示され、Panna が後で変更する必要のある関連するコードを見つけるのに役立ちます。

Create issue dialog box with type-ahead overlay

図 4先行入力オーバーレイ付きの課題ダイアログボックスの作成

Panna は新機能の作業を開始する準備ができたら、課題を「未処理」から「進行中」に移します。CodeCatalyst では、ユーザーがカンバンスタイルのボードを使用して作業を管理できます。Panna はボード上で課題をドラッグアンドドロップするだけで、課題をあるエリアから別のエリアに移動できます。チームが小さいので、Brian と Panna は 1 枚のボードを使いますが、CodeCatalyst では、前述のメタデータフィールドでフィルターされた複数のビューを作成できます。たとえば、Sprint-001 というラベルを作成し、それを使用してスプリント用のボードを作成することができます。

Kanban board showing to do, in progress and in review columns

図 5「タスク」、「進行中」、「レビュー中」の各列を表示するカンバンボード

Panna は feature_add_copyright という名前の、変更用の新しいブランチを作成し、課題の説明にあるリンクを使用してソースコードリポジトリに移動します。この変更はとても簡単なので、彼女はブラウザでファイルを編集して変更をコミットすることにしました。より複雑な変更については、CodeCatalyst が Dev Enviroments をサポートしていることに注意してください。このシリーズの次回の記事は、開発環境に特化しています。Dev Environment はクラウドベースの開発環境であり、プロジェクトのソースリポジトリに保存されているコードをすばやく処理できます。

Editor with new lines highlighted

図 6 新しい行が強調表示されたエディター

Panna はフィーチャーブランチをメインブランチにマージするプルリクエストも作成します。彼女はBrianを必須のレビュアーとして挙げています。その後、Panna は課題 をカンバンボードの「レビュー中」列に移動して、チームの他のメンバーが進捗状況を追跡できるようにします。Brian は変更を確認すると、プルリクエストを承認してマージします。

Pull request details with title, description, and reviewed assigned

図 7タイトル、説明、レビューが割り当てられたプルリクエストの詳細

プルリクエストをマージすると、コードの変更時に自動的に実行され、変更をビルド、テスト、デプロイするようにワークフローが設定されます。ワークフローについては、このシリーズの以前の投稿で説明しました。ワークフローが完了すると、チームの Slack チャンネルで Panna に通知が届きます。通知の詳細については、こちらをご覧ください。彼女は production の変化を検証し、問題をカンバンボードの「完了」列に移動します。

Kanban board showing in progress, in review, and done columns

図 8カンバンボードには「進行中」、「レビュー中」、「完了」の各列が表示されています

デプロイが完了すると、ページの下部にフッターが追加されます。

図 9.フッターと 3 つの Mysfits を表示するインターフェース

この時点で課題は完了し、この小さなチームがどのように協力してソフトウェア開発ライフサイクル (SDLC) 全体を進めていったかがわかりました。

クリーンアップ

このワークフローに従っていた場合は、引き続き料金が発生しないように、デプロイしたリソースを削除する必要があります。まず、ブループリントを起動したときに関連付けた AWS アカウントの AWS CloudFormation コンソールを使用して CDK がデプロイした 2 つのスタックを削除します。これらのスタックには mysfitsXXXXXWebStackmysfitsXXXXXAppStack などの名前が付けられます。次に、プロジェクト設定に移動し、プロジェクトの削除 を選択して、CodeCatalyst からプロジェクトを削除します。

まとめ

この投稿では、CodeCatalyst が他の開発者との迅速なコラボレーションにどのように役立つかを学びました。課題を使って機能やバグを追跡したり、コードレビューを割り当て、プルリクエストを管理したりしました。

今後の投稿では、CodeCatalyst がThe Unicorn Project で Maxine が直面した残りの課題にどのように対処できるかについて引き続き説明します。

(この記事は Team Collaboration with Amazon CodeCatalyst を翻訳したものです。)

この記事の著者について

Brian Beach

Brian Beach は開発者およびアーキテクトとして 20 年以上の経験があるAmazon Web Servicesのプリンシパル ソリューション アーキテクトです。 NYU Poly でコンピューター エンジニアリングの学位を取得し、Rutgers Business School で MBA を取得しています。
著書に“Pro PowerShell for Amazon Web Services“があり、数多くのイベントで講演してきました。 Brianは妻と 3 人の子供と一緒にノースカロライナ州に住んでいます。

Panna Shetty

Panna Shetty はAmazon Web Services のシニア ソリューション アーキテクトとして公共部門のお客様を担当しています。 彼女はクラウド ネイティブ テクノロジーを使用して、お客様にスケーラブルで信頼性の高い最新のアプリケーションを設計、および構築の支援をしています。

翻訳はパブリックセクター ソリューションアーキテクト梅田が担当しました。原文はこちらです。