2008-10-02 9 views
11

GUI (그래픽)와 API (스크립팅) 인터페이스가 모두있는 응용 프로그램에서 작업합니다. 우리의 제품에는 매우 큰 설치 기반이 있습니다. 많은 고객이 우리 제품을 사용하는 스크립트 작성에 많은 시간과 노력을 투자했습니다.역 호환성과 혁신의 상충되는 요구 사항 간의 균형을 어떻게 맞추고 있습니까?

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

불행히도,이 요구 사항은 실제로 우리의 능력을 실질적으로 제한하므로 으로 혁신하고보다 새롭고 좋은 방법을 제시합니다.

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

Windows Vista는 XP에서 작업 할 때조차도 작동하지 않는 모든 소프트웨어 및 주변 장치로 인해 처음 출시되었을 때 많은 사람들을 화나게했습니다. 이 때문에 꽤 나쁜 반응을 받았습니다. 그러나 Microsoft는 많은 사용자를위한 이전 버전과의 호환성을 희생하면서 Vista에서 큰 혁신을 이루는데 성공했음을 알 수 있습니다. 그들은 위험을 감수했다. 갚았 니? 그들은 올바른 결정을 내렸습니까? 시간 만 말해 줄 것 같습니다.

혁신과 하위 호환성의 상충되는 요구 사항을 균형있게 조정하고 있습니까? 저글링 행위는 어떻게 다루나요?

답변

5

내 프로그래밍 경험에 관한 한, 과거에 들어오는 데이터가 올바르게 사용되지 못하도록 근본적으로 변경하려고한다면 이전 데이터를위한 추상화 레이어를 만들어야합니다. 새로운 형식으로 사용하십시오.

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

큰 것은 여기 테스트, 테스트, 테스트라고 생각합니다. 후방 호환성은 앞으로의 진행을 저해해서는 안됩니다. 당신은 분명히 이전 버전과의 호환성이 파괴되고 있음을 확인 두 가지, 이전 버전과의 호환성을 유지 한 새로운 주요 릴리스에 대한 하나에 내 2C

1

분할 개발의

.

+2

2 개의 코드 스트림을 유지해야합니다. 모든 고객이 스크립트를 위반할 경우 새 시스템으로 마이그레이션하지 않기 때문입니다. 미래로 나아가는 가장 효율적인 방법처럼 들리지는 않습니다. – LeopardSkinPillBoxHat

+0

나는 동의한다 - 2 개의 다른 코딩 스레드를 유지하는 것은 어렵고 오류가 발생하기 쉽고, 가능하다면 이것을 피할 것이다. – Fry

+0

이것은 일반적인 관행이다. – aponomarenko

1

귀하가 물어야 할 중요한 질문은 고객이 고객이 원하지 않는 것으로 인식하는 경우에도 고객이 "개선"을 원하거나 필요로한다는 것입니다. 일을하는 특정 방식이 확립되면 워크 플로를 변경하는 것은 매우 "비용이 많이 드는"작업입니다. 사용자의 컴퓨터 수줍음에 따라 UI의 변경 사항을 조정하는 데 다소 시간이 걸릴 수 있습니다.

혁신을 위해 고객의 혁신을 다루는 경우 이러한 개선 사항을 개발하는 것이 항상 재미있는 것은 아닙니다.

0

거꾸로 호환성을 유지할 수있는 혁신적인 방법을 찾아보십시오.