自分で説明出来ないコードを書くのをやめてほしい
ハロートナミです。これは日記です。
最近は仕事でコードレビューをする機会が多くある。
レビュー中まれに、指摘に対してよく分からない理屈を展開し、コードの変更を拒まれる事がある。
そういう時は大体、発言の内容や雰囲気から、コードを変更したくないから、何とかして指摘を乗り切ろう。という意思を感じる。
先にコードの変更をしたくない気持ちがあり、結果として意味不明な理屈の展開に繋がっているという流れ。
私はこの根拠がよく分からず、自分の書いたコードに自信があり、否定される事を良く思わない。みたいな感じなのかな?と思っていた。
しかし最近、明らかに微妙なコード……というか、仕様を満たしてないコードに対してもこれをやられたので、どうやら自信から来る行動ではないらしい、という事が判明した。
では何が原因なのか?あらためて考えてみたのだが、これはひょっとすると
コピペとかで持ってきて何となく動いてるコードだから、自分が書いた処理を理解・説明出来ないし、変に触って収拾つかなくなるのが怖い
から、変更を回避したがるのではないか?という仮説に辿り着いてしまった。
プログラマーとして給料を得ているのにそれは……と思ってしまうが、恐ろしい事に現在この考えを否定する材料が無い。こわい
コードのコピペ、それ自体が悪とは言いませんが、その結果自分がメンテ出来ない状態になってるなら明らかに問題がある。そんなものを完成形候補としてレビューに出さないで欲しいが、弊チームではたまにある。
勘弁願いたい。
勘弁願う!と言って勘弁されれば良いのだが、多分そうもいかないと思う。
上記現象はレビューの指摘をトリガーに発生するので、指摘に工夫をして回避出来ないか考える。
で、とりあえず目先の対策として
- そのレビューが何を求めているか明示する。
- 質問をする場合はYES NOで答えられるようにする。
- 修正を求める場合は、修正後の例を具体的に示す。
をやってみる事にした。
そのレビューが何を求めているか明示する。
指摘の頭に「単純に質問です。」とか、「ここは修正して頂きたいです。」とか、書く。
これを書かないと、質問に対していきなり修正が戻ってきたり、修正して欲しいのに屁理屈が戻ってきたりする。
成熟したチームではある程度ハイコンテキストなやり取りが通るのでやらなくても良いかもしれないけど、そうでなければやった方がいいと思う。
もちろん、どういう意図で発言してるのかを明示出来れば別の手段でもOK。
質問をする場合はYES NOで答えられるようにする。
中途半端な質問はやめる。
例えば「ここ何してます?」とか「これどういう意味です?」とか聞いてはいけない。意味不明な屁理屈に発展する可能性がある。
「ここ、xxxしてる認識であってます?」と、「これはこういう意味ですか?」にする。
YES NOで答えられる質問にするのが難しい内容であれば、掲示板形式の指摘ではなく口頭で話す。多分打ち合わせが必要なので。
修正を求める場合は、修正後の例を具体的に示す。
これは微妙に賛否ありそうだが、やる。
レビュー依頼してきた人が「ここ微妙なんで直してw」という指摘で直せるだけの能力があれば、多分最初から微妙なコードは出てこない。
で、具体的なコード例があれば、流石に修正を拒否はしてこない……と思う。
トナミは今まで「コードを書くのはお前の仕事」みたいな気持ちが湧いていたので
「ここはちょっと良く無さそうです。フレームワークのxxxって機能を使えばスッキリしそうなので、やってみて下さい。」みたいな指摘を平気でしてたんですが、やめます。
具体例を出せないぐらい大規模な修正を依頼する場合(そもそも設計が悪いみたなやつ)は、諦めて口頭で話す。打ち合わせが必要。
しばらくはこんな感じでやってみる。
結果につながると良いですが、チームメンバーの教育方針に問題があるのでは?とか色々な雑念もあってイマイチ自信が無い。
チームで活動するのは難しい。結果が出ると良いですね。
おしまい