第4話 Looks good to me, approved

プログラマの仕事の一つに”チームメンバーが書いたプログラムをレビューする”というものがある。書いたプログラムをチーム内で評価し悪い部分や危険な部分を指摘、修正することでプログラムの質を上げようという話だ。チームメンバーから一定以上の評価を受けたプログラムだけが最終的に取り込まれ本番に反映されるので、不具合の発生減少にも一役買うことになる。


これは一見良い仕組みにみえるが、時間がかかる場合もあるためつい他の作業を優先してしまい、レビューが滞ってしまう問題を抱えている。


ではなぜ時間がかかるのかというと、原因は主に2つあると考えられる。


プログラムは書き方──スタイルは人によって様々なので、各自のスタイルが合わない場合はどちらにするか、という長期的な議論になりかねないことが一つ。ただ、これはチーム立ち上げ時にあらかじめ合意形成しておけば、ある程度なんとかできる問題だ。


もう一つは、開発者のソフトウェア開発の熟練度が低い場合や、開発対象となる部分の知識に乏しい場合。この場合は単純に指摘量が多く修正にも時間がかかる可能性があり、修正したプログラムにも指摘が入るとさらに時間がかかる……結果、本番に取り込めるようになるまでかなりの時間を必要としてしまうのだ。


そういう人を雇わなければ良いという話もあるかもしれないが、これは方針次第だろう。新卒社員が最初からなんでもうまくこなせるわけではないし、一般社員だって知らないことはできないのが人間というものだ。誰しも初めてはあるのだから、時間がかかるリスクを飲み込んででも開発者に経験を積んでもらう……未来に向けて投資という考え方もできるわけだ。


(そういう意味では恵まれている、か)


自分が書いたプログラムのレビューコメントを眺めると力不足を痛感する。ただプログラムを作るのと、使う人や場所、状況を考えて作るのでは必要な知識の量が異なる……そういう話を耳にして大学在籍時代にある程度は調べたつもりでいたが、やはりまだ足りない知識が多い。だが、力不足を感じられる余裕があるのは人生としては優遇されているほうだろう。


世の中には右も左もわからない新卒社員がいきなり開発現場に放り込まれ、限界まで働かされた結果心や体を病む──そういった法律を無視した世界が存在すると聞く。そんな場所に比べれば天国に違いないのだから。


(……さて、思考が明後日の方向へ行かないうちに作業するか)


簡単に修正できそうな項目についてのコメントに修正する旨を返してゆき、その場でさっさとプログラムを書き換える。


(うっ……)


その中の一つに、反省したくなる指摘があった。


”鉈さん”のコメント:

”こんな英単語はない”


プログラミングでは処理やデータに英単語で名前を用いることが多い。その際なるべく辞書で単語を調べてから名前を付けるようにしていたのだが、今回指摘を受けた単語は”あるだろう”と思い込んでしまっていたものだった。


何事も思い込みで作業してしまうのは良くない。次からは少しでも自信がなければ調べよう、と心に誓いつつ単語を調べ直し修正……ミスを直し終える。


次に、大きめの変更になりそうな指摘の詳細を読んでいく。そのうちの一つをかいつまんで紹介すると、こんな感じだ。


”中二女子さん”のコメント:

”この部分は実行時ではなくコンパイル時に計算可能です。

以下の資料を参考に試してみてください”


コンパイルとはプログラミング言語で書かれたソースコードから機械が解釈可能なプログラムを生成することであり、生成に使うソフトウェアはコンパイラと呼ばれている。コンパイル時──プログラムを生成する際に具体的な計算や処理を行うことは一見不可能なことのように思えるかもしれない。


しかしいくつかの制約を満たせばできることもある。今回指摘されていたのは、一見その制約をみたさないように見えるが、工夫することでコンパイル時に処理が可能になるものだったわけだ。


余談だが、中二女子さんは半年前まで私が現在所属するチームに在籍していた人だ。

現在は新規開発中のゲーム……コードネーム”大都会”開発のために異動したが、今でもこうしてたまにレビューに参加してくださっている。別の階で働いており面識があるわけではないので、性別は知らないし年齢もわからない。


(なるほど……)


こういうコメントは本当に勉強になる。自分の思考の範囲外なので思いつかなかったが、実際にコードを書いて理解してしまえば次からは使えるようになるかもしれないからだ。


とはいえ、新しく知った技術をなんでも使うのも困りもので、状況によってはやりすぎだったり無駄に複雑になってしまうこともある。時と場合によってうまく使い分ける必要があるのだ。しかも、使い分けができるようになるには経験が必要だったりするわけで。


(プログラミングは奥が深いなぁ)


そんなことを考えながら、どうにかこうにかすべての指摘に対応し、再レビュー依頼をチャットで投げてから待つこと数分。


”鉈さん”のコメント:

”Looks good to me, approved.”


(よしっ)


このコメントはレビュー用ツールに標準で登録されている定型文で、”取り込んでいいと思うよ”という合図だ。後はツールを使って変更した部分を本体に取り込めば……


「うっ」


何もなければひと段落だったのだが、そうそううまくいってはくれないようだ。


私が変更した部分は既に誰かの手によって手を加えられていたので、ツールが機械的に統合できずエラーを返してきたのだ。この場合は統合作業を自分で行わなければならず、作業後は挙動の再確認をしたのちに再びレビューをしてもらう必要がある。しかも今回はかなりの部分で作業がぶつかったらしく、盛大に修正しなければならないようだ。


「先は長い……」


そうぼやきながら、私は作業を再開するのだった。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る