メインコンテンツまでスキップ

箕浦 彩香

Lightning Review (以下、LR)開発チーム、入社4年目の箕浦です。
年末年始にしっかり食べて寝たら、2キロも体重が増えてしまいました
例年より皮下脂肪がしっかり付いた気がするので、ダイエット頑張らないとと毎日思っています…笑

さて今回は、次のバージョンアップでリリース予定の LR 2.5 に搭載される新機能「ScriptEditor」について紹介します!

新メンバ加入時にだけ行うレビューファイルのテンプレートへのメンバ追加、特定の案件でしか使わない特殊なフィルタや、品質分析のための一時的な指摘情報の集計といった、レビューファイルに対して年に数回あるだけの操作や一時的にしか使わない操作などで、手作業は面倒だから自動化したいと思ったことはありませんか?
自動化するための手段として、LRの拡張機能を自分で開発するという方法もありますが、頻繁に使わない機能を作成するにはハードルが高いかもしれません。

ScriptEditor では LR を操作するためのスクリプトの記述・実行ができるため、LRに関する面倒な手作業を、スクリプトを書くことでボタンひとつで実行できるようになり、業務を効率化できます。
LR の拡張機能で利用できるすべての API を ScriptEditor でも同様に利用でき、インテリセンスが効いて候補が表示されるため、APIに詳しくなくても、スクリプトの記述は簡単です。
さらに、スクリプトはテキストファイルであるため、作成したスクリプトをチームメンバと共有することも手軽にできます。

例として、プロジェクトで利用しているすべてのレビューファイルのテンプレートに、新しく業務配属されたメンバをメンバ一覧に一括で追加するスクリプトを実行する様子を示します。

ScriptEditorのデモのgif画像

上記の Gif 画像内で実行しているスクリプト("テンプレートファイルにメンバを一括追加.csx")を以下に示します。

// 以下に追加したいメンバ名を設定
var memberNames = new [] {"近藤"};

// 以下にメンバを追加したいテンプレートファイルがあるフォルダを設定
var templateFolder = @"C:\Git\XXX\Docs\エンジニアリング\Current\07_ピアレビュー\Templates";

var directoryInfo = new DirectoryInfo(templateFolder);
var files = directoryInfo.GetFiles("*.revx");
var service = App.GetReviewFileService();
foreach(var file in files)
{
var review = service.OpenReview(file.FullName);

foreach(var memberName in memberNames)
{
// メンバ追加
var newMember = review.ReviewSetting.AddMember(memberName);
newMember.Reviewee = true;
newMember.Reviewer = true;
newMember.Moderator = true;
}

// 保存して閉じる
service.SaveReview(file.FullName, review);
service.CloseReview(review);
}

ScriptEditor を利用すれば、お手軽に LR の操作を自動化できます!
LR 2.5 をリリースしたら、ぜひ使ってみてください!

角谷 健太

Lightning Review (以下、LR)開発チーム、入社2年目の角谷です!
今更感がありますが、最近になってリングフィットアドベンチャーを買いました。
毎朝30分ほどやっているのですが、起きてすぐやると体がポカポカするのでいい感じですね💪
ちなみに身体がなまりになまっていたので、毎日筋肉痛と戦っています。イテェ~!

今回は、次のバージョンアップでリリース予定の LR 2.5 に搭載される新機能「LRMerge」について紹介します!

Gitにレビューファイルを格納する場合、複数のユーザーが同じレビューファイルに対して編集してコミットします。
その際にコンフリクトが発生すると、手動で解消してからコミットし直す手間がかかっていました。
LRMergeを利用することで、そのような手間を解消し、他の格納物と同じ管理ができるようになります!

レビューファイルに対するマージツールとして Git に LRMerge を設定すると、レビューファイルがコンフリクトした際に自動でマージを行います。
例えば、Git に格納されたあるレビューファイルに対して、AさんとBさんがそれぞれ指摘を1件追加してコミットした場合、LRMerge がAさんとBさんのそれぞれの編集後のレビューファイルをマージし、最終的に2件の指摘が追加されたレビューファイルをコミットします。
複数のユーザーが同じレビューファイルを編集してコミットしても、それぞれのユーザーの変更を自動でマージできるため、手動で解消する手間なく Git 上のレビューファイルを編集できます。

LRMergeのデモのgif画像

また、同じ指摘の同じフィールドに対してコンフリクトが発生した場合は、自身または相手の変更を採用し自動で解消します。
コンフリクトをどのように解消したかは、以下のようなマージ実行時のログで確認できるため安心です!

LRMergeのログの画像

以上のように、LRMerge を利用すればレビューファイルを手間なく Git 管理できます。
LR 2.5が登場したら、ぜひ使ってみてください!

小島 優介

Lightning Review 開発チームでプレイングマネージャーをしている小島です。

私事ですが、IT技術者向けの月刊誌「Software Design」で連載記事を執筆しています。
連載のテーマ名は「ハピネスチームビルディング」で、チームの皆が主体性を発揮して成長するための様々な知見を紹介しています。
2022年4月号から連載していまして、半年分の記事をWeb上でも公開しました。
以下の記事タイトルの中に、もしも興味のあるものがあれば、読んで参考にしていただけると幸いです。

  1. リモートワークのつらさを共感して楽しいに変える
  2. メンバー間で活発に議論する朝会にしよう
  3. ファシリテーターを皆に任せて楽しい振り返りに
  4. コーチングプログラミングで楽しく成長する
  5. 分報で各自の作業を可視化して皆で協力し合う
  6. 新しいものを試行する風土を作る

