さて、本題に入りましょう。私たちは今、パジャマを着てコーディングしています。これはワークライフ バランスにとっては素晴らしいことですが、コード レビューにとってはちょっとしたゴミ箱のような状況です。同僚のデスクに椅子を転がして、「この機能をちょっと見てもらえませんか?」と言うことができた古き良き時代を思い出してください。そう、そんな時代はiPhoneのヘッドフォンジャックと同じように過ぎ去ったのです。
それで、どういうことですか?私たちは全員リモートにいるので、コードレビューの気分が台無しになってしまいます。それは、友達のインターネット接続が遅いときに協力ビデオ ゲームをプレイしようとするようなものです。イライラするし、面白くありません。でもまあ、私たちはエンジニアです。私たちは問題を解決して生計を立てていますよね?それでは、この混乱に飛び込んで、少しきれいにできるかどうか見てみましょう。
非同期コミュニケーションはリモートワークの恩恵でもあり、同時に呪いでもあります。一方で、それは素晴らしいことです。早起きでも夜更かしでも、最も生産性が高いときに仕事をすることができます。しかし、ここがキッカーです。あなたが朝のコーヒーを飲んでいる間、地球の裏側にいるチームメイトはおそらくレム睡眠の半分に入っているでしょう。そのため、締め切りが迫る前にコードをレビューしてくれることを期待しながら、待ちのゲームをすることになります。それは、ソフトウェアのアップデートが完了するのを待つようなものです。必要なことは分かっていますが、まあ、面倒ですよね。
コードの奥深くまで入り込み、ゾーンに入った後、—BAM!—Slack 通知が届きます。コードレビューのリクエストです。通常、これにより集中力が狂い、ギアや状況を切り替える必要が生じます。しかし、その Slack 通知が実際に役立つとしたらどうなるでしょうか?コーディング環境を離れることなくレビューを処理できるようになったらどうなるでしょうか?
プルフローは、既存のツールとの双方向の統合を提供することで問題に対処します。ワークフローが合理化されるため、Slack 通知さえも中断的な要素ではなく、コーディング プロセスのシームレスな一部になります。
GitHub、Jira、Slack、Jenkins、そして企業が好んで構築する「ワークフローの合理化」を約束する特注の社内ツールを私に始めさせてはくれません。しかし、正直に言うと、皿を回すサーカスの演者のように感じることがよくあります。各ツールには、独自の通知、癖、そして求めてもいない「必須」機能のセットがあります。それは、刃だけを使用するスイスアーミーナイフを所有しているのに似ていますが、「万が一に備えて」コルク栓抜き、つまようじ、ミニドライバーを持ち歩かなければなりません。
コードレビューにおける AI は、もはや単なる美化されたスペルチェッカーではありません。博士号を持ったコードコンサルタントだと考えてください。コンピューターサイエンスの分野で。デシジョン ツリーなどの機械学習アルゴリズムを活用してコードを最適化し、アルゴリズムの改善も提案します。自然言語処理 (NLP) を使用して、コメントの調子を分析できます。これは、リアルタイムでセキュリティ リスクにフラグを立てる、常に警戒するコード レビュー担当者がいるようなものです。
継続的インテグレーションと継続的デプロイメント (CI/CD) はバンドのリズム セクションに似ており、見落とされがちですが、テンポを維持するためには重要です。自動化されたテスト、ビルド、デプロイメントは、最新のコード レビュー ワークフローに不可欠な部分になっています。プル リクエストを送信すると、時計仕掛けのように自動テストが開始され、変更が適切に行われているかどうかについてのフィードバックが即座に提供されます。それは、あなたの作品を他の人が見る前にチェックしてくれる個人的な校正者がいるようなものです。ただし、CI/CD の効果は、作成したテストによって決まることに注意してください。ゴミが入って、ゴミが出る。
コード レビュー プロセスのチャットボットは、常に助けたいと思っているものの、給料を期待していないインターンのようなものです。チケットのステータスの更新、承認されたプル リクエストのマージ、保留中のレビューについてのチーム メンバーへの通知などの日常的なタスクを処理できます。
面倒な作業を引き受ける手がもう 1 組増えたようなもので、より複雑で創造的なタスクに集中できるようになります。ただし、チャットボットは文字通りの考えを持つようにプログラムされていることに注意してください。不適切に構成されたボットは、「コーヒーを作ってくれる」と誤解してエスプレッソマシンを 100 台注文してしまうインターンのように、大混乱を引き起こす可能性があります。
コード レビューの課題に対する独自のアプローチで開発者コミュニティに話題を呼んでいるツール、Pullflow について少し説明しましょう。 Pullflow は、単なる別のプラットフォームではなく、私たちが調査してきた特定の問題の解決策となることを目指しています。
Pullflow は、PR 活動、自動化、会話をすべて 1 か所にまとめます。コードレビューのためのミッションコントロールセンターがあるようなものです。
私たち全員が切望しているのは、コード レビューのための統合された会話主導のワークフローです。人間の専門知識、AI の洞察、自動化がシームレスに統合され、すべてが調和して機能することを想像してみてください。コード、コメント、自動フィードバックが共存する単一のスレッドを想像してください。これにより、リアルタイムのコラボレーションと意思決定が可能になります。
コード レビュー プロセスの中心となるのは人間のレビュー担当者です。私たちは経験、直感、創造性を活かします。 AI が見逃す可能性のあるニュアンスをキャッチし、コードが実行されるコンテキストを理解し、単なる構文やロジックを超えた洞察を提供します。私たちは、いつ楽譜に忠実で、いつ即興演奏をすべきかを知っているジャズミュージシャンです。
AI と自動化は素晴らしいものですが、それらは主役ではなくサポートキャストです。人間的な要素を置き換えるのではなく、それを強化する必要があります。これは、計算を行うために電卓を使用するようなものです。それでも、計算の方法を知る必要があります。電卓は計算をより速く、より正確にするだけです。
私たちが使用するツール (GitHub、Jira、CI/CD プラットフォーム、チャットボット) は、サウンドを生み出す手段です。調和のとれた結果を生み出すには、細かく調整し、よくメンテナンスする必要があります。ツールの選択によってコード レビュー プロセスが左右されるため、賢明に選択してください。
ここで考えさせられることがあります。 Runn.io も、私たちの多くがよく知っている同じコード レビューのボトルネックに直面していました。 Pullflow を統合した後、レビューの待ち時間は、長引く 14 時間から 4 時間に急減しました。これにより、待ち時間が減り、コーディングに多くの時間を費やすことができます。これは誰もが望んでいることですよね。
私たちは片手にキーボードを持ち、もう片方の手でプルリクエストを持って、人間の創意工夫と技術革新の岐路に立っています。コードレビューの未来は、完璧なツールや手法を選択することではありません。それは、人間の最高のスキルと最先端のテクノロジーを組み合わせた総合的なアプローチを作成することです。
コード レビューが単なるチェックボックスではなく、コードと私たち自身の両方を向上させる、協力的で充実したプロセスとなる未来の設計者になりましょう。そして、手作りのコーヒーを飲みながら、お気に入りのバンドの T シャツを着ながらそれができれば、私たちは本当に大当たりです。