脳機能学者の苫米地英人さんのご著書を読みました。苫米地さんはマッキントッシュの日本語入力ソフト「ことえり」の開発者でもあります。
posted with amazlet on 07.11.15
苫米地 英人
アスコム (2007/03/30)
売り上げランキング: 9821
その中で、プログラミングについて面白い記述がありました。苫米地さんは、数学の証明問題を例にとり、
数学が得意な人の思考法はこうです。「AならばZであることを証明せよ」といわれて、その証明の全体像をイメージできてしまうのです。
〜中略〜
あるいはプログラムの開発も同様です。フローチャートを書きながら、順を追ってプログラミングしていくわけではありません。そういう人もいるかもしれませんが、それはIQが低いのです。
〜中略〜
本来、プログラミングというのは頭の中ですでに全部できあがっていて、いわゆるプログラミングをいう作業は、じつは単にそれを打ち込んでいくだけの作業に過ぎないのです。
私がプログラムを組むときも、フローチャートを書くことがなく、感覚で作り出すことが多いです。フローチャートはプログラムを組んだ後に納品条件にあって仕方なく作るぐらい。それでも楽をしようと、ソースコードにコメントをしっかり書いて、後はソースコードからドキュメントやフローチャートを書き出してくれるツールを使っていました。
プログラミングを座学で学ぶときは、フローチャートは「基本のき」という感じがします。けれども私はフローチャートを書くのがあまり好きではなく感覚で作り出すほうなので、「私って、ただの面倒臭がりでよくないのかな?」と思っていたものですが、脳機能科学から言うと、むしろ自然なことなのか・・・と妙に納得できたんですね。
また、苫米地さんはある官庁からの発注で、ソフトを作ったことがあるそうです。
私としては、このソフトを作ったシステムがちゃんと動けばいいじゃないかと思うのですが、官庁はそれではダメだというのです。フローチャートを書類で作れと言います。システムを動かすのが目的であって、料金もそのシステムに対して発生しているはずなのに、紙の書類がないとお金は払えないという理屈です。
苫米地さんは仕方が無いので、プログラムが自動でフローチャートを作るプログラムを作って対応したそうです。
やっぱりそうだよねと、こちらも納得。
客先と仕様を決めるという意味でのドキュメントは必要だと思います。けれども、詳細設計レベルにおいては、フローチャートは私は後でまず見ないし、詳細設計書を細かく書くより、ソースコードにしっかりコメントが入っていたほうが後でメンテナンスしやすいというのも現場での実感。
フローチャートなんていらない?・・・あなたはどう思われますか?
※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
2007/11/16 02:01
きむこう on 2007/11/19
きむこう さん
実務の実用性でみると必要な場合も多いでしょうね。
思考法という見方をすると、フローチャートで考えるシリアル的な方法も一つですけど、もっとひらめきや感覚を信頼してみるというのも、一つの方法なのかなと思いました。
竹内義晴 on 2007/11/19
ソースのメンテ者がコストカットにより外注さんにやらせて
ころころ変わる現状では
ソース=>最新の動作フローチャート(UML,コラボ含む)
が欲しいという要望があるのは事実です。
(対象ソースがスパゲティソースであればあるほど
人のソース解析するのが面倒というのもあります)
納品先の1次受けの会社の立場、
ソース一式納品される業務提携先の会社の立場
からすれば当然といえば当然。
ただし、ソースにあってないフローであれば
混乱するだけなのでいらないというのも事実です。
きむこう on 2007/11/18
竹内義晴 on 2007/11/16
「フローチャートが大事!」という人がお客さんなら心象を害することもないので、後から作って「やっぱりフローチャートですよね。」などと言っておく場合もあると思いますし、フローチャートがないようなものはダメだというプログラマがいるなら、それで結果が出るならやらせておけばいいし、頭の中で全システムを作ってからそれを実装するだけ・・ということが出来る人はいいのだけど、それができない人が真似すると寝てるのと同じです。
・・などとなるべく弁護するように書いてみたのですが・・
いりませんね。やっぱり。
okuyama on 2007/11/16
ブログにコメントするにはCNET_IDにログインしてください。
この記事に対するTrackBackのURL:
メンバー限定サービスをご利用いただく場合、このページの上部からログイン、またはCNET_ID登録(無料)をしてください。
竹内さん回答有難うございます。
自分も最初に作る時点では、
自分もフローチャートは要らない
<問題点改修箇所の箇条書きで十分
「ひらめき」や「感覚」を信頼してみるという意見には同意です。
それとは別の問題として
既存の業務システムに関して
「改善改修」や「業務拡張に伴った新機能追加」
という傾向が増えているのも確かです。
その場合、作った会社・担当者がそのまま継続して
作業を行えば問題はありませんが、そういう事が
なかなか難しい現状です。
したがって
「プログラムが自動でフローチャートを作るプログラム」
という形式でメンテしていけるのであれば
別の担当者が大変助かると思うのです。
<ソースを漠然と追うより図解で全体像が見えていると
把握しやすかったりします