トップページ | 全エントリー一覧 | RSS購読

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
トラックバック
トラックバック送信先 :
コメント

プログラマは永遠に知的です

プログラミングは進化した。コンピュータを他人の指示通り制御することそのものに価値があった30年前とは全く違う。今のプログラマは、制御はツールに任せる領域が多くなり、制御のために使う時間は大幅に減った。
しかし、コンピュータの処理能力の向上に伴って、与えたい指示の量は、比較にならないほど増大し複雑になった。変更頻度もあがり、作って終わりではなく作り続けることが求められた。一方で、量と複雑性の増大に対して、ツールと処理性能の向上が、あまり余るほど効果的に補い、作成時間は短縮した。競争環境の進化に伴い、より一層短縮することが求められた。
そこでプログラマの関心は、複雑に依存性だらけの指示を適切に短時間で実現することと、保守性を高めることの2点に移った。プログラミングの価値が変わり、動けば良いという時代は終わった。
時代は常に、巧遅より拙速を求めている。私考える人、あなた作る人。そんな牧歌的な役割分担は終わった。全員が、それぞれの得意な領域で、考え、かつ作る、ことが必要になった。実際そのほうが、要求に対して効果的だった。

設計とは何か。実装とは何か。どちらもその専門において考える内容はある。
なぜ設計が難しいのか。不特定な領域でおこるコンピュータ上の出来事すべてを決めようとするからだ。コードを書けば自明的に分かることを、わざわざ書かずに考えようとするからだ。なぜ日本語で考える。なぜコードで考えない。なぜコード領域が得意でない人が、コードを書けば自明的に実証されることを、書かずに決めたがる。
設計が終わると同時に、実装が終わって、何か不都合か。

事前に方向性の合意に、ラフな絵図を描く。これは必要だ。設計とはどのように作るかを決めることだから、これは設計の一部ではあるが、設計の全てではない。
しかし、絵図の詳細を詰めると、絵に描いた餅であることがわかることがある。なぜできないことをできると思ってしまったのか。人間はコンピュータではないからだ。ヒューマン頭脳のホスト上で、x86のゲストOSは対応してないだけなんだ。
だから、後々に絵に描いた餅が出ることを覚悟して、絵図を書かねばならない。だから、絵図の誤りを後で実証できた段階で、指摘して訂正せねばならない。だれが実証するのか。もちろんコード領域が得意な人だ。コード領域が得意な人は、当然ながらコードを書いて実証する。それが一番効率的だからだ。

だから、いわゆる「実装中に、設計ミスが見つかる」という現象が現れる。実装とは設計の実証であり、設計の一部に他ならない。実証が終わって試作コードを集めて「整理」することは、直接的には外的要求に寄らない設計作業。何のためにそれがあるのか。保守性の高いプログラムを作るためだ。これは機能要件ではないが、非機能要件の高い保守性に合致する。だから、やらねばならない。高い保守性とやらを設計せねばならない。コンピュータ科学やソフトウェア工学に強い人たちや、コード領域の人がやらねばならない。

結局「設計」をしなくていい人はいない。あらゆる活動に「設計」がつきまとう。別に悪い話ではない。それが目的達成にもっとも効果的だからだ。
しかし、30年間のツールの進化は、「設計」が苦手な人でも、下手な「設計」なりに、それなりに「役立つ」ソフトウェアを作ることを可能にした。素晴らしい。だが、高度な「設計」が求められるとき、苦手な人は無力だ。できることが限られる。適材適所が必要だ。高度な設計とは何か。未知の領域が広く、後で絵図がひっくり返る確率が高い設計のことだ。低度な設計とは何か。絵図の想定通りに進む設計のことだ。決定論的な振る舞いをするコンピュータにおいて、想定通りとは、要するに人間が結果を知っている、ということだ。

人間が結果を知っている領域を増やし、人間の頭脳で理解できる状態を共有できたとき、裾野が広がり、技術難度ピラミッドが大きくなり、平均水準が向上する。ピラミッドの一定水準より低い人は、プロフェッショナルの世界から退場を余儀なくされる。プログラミングの歴史は、その繰り返しだった。これからもそうだろう。誰であれ知的な作業はなくならない。知的と言われる対象が変遷し、深化するだけだ。
スポンサーサイト
トラックバック
トラックバック送信先 :
コメント

プロフィール

とむころり

Author:とむころり
24時間システムエンジニア。研究開発など何でも屋を担当。知的でおもてなし精神に満ちたシステム(サービス)が作りたい。
@tomcat_ch

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

QRコード

QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。