プログラマに足りないもの
ガジェット通信 / 2013年7月31日 18時0分
今回はメカAGさんのブログからご寄稿いただきました。
■プログラマに足りないもの
だから、たとえば、「できない」って言うプログラマーがいたときに、「なんとかしなさい」って言うんじゃなく、「どういう仕組みになってるの?」って訊くんですね。すると、仕組みを説明されるので、「じゃあその仕組みをこう利用したらこういうことはできないの?」って提案すると、「それならできます」ってなるんです。
「樹の上の秘密基地 | 宮本茂はどういうふうに構造をつくっていくのか。」 『ほぼ日刊イトイ新聞』
http://www.1101.com/nintendo/pikmin3/2013-07-19.html
これを読んでて思い出したが、俺も若いころ、こういう人に出会ったんだよね。その人はソフトウェア開発とは全然畑違いの人で、俺達はとある製品を作る機械を作っていた。しかしどうにもこうにもうまくいかない。物理的なものを相手にしなければならないので、いくらCPUが「こう動け」と命令を出しても、実物がその通り動いてくれるほど単純じゃない。あの手この手でフィードバックが必要。
さまざまな計測器からデータを受けつつ、それをもとに機械を制御するのだが、一生懸命アルゴリズムを考えても、なんかうまくいかないんだよね。で、また別のアルゴリズムを考える、の繰り返し。あーでもない、こーでもないと試行錯誤を繰り返していると、プログラムもぐちゃぐちゃになっていくし…。
で、その頃俺は若くて、生意気盛り(苦笑)。プログラミングについては自分の方が専門という自負があったので、主導権を取られまいと、意味もなく張り合っていた。というか張り合ってるつもりだった(笑)。
* * *
その人の「こんなふうなやり方を試してもらえないですか?」という提案に、「それはできません」とか答えていた。今思えば、プロジェクトを成功させなければとの思いが、どうも変な方向に向かっていたように思う。決して非協力的なつもりはないのだが、どうしても「ちゃんと動くものを作らねば」という気持ちが、防衛的なスタンスを取らせていたのだろう。
しかしその人はいろいろプログラムの作りを尋ねて来た。細かな部分はもちろんわからないのだけど、全体的に現状のプログラムはこういう作りになっていて、その処理をいれるには、こことここを変えなければならない…という俺の説明を熱心に聞いていた。
で、俺が「修正は難しい」といった部分は、決して否定しないのだよね。「それならば」と別な方法を提案してくる。そして悔しいことに、その方法だと、少なくとも最初に俺が「こう変えなければならない」と言った方法よりは、楽に実装できそうに思えてくる。
* * *
最初のうちはこれが悔しくて悔しくてね~。なんでプログラミングを知らない人の方が、俺よりうまい方法を考えられるんだ、と。まあその人の頭が俺よりはるかに良かったってことなんだろうけど、それで話を終えてしまうのもつまらない。
思うに、プログラマというのはしばしば「汎用的」に考えすぎる傾向があるのではなかろうか。実際に実現しなければならないのは、かなり特定の状況。しかしプログラマはどうしても一般化した解決方法を考えようとしてしまう。
一方その人は製品の製造全体を見ているので、「○○のケースはありえない」というのがわかっている。俺が「その方法だと○○のケースが処理できません」というと、一旦持ち帰って、いろんな部署に確認して、「○○のケースは処理できなくて構いません」と答えてくる。○○を考えなくていいなら、実装ははるかに簡単になる。
* * *
あるいは全体の製造工程を変更して、そういうケースが起きないようにする。俺は自分のプログラムしか裁量の範囲がないのに、その人の裁量権は全体なんだよね。これもなんか悔しかったのだが、結果的にその人があちこちに手を回してくれるおかげで、俺の作業は楽になる。複雑な心境(苦笑)。
結局、こりゃいくら張り合っても勝負にならんとバンザイして、その後はむしろその人の考え方を見習うようになった。悔しいが…。さっきから「悔しい」を連発してるけど、本当に悔しかったんだよ!
一見、行き当たりばったりに見えることがあるんだよね。一般的な解決方法ではなく、ネックとなる部分を絶妙に回避して綱渡りしている。ただそれは俺の視界からはそう見えたのだけど、全体を見ているその人にとっては、別に問題をどこで解決してもいいわけで。俺の担当の工程で解決するのが難しいなら、その一つ前とか一つ後の工程で解決しても大勢に影響ない。
俺は自分のところしか見てないから、すべて自分のところで解決しなければならないと思い込んでしまう。
* * *
プログラミングの能力はそれなりにあるのに、なにかと「できません」を連発するプログラマは、やたら汎用的な解決方法にこだわりすぎの傾向があるように思う。もちろんその方向で解決できるに越したことはないのだが、割り切ることも大事で、むしろあるレベルから先は、いかに割り切った思考ができるかで、設計者としての能力の差が出てくるように思う。
逆に言えば割り切り方を発見できる人間が、他の人間ができないことをできる。正攻法での解決にこだわらず、ちょっと斜めの回避方法。ただこれは自力でその境地にたどり着くのは難しいかもしれない。俺も上記の人に出会わなかったら、そういう考え方はできなかったかもしれない。
* * *
どの本か忘れたけど、下記の本だったのではないかと思うけど、
「ライト、ついてますか―問題発見の人間学」 ドナルド・C・ゴース(著), G.M.ワインバーグ(著), 木村 泉(翻訳) 『amazon』
http://www.amazon.co.jp/dp/4320023684
こんなエピソードが載っていた。エレベーターの制御プログラムにバグがあって予定したパフォーマンスがでない。なのでいつもそのエレベーターの前には行列ができて、利用者からは不満のあらし。
そこで考えた解決方法とは…プログラムのバグをとるのではなく、エレベーターの前に鏡を設置したこと。利用者は待っている間に鏡を見て、身だしなみを整えたりするので、待ち時間の長さの不満が減った、と。
最初読んだ時「なんじゃそりゃ~」と思ったけれど、これぐらい大胆な発想ができる人というのは、ときどきいる。俺が聞いてあんぐり口を開けるような(苦笑)。そういう人はやっぱいろんなプロジェクトで活躍している。
正攻法は大切。でもそれだけだと、差がつかない。他の人がみんな失敗し、その人だけがいつも成功する…というのは、やっぱ理由がある。ここぞという時に繰り出すキワモノ的なアイディア。「問題を解決する」とはどういうことか?人間がいかに先入観にとらわれているか。その先入観を打破できる人が、一歩他人よりも先行できる。
執筆: この記事はメカAGさんのブログからご寄稿いただきました。
寄稿いただいた記事は2013年07月30日時点のものです。
外部リンク
この記事に関連するニュース
-
男性育休に否定的な上司が受けた「衝撃の仕打ち」 上司が男性部下の育休をよく思わない理由3つ
東洋経済オンライン / 2024年10月15日 8時0分
-
Osaka Metro×ロジカ式「小学生向け起業家育成プログラミングキャンプ」
共同通信PRワイヤー / 2024年10月10日 10時0分
-
【インタビュー】伊藤英明&新木優子が体現した、夫が妻を“作り変え続ける”歪んだ関係 否応なく訪れる“変化”をどう受け止める?
映画.com / 2024年9月30日 19時0分
-
エンタープライズIT新潮流 第35回 エンジニアのためのBlog作成の簡単アプローチ
マイナビニュース / 2024年9月30日 13時0分
-
【蠍座】12星座占い 10月前半運勢 ポジティブな変化が訪れる予感!
CREA WEB / 2024年9月28日 18時0分
ランキング
-
1「誰の女に言ってんだ!」 ヒロミ、松本伊代への“失礼発言”にカチン 周囲にプチ説教も「オレが言うのはOK」
ねとらぼ / 2024年10月22日 16時5分
-
2大谷翔平、さらに強くなる!『パワプロ2024』第5回アップデートでの選手データが先行公開―現実の成績を受けて盗塁が“A”に
インサイド / 2024年10月21日 13時50分
-
3松屋でリトアニア風メニュー発売→リトアニア大使が“まさかの”お仕事 「似合ってる」「すてきな笑顔」と好評
ねとらぼ / 2024年10月22日 19時0分
-
4セガ、「メメントモリ」運営会社を提訴 特許権の侵害で ゲーム差し止めと損害賠償を求める
ITmedia NEWS / 2024年10月22日 11時13分
-
5「サイゼリヤ」をイタリアンシェフとソムリエが本気ジャッジ→1番に選んだのは…… まさかのスイーツに「予想してなかった」「参考になる!」
ねとらぼ / 2024年10月20日 20時30分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください