거꾸로 호환성과 혁신의 상충되는 요구와 어떻게 균형을 맞추고 있습니까?

StackOverflow https://stackoverflow.com/questions/160968

문제

GUI (그래픽) 및 API (스크립팅) 인터페이스가 모두있는 응용 프로그램에서 작업합니다. 당사의 제품에는 매우 큰 설치베이스가 있습니다. 많은 고객들이 제품을 사용하는 스크립트를 작성하는 데 많은 시간과 노력을 투자했습니다.

우리의 모든 설계 및 구현에서, 우리는 (당사적으로) 100%를 유지해야 할 매우 엄격한 요구 사항을 가지고 있습니다. 거꾸로 호환성. 이전에 실행 된 스크립트는 새로운 소프트웨어 버전을 도입 할 때 수정없이 정확히 같은 방식으로 계속 실행해야합니다.

불행히도,이 요구 사항은 때때로 우리의 손을 등 뒤에 묶습니다. 받아 들여 쓰다 그리고 새롭고 더 나은 일을하는 방법을 생각해냅니다.

예를 들어, 우리는 이미 가능한 작업을 달성하는 더 나은 (그리고 더 유용한) 방법을 생각해 낼 수 있습니다. 이 방법을 기본 방식으로 만드는 것이 바람직하지만, 우리는 거꾸로 호환성 영향을 미칠 수 있으므로이 작업을 수행 할 수 없습니다. 따라서 우리는 새로운 (더 나은) 방식을 모드로 떠나는 데 갇혀 있으며, 사용자가 사용할 수있게되기 전에 "켜기"해야합니다. 문서 나 온라인 도움말 (많은 고객이하지 않는)을 읽지 않으면이 새로운 기능은 영원히 숨겨져 있습니다.

나는 Windows Vista가 XP에서 일할 때조차도 작동하지 않은 모든 소프트웨어와 주변 장치 때문에 처음 나왔을 때 많은 사람들을 짜증나게한다는 것을 알고 있습니다. 이것 때문에 꽤 나쁜 리셉션을 받았습니다. 그러나 Microsoft는 많은 사용자들에게 거꾸로 호환성을 희생하여 Vista에서 훌륭한 혁신을 만드는 데 성공했음을 알 수 있습니다. 그들은 위험을 감수했습니다. 돈을 지불 했습니까? 그들은 올바른 결정을 내렸습니까? 시간 만 말할 것 같아요.

혁신과 거꾸로 호환성의 상충되는 요구의 균형을 맞추고 있습니까? 저글링 법을 어떻게 처리합니까?

도움이 되었습니까?

해결책

내 프로그래밍 경험에 관한 것이면, 과거의 들어오는 데이터를 올바르게 사용하지 못하게하는 것을 자금으로 바꾸려면 새로 사용할 수있는 이전 데이터에 대한 추상화 계층을 만들어야합니다. 체재.

기본적으로 "개선 된"방법을 기본값으로 설정하고 변환기를 통해 이전 형식의 데이터를 읽을 수 있지만 새 형식으로 데이터를 저장하거나 저장하십시오.

여기서 가장 큰 것은 테스트, 테스트, 테스트라고 생각합니다. 거꾸로 호환성은 앞으로 진행 상황을 방해해서는 안됩니다.

그게 내 2C입니다

다른 팁

개발을 두 개의 지점으로 나누는 것은 거꾸로 호환성을 유지하고 새로운 메이저 릴리스를위한 하나는 거꾸로 호환성이 깨지고 있음을 분명히합니다.

고객이 고객이 원하지 않는 것으로 인식하더라도 고객 이이 "개선"을 원하거나 필요로하는 것입니다. 일을하는 일이 시작되면 워크 플로우를 변경하는 것은 매우 "비싸다"는 작업입니다. 사용자의 컴퓨터 사용함에 따라 UI 변경에 적응하는 데 시간이 오래 걸릴 수 있습니다.

고객을위한 혁신을위한 혁신을 다루고 있다면 이러한 개선 사항을 개발하는 것만 큼 재미있는 것은 아닙니다.

Alawys는 거꾸로 양성을 유지하는 혁신적인 방법을 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top