ちなみに本誌掲載時は、下図のように楽しそうな雰囲気のイラスト付きでカラー掲載してもらってます。
素敵なイラストをご用意してくださった編集部の方々に感謝です。

software-design

新美 真

Lightning Review(以下、LR)開発チーム、入社6年目の新美です!
11月に入ってあったかいものがおいしい時期になりましたね。
こんな時期には、やはりラーメンが食べたくなってしまいます🍜
寒くなくても週3で食べてしまうんですけどね……

今回は、LRを活用してレビューアへの相談事項を管理するTipsをご紹介します。

レビューで見てほしいポイントは独力では作り込めなかった、あるいは不安なポイントであると思います。
そんなポイントをレビューで相談できるようにLRを活用しましょう。
作り込みの最中でもLRを利用して不安なポイントを保存しておけば、よりレビューアの知識を引き出せるレビューとなるはずです。

たとえば、外部仕様の作り込みで不安なポイントを指摘にします。
具体的には、ダイアログのテキストボックスにおいて不適切な文字列を入力された場合に、ダイアログのOKボタンを無効にするか、OKボタンを押下したあとにエラーダイアログを表示すべきかで悩んだとします。
その場合に上記のような不安なポイントを指摘として登録することで、レビューの場ではどのような考え方や判断をして、どちらを採用すると良いのかをレビューアに聞くことができます。

consultation

そして、レビューアに聞いた方針を元に、レビューイがその方針とした理由とともに修正内容を記し、修正済みにステータスを遷移させます。

modified

レビューアは修正内容を確認し、レビューイの理解度も確認した上で確認済みにステータスを遷移させられるため、指導も指摘修正も、どちらも確実にやり切れます。

上記をヒントにしていただき、相談事項をLRでレビューアと共有すれば自分の不明点も解消でき、より質の高いレビューにつながると思います。

実際、私はレビューア・レビューイの両方の立場となった経験がありますが、レビューのポイントを絞って集中して議論できるため、とても効果的に感じました。

ぜひ、試してみてくださいね!

角谷 健太

Lightning Review(以下、LR)開発チーム、入社2年目の角谷です!
10月に入ってから非常に寒くなりましたね🥶
私は年がら年中羽毛布団で寝ているのですが、ついに毛布を引っ張り出しました!
これから本格的な冬にかけて、1枚ずつ布団及び毛布が追加されていく予定です。

今回は、レビューファイルを高速に読み取り可能なライブラリ「LightningReview-ReviewFile」をご紹介いたします!

LRでレビューを実施すると、".revx"という拡張子のファイルに、レビュー記録として指摘や修正状況などが保存されます。
通常、このレビュー記録の情報を取得するには、LRでレビューファイルを開く、またはLRに同梱されたピボット分析ツールが必要です。
しかし、独自の集計ツールを用意して、大量のレビューファイルに対して集計したり、品質分析を自動化したい、といった要望もあると思います。
そんな時に使えるのが、「LightningReview-ReviewFile」です。
例えば、これを使って作成したプログラムを、毎晩自動実行するように設定しておくことで、社内で日々行われている100以上のレビューを対象としてデータ収集し、

  • レビューの指摘が日々どれだけ検出されているかをモニタリング
  • 予定に対して遅れているレビューが無いかをモニタリング

なんてこともできるようになります!

「LightningReview-ReviewFile」はLR開発チームがメンテナンスしているオープンソースソフトウェアです。
このライブラリは、主にレビューと指摘に関する情報を取得でき、1000ファイルのレビューファイルの読み込みが数秒程度と非常に高速に処理が可能です。

具体的には、以下の2つのライブラリがあります。

また、上記のライブラリをコマンドプロンプトやPowerShellから簡単に利用できるコマンドラインツール「ReviewFileToJsonCLI」を公開しています。
こちらは、このリンクからダウンロードできるzipファイルを解凍して、格納されたexeファイルを実行するだけで利用できます。

それでは、「ReviewFileToJsonCLI」の実際の利用例をご紹介します。
このツールでは、フォルダ内に複数格納されているレビューファイルに登録されたレビューや指摘のデータを、JSON形式で出力できます。
下のgif画像では、Windows のコマンドプロンプトにて Lightning Review のファイルが複数格納されたフォルダを指定して実行することで、output.jsonというファイルを出力しています。

output

JSON形式で出力したoutput.jsonは、Excelの機能を利用して表形式に変換できます。
下のgif画像では、上で出力したoutput.jsonをExcelで表に変換して表示しています。
レビューファイルが保持しているそのままのデータを一覧に表示できるため、その後はお好みの形に合わせて分析できます。
このように、JSONファイルを入力に、どの機能に重大度の高い不具合が集中しているか、Excelや独自ツールで分析できます。
取得できるデータはこちらを参照ください。

data_transform

上記はコマンドラインツールを通してレビューのデータを取得する例ですが、「LightningReview.ReviewFile」および「LightningReview.ReviewFileToJsonService」ライブラリはNuGetパッケージとして公開しているため、ご自身で作成したプログラムから直接利用できます!

ライブラリは随時更新しており、つい最近、LR2.0に対応するためにバージョンアップしました(私が担当しました!)。
ぜひ、使ってみてくださいね!