プログラマの倫理と論理quneプログラマの倫理と論理2009/03/07ま,プログラマといっても,開発者一般の話なんですけれど,要件を持ってくる人と設計/製造する人のバトル話を久々に聞いたもんで,ちとだけ書いときます。プログラムを設計/製造するときに,「実装の都合で設計することはよくない」ってな話があります。あたしもよく聞く話なので,多分,割と一般的な話なんだと思う。要するに,技術的にやりやすい方法を選択することで,要件に制限をかけるのはあまりよくないよ,ということです。技術的に無理な話とか,無理じゃなくても工数がべらぼうにかかるってな要件はあるんですけどね。技術的なやりやすさを選択することトレードオフの関係にあるアレコレを,お客さんに転嫁するのは筋違いだよ,という話。これは,商売でプログラムを作る人の倫理とも言えるようなもので,あたしも基本的にはそういうもんなんだろうなぁ,とか思っていたりします。この規範,いつでもスッパリと割り切れるもんじゃなくて,仕様を優先させるか作りやすさを優先させるか,微妙な場合も少なくありません。,「お客さんを知らない開発者」と「技術を知らないプロマネや営業」がこの規範を持ち出すと,議論は簡単に泥沼にはまってしまいます。カットオーバーを控えて茶々が入るような場合は......言わずもがな,修羅場に。あたしゃ直接今回の場面を見ていないので,具体的にどういうやりとりがあったのかは分からないんですけれど,話してくれた人の評価では,どうも開発者さん側の応対がいかんかったらしい。営業さんの提案に対して,技術に関する疑問形で返すことを繰り返していたんだそうな。営業さんは,その疑問形に合わせて技術方面寄りの提案に言い換えていたものの,いかんせん素人だから,技術的にはまったく外してるという......んなもんで,話がまったくかみ合わない。そのプログラマさんは,あたしも知っている人で,とても優秀なんですけれど,どうも人の話に合わせるのが苦手なようで,自分の理屈(設計/実装上の理屈)を中心にして話すクセがあったりします。聞く限り,その主張は,「実装上」論理的に一貫しているわけで,開発者に実にありがたい論理です。した「美しい」プログラムも,お客さんの欲しくないものだったら,プログラムは売れないわけで,全体として「ダメなプログラム」になってしまう。ダメなプログラムになるのはまずいので,営業さんは折衷案を出すわけですけれど,当人は「(論理的に)美しくないプログラムは書きたくない」といった具合で,強情っぷり全開という......。プロの倫理としてはどうなんだろう,とは思う。美しいけれどダメなプログラムは,世の中のあちこちにある。汚いけれどよく使われているプログラムも,あちこちにある。あたしの場合はというと,すぐに負けちゃうもんで,無理矢理論理的につじつまを合わせることも少なくありません。設計からして既に受け身(負け)が入っているという......。それはそれでどうなんだ,ってのもあるんですが。