頼むから 後で仕様を 変えないで2008年12月01日 22時00分57秒

プログラムを作る上で最も重要な作業は設計であり、最終段階へ近づくに連れて大きく影響してくる。
プロと素人の差は機能の追加や変更を要求された時に柔軟に対応できる柔軟性のある設計ができるか否かにある。
要するに行き当たりばったりで先を見通して考えられるかどうか、それを可能にする知識と経験を有するかが一つの境界線だと俺は思っている。

俺の場合は同じプログラムを何度も消して、より良く精錬していくという作業を繰り返して様々なパターンの設計と発生しうる問題点を知ることに努めた。
高校時代の話をすると、初めての長文プログラムは C言語というプログラミング言語を独学で勉強し始めた時に作ったオセロゲームだ。
最初は知識が足りない事もあって3,000行を軽く越えていたが、最終的に文化祭の展示品として採用された頃は1,000行を切っていた。
しかも、最初になかったPC対戦の機能を実装していたから純粋なオセロゲームの機能だけなら 500行程度だったかも知れない。

単純に作り直しを繰り返すだけで力になるという訳ではないけれど、問題点に対する解決策を模索する作業は力になっている。
特に思い付いた設計で進めていくと、どの辺で行き詰まるだろうとの推測が立つようになったことだ。
こうなってくるとプログラムを作る作業における設計の大切さと難しさを理解というより実感するようになってくる。
ちなみに、俺が設計の重要性を認識したのは高校 3年の卒業制作に取り組んでいる最中だった。

さて、ここまでの話は主題の為に用意された前置きだったりする。
簡単に言ってしまうと、俺がプログラムの設計に対して大層な自信を持っているという事を示したかった訳だ。
そして、今日の主題は自信を持って設計をしていても土台から崩されてしまってはどうしようもない、という悲しい話だ。

現在は北海道の方にある店の依頼でサービス内容を擬似体験ができるゲーム感覚の Flash広告を作っている。
要するにアドベンチャーゲームのようなシステムで入店から支払いまでの過程を再現しようという趣旨の制作物だ。
ちょうど同人の方でアドベンチャーゲームを作った経験もあるから引き受けたのだけど、どうにも話が二転三転していて話が定まってくれない。

先週末なんて設計のスタートラインに当たる仕様が変更されてしまって、ようやっと固まり掛けていた設計が物の見事に崩れてしまった。
プログラマにとって仕様変更は日常茶飯事だから驚くべきところではないのだが、力作と思っていた設計が崩されたショックは大きかった。
プログラムで設計は大切な作業だけど、そのスタート地点である仕様が大きく変更されてしまってはどうしようもない。

こういう状況下において、設計の先を見通す能力は諸刃の剣となって襲いかかってくる。
例えば、現行の設計を上手く変更して対応できないかと模索している最中に対応策を思い付くと同時に問題点を列挙していくなんてパターンがある。
つまり、どんだけ頑張っても綻びが出るから最初からやり直してしまえと無情な答えを突きつけてきてくれる。

これが趣味で作っているプログラムなら良いけど仕事となると辛くなってくる。
できるだけ手間を省きたくて、何とか別の道を指がしてみるけど自分の頭が頭ごなしに否定してくれる。
誰に怒りをぶつけることもできず、悶々と悩んでいたらいつの間にやら日が暮れていた。
今日はそんな日でした。

コメント

_ ルワン ― 2008年12月02日 01時05分28秒

このところ携帯からの更新に失敗する事があるようだ。
一時期はPCからも接続が悪かったし、困ったものだな。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
「このブログはどんな空間でしょう?
 ひらがな4文字でお答え下さい。」

コメント:

トラックバック

このエントリのトラックバックURL: http://crimson-harberd.asablo.jp/blog/2008/12/01/3987981/tb