저는 현재 유급 인턴십을하고 있으며 지난 5 년간 여러 개발자가 서로 다른 시간에 개발 한 오래된 시스템을 유지 관리하는 일을 해왔습니다. 경영진은 "시스템 수명이 다함"에 동의하며 현재 시스템을 사용하는 최종 사용자로부터 버그 보고서를 상당히 정기적으로받습니다.
사람들이 여전히 시스템을 사용하고 있으며 비즈니스 활동을 지원하고 있다면 시스템은 더 이상 사용되지 않습니다. 여전히 사용되고 있기 때문에 비즈니스는 버릴 수 없으며 시스템이 더 이상 필요하지 않을 때까지 지원해야합니다. 비즈니스 목표가 변경되거나 최종 사용자에게 새로운 시스템이 개발, 테스트 및 성공적으로 배포 된 것일 수 있습니다.
실제로 5 년은 그리 길지 않습니다. 10 년 전의 코드로 작업 한 적이 있습니다. 여전히 사용자의 요구에 부응한다면 왜 버려야합니까? 그것은 그것을 개발하는데 소비 된 많은 돈을 버리고 있습니다. 비용 증가로 인해 유지 보수가 불가능하거나 요구 사항이 급격히 변할 때까지이를 버릴 사업상의 이유는 없습니다.
경영진은 이제 1 년 동안 프로젝트를 확장하고 프로세스에서 사용자 기반의 거의 3 배를 늘리려 고합니다.
경영진이이 시스템이 "실시간 지원"이라고 말하면 왜 추가 시스템을 배포하려고합니까? 유지 보수 활동은 교체 될 때까지 레거시 시스템에서 계속되는 것이 일반적이지만, 시스템이 수명이 다한 경우 일반적으로 더 많은 사람들에게 배치되지 않습니다. 유지 관리를 연장하는 것은 하나의 일이지만 시스템에 의존하는 사용자를 추가하는 것은 서로 다른 상황입니다.
나에게 그것은 실제로 수명이 다한 것이 아니라 유지 보수 단계에 있으며 시스템이 더 이상 사용자의 요구를 충족시키지 못할 때까지 계속 유지됩니다.
인턴 (또는 엔트리 레벨 포지션)으로서 어떻게 "푸시 백"합니까? 공개 문서에도 불구하고 이미 우려 사항을 설명하는 보고서를 작성했습니다. 변경 제안을위한 프로토콜 또는 문서 유형이 있습니까? 제안을 할 수있는 입장입니까, 아니면 기존 시스템을 계속 지원해야합니까?
기존 시스템을 계속 지원해야합니다. 나중에 소프트웨어는 회사의 주요 사업이 아니라고 언급합니다. 이러한 환경에서 소프트웨어 팀의 역할은 회사의 주요 비즈니스를 지원하는 것입니다. 그러나 소프트웨어 팀은 비즈니스 목표를 염두에 두어야합니다.
그 동안에는 지나치게 강력하지 않은 방법으로 제안을 캡처하십시오. 시스템과 통합 될 수 있거나 새로운 시스템이 만들어 질 때 / 장점과 장점이있을 때 사용할 수있는 다른 기술이나 기술을 지적하십시오. 이 작업을 수행하는 방법은 회사에 따라 다르지만 나중에 고려할 사항은 Wiki 또는 기타 공동 작업 사이트를 설정하는 것이 좋습니다.
소프트웨어가 아닌 비즈니스에서 소프트웨어는 비용이 들며 소프트웨어 팀 (특히 소프트웨어 프로젝트 / 프로그램 관리자)은 최종 사용자의 요구를 지원하면서 가능한 한 소프트웨어 시스템을 구축 및 유지 관리하는 비용을 최소화하기 위해 노력해야합니다. . (어쨌든 내가 알 수있는 한) 사용자의 요구를 충족시키는 소프트웨어를 버리는 것은 소프트웨어 팀의 최선의 이익에 반하는 것입니다.
* 명확히하기 위해 소프트웨어 개발은 우리 회사의 주요 사업이 아닙니다. 따라서 내부 프로토콜이 없습니다. 또한 프로젝트에는 공식 문서가 없으며 요구 사항 문서가 없습니다. 개발은 매우 특별합니다.
나에게 이것은 문제이다. 문서를 작성하지 않고 사양으로 개발하지 않으며 일관성이 없으면 소프트웨어 개발 비용이 증가하는 경향이 있습니다. 이를 해결하기 위해 노력하는 것이 저의 최우선 과제이며 코딩 표준, 버전 제어, 자체 문서화 코드 및 디자인 문서 생성, 결함 추적 및 요구 사항 사양과 같은 작업을 수행함으로써 그렇게 할 것입니다.