ハードウェア設計とソフトウェア設計の違い(2/3)

takashi42332008-05-06


第二回
今回扱う内容は,納期の前の悪あがきや保守時の対応です.


まずは納期前の悪あがきについてです.

ハードウェアの場合,納期にどう考えても間に合わい場合に相手をそれなりに納得させる方法があります.
そぅ「部品が無い」です.
もちろん,工程の管理能力が問われる訳ですが.
部品が無くてはどう頑張っても作れない.もぅ,土下座でも何でもして謝るしかありません.

一方ソフトウェアはどうでしょう?
部品なんてありません.そうです,徹夜すれば出来るんじゃないか?という最も危険な方法で仕事を上げることができてしまいます.
単体テスト結合テストをあわせて統合テストにすれば...」とかそういう方法で,案外納期に間に合わせることができます.
結果,デスマーチなんてのに陥ってしまうんだと思いますけどね.


ここでのポイントは,納期迄に何とかしようと思えばできるのがソフトウェアとどうにもならない事があるのがハードウェアって事です.
ただ,働く方に取ってどちらが良いかというのは別の話だと思いますが...



次に,保守時の対応です.
ハードウェアの場合は,金属疲労や部品の故障などが主な原因なので,部品の在庫さえ確保していれば取り替えれば動きます.
万が一部品の在庫を確保していなかった場合も,取り寄せるのに時間がかかるのは,やむ終えない感じがします.
つまり一番の問題点は,何処が故障しているかを探すという事になります.
故障箇所さえ分かれば,従来と同じ部品を用意して付け替える.最後にトラブル報告書でも書けば良い.
そんな感じだと思います.


一方ソフトウェアはどうでしょう?
「24時間以内に対応して下さい」「今すぐ何とかなりませんか?」なんて言葉は良く聞く話です.
部品がないぶん,ヒト(プログラマー)さえいればすぐに解決できるかのような雰囲気があります.
ソフトウェアの保守の怖いところは,保守と言いつつも機能追加や,客先にて要求仕様の拡大解釈が行われ保守という名の追加開発をさせられやすいところだと思います.
つまり,あらたに何かを作らないとダメになります.あらたに何かを作る為には,コード全体の動きを理解している必要がありますが.
なんせ,ヒトの流れが激しい業界です.保守時には作ったヒトがいないなんてのもよくある事です.
そうして,またモンスターなコードが追加される.
つまり,保守によってシステムが粗悪になっていく危険性があると思います.



うーん,個人的にソフトウェアなヒトなので,ついついソフトウェアの方が大変だ...って雰囲気になってしまうのが中立的ではないですね.