소프트웨어 위기 란?
소프트웨어 위기는 소프트웨어가 제공 할 수있는 것과 컴퓨터 시스템의 용량 및 사용자의 기대치 사이의 불일치입니다. 20 세기에는 컴퓨팅이 비약적으로 발전하여 소프트웨어가 속도를 낼 수 없게되면서 점점 커지는 문제가되었습니다. 시스템의 복잡성이 증가함에 따라 소프트웨어의 성능이 점점 향상 될 것으로 예상되는 사용자의 요구도 증가합니다. 프로그래머는 속도를 유지하기 위해 노력하여 소프트웨어 위기를 일으킬 수 있습니다.
소비자 소프트웨어는 일반적으로 느린 일련의 개발 단계를 거치지 만 업계에서 비즈니스 규모의 작은 부분을 차지합니다. 대부분의 소프트웨어 개발은 해군 순양함의 미사일 유도를 다루는 프로그램에서부터 건강 보험 회사의 내부 기록 유지에 이르기까지 특정 응용 프로그램을위한 시스템에 도입되었습니다. 이 소프트웨어는 일반적으로 고객의 상당한 투자와 소프트웨어 개발, 테스트 및 유지 관리 담당자의 광범위한 프로그래밍이 필요합니다.
이러한 프로젝트는 예산을 넘어 서기 시작하고 예상보다 훨씬 오래 걸리는 소프트웨어 위기에 빠질 수 있습니다. 소프트웨어 작업을하는 프로그래머는 시스템의 새로운 측면을 배우고 클라이언트를 조정하며 발생하는 다른 문제를 해결하면서 지속적인 버그 수정을 처리해야 할 수도 있습니다. 프로그래머가 소프트웨어의 품질이 좋지 않다고해도 모든 비용으로 예산을 충족해야하는 압력이 높아질 수 있으므로 품질이 저하 될 수 있습니다. 더 적은 문서도 생성되는 경향이 있습니다.
이것은 새로운 소프트웨어 제품 개발에 대한 문제가 아닙니다. 또 다른 문제는 개발이 열악하거나 증가하는 요구를 예상하지 못하는 문제가있을 수있는 구형 소프트웨어를 유지해야 할 수도 있습니다. 프로그래머는 레거시 소프트웨어의 기능을 유지하는 데 많은 시간을 소비하여 회사가 계속 운영 할 수 있습니다. 구형 소프트웨어에 대한 높은 투자로 인해 회사는 요구에 더 잘 부합하더라도 새로운 프로그램을 주문하는 것을 꺼려 할 수 있습니다. 전환 중에 더 많은 비용과 문제가 발생할 수 있기 때문입니다.
복잡한 고급 코드를 작성해야한다는 압박은 소프트웨어 위기에 크게 기여할 수 있습니다. 비용을 통제하면서 시간표를 유지하면서 압력을 제어하는 것은 어려울 수 있습니다. 소프트웨어 위기를 다루기위한 몇 가지 조치에는 실질적인 고급 계획, 우수한 자격을 갖춘 직원의 선정 및 프로젝트가 업무에 집중하고 집중되도록하는 지속적인 업데이트가 포함될 수 있습니다.