ソフトウェア危機とは?
ソフトウェアの危機とは、ソフトウェアが提供できるものとコンピューターシステムの能力、およびユーザーの期待との不一致です。 コンピューティングが飛躍的に成長し、ソフトウェアが歩調を合わせることができなくなったため、これは20世紀に大きな問題になりました。 システムの複雑さが増すにつれて、ソフトウェアのパフォーマンスがますます高まることを期待するユーザーのニーズも増大します。 プログラマはペースを保つのに苦労し、ソフトウェアの危機を引き起こします。
一般に、消費者向けソフトウェアは開発フェーズの一連の遅い段階を通過しますが、業界のビジネス量のごく一部を占めています。 ソフトウェア開発の大部分は、海軍巡洋艦のミサイル誘導を処理するプログラムから、健康保険会社の内部記録管理に至るまで、特定のアプリケーションのシステムに組み込まれています。 このソフトウェアは通常、顧客からの多大な投資と、開発、テスト、および保守を担当する担当者による大規模なプログラミングを必要とします。
このようなプロジェクトはソフトウェアの危機に陥り、予算を超えて、開発に予想以上に時間がかかる可能性があります。 ソフトウェアで作業するプログラマーは、システムの新しい側面を学習し、クライアントの調整を行い、発生する他の問題に対処しながら、進行中のバグ修正に対処しなければならない場合があります。 たとえ低品質であっても、プログラマーは、ソフトウェアが高品質ではないことを意味しているとしても、すべてのコストで予算を満たそうとするプレッシャーを増す可能性があるためです。 作成されるドキュメントも少なくなる傾向があります。
これは、新しいソフトウェア製品の開発だけの問題ではありません。 もう1つの懸念は、開発が不十分であるか、増大するニーズを予測できないことに関連する問題がある古いソフトウェアを維持する必要があることです。 プログラマーは、企業が業務を継続できるように、レガシーソフトウェアを機能させるために多大な時間を費やす可能性があります。 古いソフトウェアに多額の投資を行っているため、会社はニーズに合っていても新しいプログラムを注文することをためらう場合があります。
複雑で高度なコードを作成するというプレッシャーは、ソフトウェアの危機に大きく寄与する可能性があります。 コストを管理し、タイムテーブルを維持しながら、圧力を制御することは困難です。 ソフトウェア危機に対処するためのいくつかの手段には、実質的な高度な計画、有能な人材の選択、およびプロジェクトがタスクとフォーカスにとどまるようにするための継続的な更新が含まれます。