सॉफ़्टवेयर क्राइसिस

सॉफ़्टवेयर संकट एक शब्द है जिसका उपयोग कंप्यूटिंग विज्ञान के शुरुआती दिनों में आवश्यक समय में उपयोगी और कुशल कंप्यूटर प्रोग्राम लिखने की कठिनाई के लिए किया जाता था। सॉफ्टवेयर संकट कंप्यूटर की शक्ति में तेजी से वृद्धि और समस्याओं की जटिलता के कारण था, जिनसे निपटा नहीं जा सका। सॉफ़्टवेयर की जटिलता में वृद्धि के साथ, कई सॉफ़्टवेयर समस्याएँ उत्पन्न हुईं क्योंकि मौजूदा तरीके अपर्याप्त थे।

इतिहास
सॉफ़्टवेयर संकट शब्द 1968 में जर्मनी के गार्मिश में पहले नाटो सॉफ्टवेयर इंजीनियरिंग सम्मेलन में उपस्थित कुछ लोगों द्वारा गढ़ा गया था। एडवर्ड डिज्क्स्ट्रा का 1972  ट्यूरिंग पुरस्कार  व्याख्यान इसी समस्या का संदर्भ देता है:

कारण
सॉफ़्टवेयर संकट के कारण हार्डवेयर की समग्र जटिलता और सॉफ़्टवेयर विकास प्रक्रिया से जुड़े थे। संकट कई तरीकों से प्रकट हुआ:
 * परियोजनाएं ओवर-बजट चल रही हैं
 * परियोजनाएं समय से अधिक चल रही हैं
 * कार्यक्रम अनुकूलन
 * सॉफ्टवेयर निम्न गुणवत्ता का था
 * सॉफ़्टवेयर अक्सर आवश्यकताओं को पूरा नहीं करता
 * स्पेगेटी कोड
 * वाष्प पात्र

मुख्य कारण यह है कि कंप्यूटिंग शक्ति में सुधार ने प्रोग्रामर की उन क्षमताओं का प्रभावी ढंग से उपयोग करने की क्षमता को पीछे छोड़ दिया है। प्रक्रियात्मक प्रोग्रामिंग और ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग  जैसे सॉफ़्टवेयर गुणवत्ता प्रबंधन में सुधार के लिए पिछले कुछ दशकों में विभिन्न सॉफ़्टवेयर विकास प्रक्रियाएँ विकसित की गई हैं। हालाँकि, सॉफ़्टवेयर प्रोजेक्ट जो बड़े, जटिल, खराब निर्दिष्ट हैं, या अपरिचित पहलुओं को शामिल करते हैं, अभी भी बड़ी, अप्रत्याशित समस्याओं के प्रति संवेदनशील हैं।

यह भी देखें

 * ऐ सर्दी
 * विफल और अधिक बजट वाले कस्टम सॉफ़्टवेयर प्रोजेक्टों की सूची
 * फ्रेड ब्रूक्स
 * सिस्टम दुर्घटना
 * तकनीकी विलक्षणता

बाहरी संबंध

 * Edsger Dijkstra: The Humble Programmer (PDF file, 473kB)
 * Brian Randell: The NATO Software Engineering Conferences
 * Markus Bautsch: Cycles of Software Crises in: ENISA Quarterly on Secure Software (PDF file; 1,86MB)
 * Hoare 1996, "How Did Software Get So Reliable Without Proof?"