[終了] [新着一覧] 新規投稿(ウィンドウ/ページ)
BBS運用以来、初めてのぼやきモードです。見たくない人は見ないでください。技術的なことなので、わからなければ無視してくだされば結構です。現在プログラマとして働いている私。かなりの複雑な操作を行うプログラムを、一人で1月ちょっとかけて作ってきたのですが、今日になって内部のデータ構造が、仕様を満たしきれず破綻。そこで、なぜ仕様を満たしきれなくなったのかを考えてみました。そもそもの発端は、プロジェクトリーダーに、「このデータベース(DB)を使えば簡単」ことでした。最初、階層構造を持つ3つのDBそれぞれを別の方法で格納することを考えていました。しかし、その時提示されたDBは、3つのDBが1つに統合されていました。私は、その1つのDBをもとに内部データ構造(1次元配列)を決定。さらに同時に頼まれた速度向上のために、内部データの操作を補助するためのデータ仕様(多次元配列)を生成。それが私にとってあだになりました。どのデータにも同じ情報が格納されている必要がある(親データは、子供を複数個持つ)という制約が、動作に悪影響を与えはじめました。仕様を満たすために、その制限をなんとか守らせながら、今日までプログラムを拡張してきました。しかし、拡張に耐えうる限界のほうが先に来てしまいました。もともと、私のプログラムは、かなりの拡張(仕様変更)に耐えうるように制作され、なおかつ処理速度が高速という2つの特徴を持っています。しかし、それはプログラムの難度の高さにも直接結びついてきます。このため、広めの範囲での仕様変更を視野に入れ、その範囲での修正が簡単になるように設計しています。ですが、その範囲を出てしまうと、大幅な修正が必要になることがあります。今回の場合、データ構造を持つ時に、余計なDBを見てしまったために、私の思考が縛られてしまいました。他の人に考え方を縛られてしまうというのは、私の致命的なミスであり、職業プログラマとして初めて受けた、「打撃力の高い」精神的ダメージでもあります。嫌みや文句を言われて沈むのよりも、自分が自信を持っていた技術が外的要因により破綻してしまったということが、私にとって、精神的に辛いというのがわかりました。このまま沈んでしまっては、私が私ではなくなってしまいます。当然のように、この問題を乗り越えようと努力してみる次第です。転んでもただでは起きない、より力をつけて起きてやる。ダメなら別の角度からトライする。・・・あれ、人生あきらめが肝心と他人には言っているのに何故だ?(笑)