コードレビューを行うタイミング


15

最近、スクラムプロセスに移行し、スプリント内のタスクとユーザーストーリーに取り組んでいます。コードを頻繁にレビューして、手間を軽減したいと考えています。ユーザーストーリーレベルでそれらを行うことを考えていますが、これを説明するためにどのようにコードを分岐させるのかわかりません。

VSとTFS 2010を使用しており、6人のチームです。

現在、機能の分岐を行っていますが、スクラムの分岐への変更に取り組んでいます。

現在、シェルフセットを使用しておらず、他に利用可能な技術がある場合は実際に実装したくありません。

ユーザーストーリーごとにコードレビューを実装することをどのようにお勧めしますか?

回答:


3

ユーザーストーリーの性質に依存します。

各ユーザーストーリーのブランチを作成すると効果的です。さまざまなストーリーの進行状況が表示されます。必要に応じてそれらを渡すことができます。 。その後、use storyブランチのユーザーストーリーの最後に最終レビューを実行し、コードが標準に達している場合はマージできます。

この方法で作業するには、スプリントの終了時に管理不能なマージタスクを防ぐために、ストーリーをきめ細かくする必要があります。小さなストーリーは、他のユーザーストーリーに取り組んでいる開発者が絶えずプルする必要があるスプリントを通じて、devブランチの安定した更新を可能にします(基本VCM)。

これにより、ブランチを絶えず作成してマージする必要があるプロセスのオーバーヘッドが発生します。これは、場合によっては自動化スクリプトで解決できますが、チームはVCSに非常に快適である必要があります。

スプリントの最後に、開発ブランチを統合/本番などにマージします。

また、私はチームで働いており、誰もが1つのdevブランチで働いています。ユーザーストーリーが完了すると、コードはレビューとテストのためにそのブランチにプッシュされます。


13

コードをレビューする最も効果的な方法は、立ち上がって誰かを見つけて、あなたが開発したばかりのコードについて話し合って議論することです。

コードをローカルでレビューできる人が見つからない場合を除き、ツールを使用しないでください。

ペアにすることで、コードレビューを完全に回避できます。


誰かがペアリングについて言及するのはいつかと思っていました。それと単体テストの間には、多くのレビューがあります。
-JeffO

私はこれを「立ち上がって誰かを解雇し、あなたが開発したコードについて話し合って議論するように頼む」と読みました。私の一日を作ってくれてありがとう。
ウィルモーガン

4

チームの全員がローカルですか?もしそうなら、誰かがやって来て、コードがチェックインされる前に見てみてください。お気に入りの画面共有プログラムを起動して、誰かに電話してください。私は個人的にこれを頻繁に行います。時々、「ねえ、私がやったことを見て!」

私は、誰かが立ち上がってコードをチームに提示するスタイルよりも、このスタイルのアドホックなコードレビューを好みます。アドホックレビューを行うと、ペアリングの多くの(すべての?)利点が不便さなしに得られます。また、「レビュアー」は、非公式の1対1の設定で質問をし、改善を提案する可能性が高くなります。


1

コードレビューはSCRUMの正式な部分ではありませんが、改訂は品質を達成し、プロジェクト/チームを改善するための独立した戦術です。

したがって、SCRUM(または他のアジャイル開発方法論)を使用して、プロジェクトの品質を保証/改善し、スケジュールを維持します。また、適切な戦術は、通常のQA /テストタスクから独立して製品の修正(コードではなく)を行うことです。このアクティビティをチーム/パートナー/クライアント/聴衆の前で行うことができれば、より良いでしょう。

主にTEAMを改善するために、コード(またはその他の特定の)リビジョンを使用し、中長期的に結果を期待する必要があります。これはプロジェクトに影響しますが、長期的にはチームの改善の結果として生じます。

だから、あなたの質問に答えるために、私はあなたがSCRUMからあまりにも多くを押し出そうとしていると信じています。


スクラムは、スケジュールに関して何も言わず、助言もしません。定期的に価値を提供することを期待しています。また、改善するためにプロセスを検査および調整できる瞬間も提供します(必ずしも高速である必要はありません)。
ライアンクロムウェル

はい、スクラムはその一部として完全なスケジュールを作成することを表明していません。それでも、私はスケジュールを参照するときに「計画」を意味し、計画はクライアントが特定の時間に何らかの価値を期待することを意味するため、お金と価値の交換を行うことができます(開発/プログラミングサービスを提供していると考える場合) )。
ロンデイモン

その点で、クライアントには特定の時間(たとえば、支払いをするため)に費やす予算があり、出席するスケジュールがあるかもしれません。私はサービスプロバイダーとして働いているので、この事実を無視することはできません。
ロンデイモン

契約はさておき、スクラムチームはサービスではなく価値を提供します。私たちは、その価値を提供する手段として開発/プログラムします。
ライアンクロムウェル

私はあなたが「価値」と「サービス」フレンドという用語を分離できるとは思わない。また、これは今では非常に話題外だと思います。
ロンデイモン

0

コードをチェックインする前にコードレビューを行うのは明らかではありませんか?

TFSはGITのように機能しないため、ブランチまたはトランクにコードをチェックインするたびに、誰でも利用できます。

これは、チェックイン時にレビューが行われる必要があるため、悪い変更が作業コピー全体に伝播されないことを意味します。


一般に、単体テストは悪い変更を防ぐものだと思います。
ジョンサンダース

@John Saunders:別のタイプの単体テストとしてコードレビューを検討してください。
ギルバートルブラン

@Gilbert:それはできますが、それでは回帰テストのメリットが得られません。私はより多くのより良い単体テストを書くことに時間を費やすことを望みます。
ジョンサンダース

@John Saunders、@ Gilbert Le Blancのコードレビューは別の開発者が実行します。ユニットテストは通常​​、元の開発者が行います。新しい視点は不可欠です。

ユニットテスト(テストリストは事前に合意されています)と自動化されたコード分析、そしておそらくStyleCopのようなスタイル分析ツールと組み合わせることで、幸運に恵まれました。しかし、その後、私はジュニア開発者と仕事をすることはあまりありません。
ジョンサンダース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.