非エンジニアに知ってほしいこと、エンジニアに知ってほしいこと

例により当たり前のようなことを偉そうに書く記事

toエンジニア向け

■「負債」は「資産」です。ご注意を。

エンジニアの人たちは「技術的負債」という言葉を使うが、会計に慣れてないと、ものすごーーくネガティブなニュアンスを含んでいるような気がしてしまうが、会計上の「負債」というのは「資産」の一部に含まれていることも忘れずに。

負債は利子を払ってるから早く返そうぜ、という文脈もあるだろうが、同時に「負債もお金を稼ぐ功労者なのだから、そこはリスペクトして、うまくやろうね」という視点もあるってしかるべき。これはうまく両立されるべきで、その気持ちがうまく同期できてないとエンジニアの側が辛くなるんじゃないかな。

■非プログラマに「コード」の説明は難しい。

いわゆるソースコードというメンタルモデル(イメージ、具体的な問題)を抱けない人に、ソースコードの比喩やお悩み問題を伝えても理解されない。
医者が臓器や血管について、専門用語レベルでしゃべっても患者さんは理解できないし、イメージができない。

to非エンジニア向け

■開発者を医者だと思って付き合おう。医者に風邪を引いてるんですと言ってはいけない。

何の比喩かというと、カジュアルに「こんなの簡単にできるよね」「バグが出ました!」という言い回しはやめよう、ということ。

体調が悪くて医者に見てもらう時に、それが風邪であるかを診断するのは医者の仕事だ。
それと同じく「本当に簡単にできるのか」「それが本当にバグであるのか」を適切に診断するのはエンジニアの仕事。

エンジニア出身の人じゃないと、この言い回しを正当化するのは、なかなか難しい。

そこらへんは彼ら自身のプライドと評価に当たる部分であり、エンジニアにカジュアルに言うのはすごくセンシティブな部分なので気をつけるように。

■プログラムは劣化するという考え方。

エンジニアの人が、いつも気にしているポイントだ。これの説明をしよう。

例えば、同じことを伝える文章でも、回りくどくて難しい文章と、エレガントで簡潔な文章のどちらがわかりやすいかというと、エレガントで簡潔な文章の方に決まっている。

(なお、この文章に対し、回りくどくて難しい文章というツッコミは不要w)

プログラマの人が恐怖に思っているのは、仕様がややこしかったり、納期が短かったり、作った人のスキルが低かったりという理由で、プログラムが整理されておらず、ややこしくて難解な状態のままリリースしなきゃいけない事態に陥ることだ。そういうプログラムのことを「汚いコード」と呼ぶ。

ソースコードは道路工事と同じで、定期的にメンテナンスをしたりする。そこでソースコードがややこしいことは、後の「作業時間」や「間違えやすさ」に繋がる。

つまり「動いてるけど、修正時のミスを誘発するプログラム」ということだ。しかも書いた直後なら、まだソースコードの問題点などは覚えているが、「3ヶ月後の自分は他人」なので、埋めた地雷を自分で踏んでしまうことも少なくない。

そこはエンジニアに修正する十分な時間と機会を与えることで、整理可能だと思うので、メンテナンスするつもりがあるなら、そこはしっかり相談しよう。

■エンジニアには、十分なモニタと十分な性能のマシンを与えよ。

スマートフォンのアプリにせよ、Webにせよ「画面」を開発するんだから、プログラム表示領域とプレビュー画面は分かれているべきだ。
狭い画面での作業というのは、作業者に無駄な負担を与えているので、時間の無駄。つまり給料を浪費している。

またメモリが足りなくてコンパイルが遅いマシンなどは、エンジニアの集中力を切らせてしまい、遊ばせるだけなので気をつけよう。iPhoneアプリのビルド中に、ついFacebook見てしまうのは避けなくてはw

パソコンやモニタは十分安いので、それぐらいの投資で生産性が改善できるなら、モノで解決しよう。
ただ、たまに目線移動することなく、同じ画面でやりたいという人もいるので、そこは相談の上。