JIRA+Bitbucket Server+SourceTreeを使ってみる
前編ではGitを使った開発の敷居を下げるサポートツールとして、Bitbucket ServerとSourceTreeを紹介しました。ここからは、これらのサポートツールを加えたバージョン管理システムとプロジェクト管理システムの連携によって実装作業がどのように効率化されるかを、実際に少人数のアジャイル開発を行っている現場の開発作業の実例を交えて説明します。まずは、実装準備フェーズです。
0. 今やるべき課題を見つける
始めに、課題の一覧やカンバン、スクラムボードから次に手を付ける課題を選び、課題を表示します(図1)。
1. JIRAチケットからトピックブランチを切る
トピックブランチを切り、選択したJIRA課題を解決する実装を行います。JIRA課題の開発セクション(課題画面右下)にある「開発」→「ブランチを作成」をクリックすると、Bitbucket Serverのブランチ作成ページが表示されます。Bitbucket Serverから課題をたどれるように、課題キー(ここではGY-1)をブランチ名に残しておきましょう。ブランチの作成が成功すると、新規に作成されたブランチのファイル一覧画面が表示されます。JIRA課題からBitbucket Serverへの移動を意識せずにブランチを切ることができます。
2. SourceTreeでブランチをチェックアウト
次に、サーバ側に作成したブランチをローカル環境にチェックアウトします。SourceTreeのツリー画面で、リモート階層以下にあるブランチGY-1を右クリックし、チェックアウトを選びます(ブランチが表示されない場合は、メニューから「リモートのステータスを更新」を実行します)。チェックアウトしたファイルの場所は、サイドバーでリポジトリを選択し、ツールバーのExplorer(Windows環境の場合)をクリックすると取得できます。
これで実装の準備が整ったので、ローカル環境で実装を行っていきます。
3. ソースコードを編集&コミット
ソースコードをIDEやエディタで編集していきます。意味ある変更ができたら積極的にコミットします。コミット一覧画面上の「コミットされていない変更があります」を選択すると、未コミットの変更内容が表示されます。コミット対象に含めたいファイルにチェックを入れると「Indexにステージしたファイル」に項目が移動します。差分表示画面の「Hunkをステージへ移動」ボタンで、ファイル内の変更の一部のみをコミット対象とすることもできます。
コミットは、「ファイルステータス」タブでコミットメッセージを入力し、コミットボタンを押すと実行されます。サーバにプッシュされたコミットは、JIRA課題画面にすぐに反映されます。
課題の要件を満たす実装を終えたら、次に、レビューの準備のためにプルリクを作成します。
4. Bitbucket Server:プルリク発行
SourceTreeのブランチを右クリックして表示されるメニューから、プルリクエスト作成画面へ移動します(JIRA課題からもプルリクを発行できます)。プルリクエスト作成画面では、このブランチで行った作業内容を記述し、レビューを依頼するメンバーを指定して、「作成する」ボタンをクリックします。これでオンラインレビューの準備が完了しました。
もしマスタ側と衝突が発生していれば、プルリク画面に目立つ形で警告表示されます。その場合は、SourceTreeでマスタを選択して作業中のブランチにいったんマージし、衝突個所を修正します。プルリク画面をリロードすると、衝突が解消されたかどうかがわかります。
5. Bitbucket Server:レビュー実施
プルリクエスト全体に対するコメントのやりとりや、ソースコードが差分表示されたビューへのインラインコメント機能を通してレビューを行います。私たちはBitbucket Serverでオンラインレビューした後に、必要があればFace-to-Faceで追加レビューします。オンラインレビューで問題点、問題個所が明確になっているので、Face-to-Faceレビューに必要な時間はわずかです。
6. Bitbucket Server:プルリクの承認
レビューメンバーは、プルリクエストに対して最終的に承認または却下の意思表示を行います。最後に承認したメンバーが「マージ」ボタンを押して、マージを行います。これで実装作業の1サイクルが終了します。
チーム開発では、このサイクルを複数個同時に走らせることになりますが、このプロセスは破綻することなく機能します(図2)。
最後に特殊なプルリクについて紹介します。私たちは実験や調査のために、最終的にマージを目的としない、一般にWIPプルリクと呼ばれるプルリクを作成することがあります。このプルリクを使って、実装前に調査結果について議論したり、実装方法について助けを求めたりといった使い方をします。軌道修正を早めに行える、衝突の発生を早めに知ることができるなどのメリットがあります。
まとめ
Gitによって手軽になったブランチやマージを活用することで、複数のチーム開発者が迅速かつ安全に並行開発できます。さらに、Bitbucket Serverでプルリク時にオンラインコードレビューを行うことによって、大幅なレビューコストの削減、品質向上が得られます。実装工程で蓄えたコミットコメント、レビューコメントなどの資産は、問題発生時の原因追跡にもたいへん効果があります。ソフトウェア開発のみならず、コードレビューを含めた効率の良いチーム開発が必須となる、たとえばハードウェアのフロントエンド設計などの分野でも有効でしょう。
次回は、開発中に蓄積したチケットとブランチ、コミットとの紐づけ、細かなコミットを活かして、現行サービスに問題が発生した場合に、いかに解決するかについて説明していきます。
日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!
- リックソフトJIRAデモ環境
- https://www.ricksoft.jp/demo/