同僚プログラマーの機嫌を損ねずにミスを指摘できる“魔法の質問”プログラマーにうまくアドバイスする心理的テクニック【前編】

プログラミングで重視すべき項目や、より良いソースコードをチームで作り上げるこつは何だろうか。エンジニアの実体験を基に解説する。

2022年02月04日 05時00分 公開
[Joseph OttingerTechTarget]

 幾つものメディアやブログが、プログラミングで何を重視すべきかを解説している。例えばネイサン・マーツ氏は、同氏のブログ「thoughts from the red planet」の「Suffering-oriented programming」というエントリ(投稿)で、

  1. プログラムが正しく機能すること
  2. ソースコードが美しいこと
  3. プログラムの処理速度が速いこと

という順番でプログラミングの目標を設定するように勧める。「機能すること、美しいこと、速いこと」はまさに本質を突いた名アドバイスだ。その言葉を初めて見たときから、私は心に刻んできた。

 「機能すること」が最も重要なのは、ソースコードを解釈してもらう最も重要な「相手」がCPUだからだ。2番目が「美しいこと」なのは、CPUの次に重要な相手が、ソースコードを読み、保守する同僚プログラマーだから。「プログラミングの相手はCPUと同僚プログラマーだ」というのは、私もかつて主張したことがある。

 ソースコードがCPUを相手とする要件を満たし、かつ一緒に仕事をする人にも理解可能であるという要件を満たして初めて、プログラムのパフォーマンスを高める仕事に取り掛かることができる。美しいソースコードは改良もしやすい。おおよその場合、ソースコードを美しくすることは、小さな関数に分割することだ。

対立を起こさず穏便に対処する“魔法の質問”とは?

 最近友人が、あるトラブルについて話していた。私も似た経験のあるトラブルだ。友人は、あるチームが何の監督も受けずに作成したソースコード群を結合する立場にあり、そのソースコードの不備に悩んでいた。テストが不十分で、サイロ化(ソースコードやプログラムごとに運用管理)されており、メインプロジェクトのコーディング基準に従っていなかったという。

 これは頭を抱える事態だ。そのようなソースコードを結合するには、本来ならテストで示すべきエントリーポイント(プログラムを実行し始める場所)を探さなければならない。本来ならそのソースコードが要件を満たしているかどうかもテストで分かるはずだ。だが、そもそもテストが存在しないため、要件を満たしているものだと信頼するしかない。

 このような場合、どのようなアドバイスをしたらよいのだろうか。

 先に述べたように、私も似たような経験があった。人は、その相手が誰または何であれ、対立を嫌がるものだ。そこで私は「相手のソースコードに悩まされている」人の役を演じることにした。ソースコードそのものに対する批判は口に出さず、「ソースコードについて分からない点があるから教えてほしい」と、同僚プログラマーに頼んだのだ。

 「この機能のテストはどこにあるのだろうか」。テストが存在しないことは分かっていたが、同僚プログラマーにあえてそう尋ねた。こう質問することで、テストが必要だということを相手に穏便に伝えることができる。相手が自分で判断する余地を与えることにもなる。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

譁ー逹€繝帙Ρ繧、繝医�繝シ繝代�

製品資料 サイボウズ株式会社

「ERP×ノーコードツール」のアプローチを推進するためのポイントとは?

DXが進み、レガシーシステムからの脱却が喫緊の課題となっている今。「ERP×ノーコードツール」のアプローチで基幹システムの刷新に取り組む企業が増えている。そのアプローチを推進するに当たってのポイントを解説する。

事例 サイボウズ株式会社

ローコード/ノーコード開発ツールで実現する、変化に強い組織の作り方

DXの本質は、デジタル技術を駆使して変化に適応する能力を身につけることにある。その手段の1つとして注目を集めているのが、ローコード/ノーコード開発ツールだ。京王グループなどの事例とともに、その特徴やメリットを紹介する。

事例 サイボウズ株式会社

ノーコードツールでDX人材を育成、京セラや日本航空などの事例に学ぶ効果の実態

DX人材の重要性が高まる中、ノーコードツールの活用によって業務改革と人材育成を両立しようとする動きが活発化している。年間約780時間の工数削減を実現した京セラをはじめとする5社の事例を基に、その実態を探る。

事例 アステリア株式会社

ものづくり現場で「足かせ」のアナログ業務、9社の事例に学ぶ業務改善の秘訣

急速に進化するデジタル技術は、製造業などのものづくりの現場にもさまざまな恩恵をもたらしている。しかし、設備点検業務や棚卸業務などの立ち仕事や移動が多い現場では、いまだにアナログ業務が残存し、効率化の妨げとなっているという。

事例 アステリア株式会社

工場・倉庫の「隙間業務」をデジタル化、11社の事例に学ぶ現場DX

あらゆる業界でDXの重要性が増しているが、工場や倉庫の中にはデジタル化が後回しにされている隙間業務が多数ある。その理由を明らかにした上で、それらの業務をモバイルアプリでデジタル化し、現場DXを推進する9社の事例を紹介する。

From Informa TechTarget

いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは

いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。

ITmedia マーケティング新着記事

news025.png

「マーケティングオートメーション」 国内売れ筋TOP10(2025年5月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。

news014.png

「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年4月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

news046.png

「ECプラットフォーム」売れ筋TOP10(2025年4月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。