広告

当たり前の話。ソフトウェア開発を進める前に、よく調べよう。

ソフトウェア開発

コストを削減したいから、ハードウェアを削って、ハードウェアでやってた処理をソフトウェアでやろうと考える時はよく検討する必要がありますよという、割と当たり前のお話です。だいたい3分ぐらいで

広告

何故、こんなことを言うのか?

それは僕の職場では、ソフトウェアが動作しているハードウェアの演算量に余力があるのか把握できていないことが続いてきたからです。

パソコンで考えると、CPU使用率が既に95%になっていることを知らずに、最新のオンライン3Dゲームをやろうとしている状況ですね。

もし仮にハードウェアの余力が無いまま、ハードウェアの代わりを行うソフトウェアの開発をスタートして作り込んでも、開発したソフトウェアの発揮するパフォーマンスが低く、要求されている性能を達成することはできないでしょう。

そんな状況で取られる措置として、作成しようとしているソフトウェアの機能を削ったり、開発期間を延ばしてギリギリいっぱいまで最適化したり、既存のソフトウェアで無駄な処理をやっていないか洗い直したりします。ところが、これらはどれも非常に非常に険しい道です。

矛盾した仕様、複雑な組み合わせのある仕様、最適化のために可読性やメンテナンス性を犠牲にしたソースコードなどが成果物になります。開発が終わった後に手を加えないで済むならいいのですが、バージョンアップや不具合対策のために、仕様やソースコードを変更する時にとても苦労します。

それじゃあ、どうすればよいか?

開発を始める前にソフトウェアを動かしているハードウェアに余力が残っているのか、これから開発を始めるハードウェアの代わりのソフトウェアはどれくらいの処理能力を必要とするのか、二つのソフトウェアが同居した時でも大丈夫なのか、先ずは味見してみることが重要だと思ってます。

既存ソフトウェアを動かしているハードウェアの余力を調べるのはそれほど大変ではないですよね。ほとんどの場合、OSが情報を提供してくれるのでそれを確認するだけです。

これから開発を始めるハードウェアの代わりを務めるソフトウェアがどれくらいの計算資源を必要とするのか、既存のソフトウェアと同居させても問題なく動作するのか、これら2点を予め確認しておくこはとても難しいです。

必要な計算だけに絞った張りぼてのソフトウェアを試作して、張りぼてソフトが必要とする計算資源をベースに推定してみる方法なら、机上計算よりマシかもしれません。

「先ず試してみる」期間なんて取れないよ。

そういう状況もあるかもしれません。残念ですが、もしそうなってしまっているのなら、厳しい道を進む覚悟を決めてしまった方が楽になるかもしれません

もう一度、今日のおさらいをすると、

コスト削減として、ハードウェアでやっていたことをソフトウェアで行う開発を計画する時はよく確認してからスタートする方がよいでしょう。

ソフトウェアを動かしているハードウェアの余力はあるのか?ハードウェアの代わりになるソフトウェアが必要とする演算能力はどれくらいなのか?新しく開発するソフトウェアを既存のソフトと同居させたら何を気にすればよいのか?

これらの情報が無いまま開発を進めていくと、その先は過酷な道になりそうです。

広告

ソフトウェア開発

Posted by Many