이전 버전과의 호환성을 깨는 제품의 새 버전을 시작하는 방법

게시 됨: 2019-02-22

며칠 전 Nelio의 동료와 저는 플러그인 Nelio A/B Testing의 미래와 향후 기능 및 개선 사항에 대해 논의했습니다. A/B 테스트 플랫폼인 플러그인은 WordPress의 새 버전을 유지하고 모든 것이 제대로 작동하는지 확인하기 위해 지속적인 업데이트가 필요합니다. 2013년 말에 WordPress용으로 출시한 최초의 플러그인이며 그 이후로 계속 발전해 왔습니다.

WordPress에 Gutenberg가 도입되면서 분할 테스트의 새로운 가능성이 열렸습니다. 그리고 이것은 흥미로운 질문을 제기했습니다. 우리 제품을 점진적으로 개선해야 할까요, 아니면 처음부터 시작하여 WordPress 블록을 최대한 활용하는 완전히 새로운 것을 출시하는 것이 더 나을까요?

아직 갈 길은 정해지지 않았지만 이전 버전과의 호환성 없이 새 버전을 출시할 때의 문제점이 무엇인지, 어떻게 완화하거나 제거할 수 있는지 논의하는 것이 재미있을 것이라고 생각했습니다.

그래서 오늘은 고객이 이러한 결정을 겪지 않도록 이전 버전과의 호환성을 깨는 새 버전의 서비스를 출시하는 두 가지 솔루션에 대해 설명하겠습니다.

이전 버전과의 호환성에 대한 참고 사항

Chris Lema가 얼마 전 자신의 블로그에서 말했듯이 “이전 버전과의 호환성은 WordPress 프로젝트에서 강력하게 유지되고 수용되는 것입니다. (…) [그것은] 개발자만의 가치가 아닙니다. 최종 사용자를 위한 가치입니다. 그리고 [고장난 경우] 사이트가 더 이상 작동하지 않는다는 메시지가 표시되는 것은 최종 사용자입니다.”

이것이 무엇인지 표현하는 Barak Obama의 Gif
사용자가 작동하지 않는 플러그인으로 끝나지 않도록 하십시오.

그렇다면 이전 버전과의 호환성을 중단한다는 것은 정확히 무엇을 의미합니까? 어떻게 깰 수 있습니까? 다음은 몇 가지 예입니다.

  1. 플러그인을 확장할 수 있는 API 변경(함수, 후크 등).
  2. 데이터베이스 구조 수정.
  3. 클라우드의 API 변경(플러그인이 API를 사용하는 경우).
  4. 새로운 비즈니스 모델로 이동하여 업데이트, 기능 등의 새로운 패러다임으로 이동합니다.

예를 들어 A/B 테스팅 서비스를 고려하십시오. 대략적으로 작동 방식은 다음과 같습니다.

  • 사용자는 웹사이트에서 A/B 테스트를 생성할 수 있습니다. 본질적으로 A/B 테스트는 테스트하려는 페이지, 해당 페이지의 하나 이상의 변형 및 개선하려는 전환 목표로 구성됩니다. 이 모든 정보는 WordPress에 저장됩니다.
  • 클라우드 구성 요소는 Nelio A/B Testing을 사용하는 웹사이트 방문을 추적하는 역할을 합니다. Google Analytics와 유사하게 이 구성요소는 정보를 수집하고 처리하며 요약된 결과를 생성합니다. 그리고 GA와 마찬가지로 이 데이터는 추적 스크립트를 사용하여 전송됩니다.
  • 마지막으로 API를 통해 이 클라우드에 연결하는 플러그인 보기가 있습니다. 보기는 요약된 결과를 가져오고 일부 통계 및 그래픽을 사용자에게 표시합니다.

Nelio A/B Testing과 같은 플러그인은 다양한 방식으로 변경될 수 있으며 주의하지 않으면 이러한 변경 중 하나가 "깨진 플러그인"을 초래할 수 있습니다. 예를 들어 클라우드의 API를 업데이트하기를 원하거나 업데이트해야 한다고 가정해 보겠습니다. 이 경우 추적 스크립트와 결과 보기가 해당 API에 의존하기 때문에 플러그인도 업데이트해야 합니다. 따라서 새 API에는 새 플러그인이 필요합니다. 그러나 여기에 문제가 있습니다. 이 새로운 API는 또한 플러그인의 이전 버전이 새 API와 통신할 수 없기 때문에 사용자가 이제 업그레이드를 강제로 수행해야 함을 의미합니다.

이제 사용자의 입장에서 생각하십시오. 원활하고 완벽하게 작동하던 플러그인이 클라우드에서 수행한 업데이트로 인해 더 이상 작동하지 않습니다. 쿨하지 않아. 전혀 시원하지 않다

가능한 해결책

이전 버전과의 호환성을 깨는 것은 사소한 문제가 아닙니다. 세심한 고려가 필요한 부분입니다. 그리고 어쨌든 가장 중요한 것은 현재 사용자에게 작동하지 않는 플러그인을 남겨두지 않는 솔루션을 선택하는 것입니다. 특히 당신의 서비스에 대해 당신에게 돈을 지불하는 사람들에게.

어떤 이유에서든 프리랜서나 회사에 가장 적합한 것이 완전히 새로운 버전의 제품으로 처음부터 시작하고 이전 버전과의 호환성을 제거하는 것이라면 두 가지 솔루션이 있습니다. 그들과 함께 우리는 사용자가 이전에 사용했던 것을 계속 사용할 수 있도록 하면서 깨끗한 상태를 만들 수 있을 것입니다.

신제품 출시(옵트인)

이전 버전과 호환되지 않는 버전을 출시해야 하는 첫 번째 솔루션은 그렇게 하지 않는 것입니다. 대신 새 제품을 출시하십시오! !

확인하라고 말하는 남자의 GIF
별도의 제품을 출시함으로써 이전 버전과의 호환성을 깨는 것은 피하지만 사용자에게 새 버전으로 전환하도록 요청해야 합니다.

이것은 현재 사용자가 평소와 같이 작동하는 작동 플러그인 을 가지고 있음을 보장합니다. 사실, 단순히 새 버전이 절대 존재하지 않을 것이기 때문에 "문제를 해결하는" 버전으로 업그레이드할 수 없습니다. 완전히 새로운 플러그인을 출시하고 이 새 플러그인을 업데이트하는 데 노력을 기울이고 있습니다. 즉, "과거에 고정"되었습니다.

물론 이것은 해결해야 할 몇 가지 심각한 문제를 제기합니다.

  1. 우리가 이미 가지고 있는 사용자들은 우리가 그들에게 말하지 않는 한 우리 제품의 새 버전이 있다는 것을 모를 것입니다. 이것은 우리가 이전 플러그인에서 "새로운 플러그인/서비스"를 홍보해야 한다는 것을 의미합니다. 이상해 보이지만 잘 작동합니다.
  2. 새로운 제품을 출시하는 것은 매우 어렵습니다 . 이전 제품에 대한 모든 노력(브랜드 생성, 포지셔닝, 리뷰 받기, 활성 설치 등)이 사라지고 처음부터 시작해야 합니다.

이것은 옵트인 솔루션입니다. 새 제품을 출시하고 이전 제품 사용을 중단하고 새 제품을 구입하도록 초대합니다. 이것은 WordPress가 몇 달 전에 Gutenberg를 플러그인으로 출시했을 때 한 일입니다.

이전 버전과의 호환성을 깨는 업데이트 실행(옵트아웃)

또 다른 옵션은 역 접근 방식 또는 옵트아웃 솔루션입니다. 이전 버전과의 호환성을 깨는 제품 업데이트 를 출시하고 동시에 이전 버전 으로 새 제품 을 출시합니다. 이러한 방식으로 새 버전이 이전 버전과 호환되지 않더라도 모든 것이 익숙한 대로 작동하도록 사용자에게 대안을 제공합니다.

와우라고 말하는 남자의 Gif
새 버전을 출시하면 모든 사용자가 새 버전을 보고 발견할 수 있습니다( 와우 효과). 그러나 그들이 그것에 관심이 없다면 우리는 그들에게 새 제품으로 출시될 이전 버전을 사용할 수 있는 옵션도 제공할 것입니다.

이 방법은 이전 솔루션에서 제기한 두 가지 문제를 해결합니다. 한편으로 모든 사용자는 첫날부터 우리 제품/서비스의 새 버전이 있다는 것을 알게 되며 새로운 것을 보고 시험해 볼 수 있습니다.

다른 한편으로(그리고 아마도 더 중요한), 우리는 우리가 지금까지 수행한 모든 작업에서 계속해서 이익을 얻고 있습니다. 왜냐하면 우리는 단순히 잘 정립된 제품의 새 버전을 출시했기 때문입니다. 브랜드, 리뷰, 통계 등은 그대로 유지됩니다. 처음부터 시작하지 않기 때문에 아무 것도 변경되지 않습니다.

상상할 수 있듯이 이것이 옵트아웃 솔루션입니다. 사용자가 플러그인을 업데이트할 때마다 새 버전이 표시됩니다(역호환성이 깨지는 사실이 마음에 들지 않더라도). 그러나 새 제품을 설치하여 이전 버전으로 다시 전환할 수 있는 기회도 제공합니다. 이것이 WordPress가 지난 12월 최신 업데이트에서 블록 편집기를 도입하고 사용자에게 Classic Editor 플러그인을 설치하여 이전 편집기를 사용할 수 있는 가능성을 제공했을 때 한 일입니다.

요약하자면

이전 버전과의 호환성을 깨는 것은 사용자에게 큰 영향을 미칠 수 있으므로 사소한 일이 아닙니다. 일반적으로 권장하지 않습니다. 그러나 때로는 이것이 유일한 옵션입니다.

그렇게 해야 하는 경우 오늘 본 두 가지 솔루션 중 하나를 구현하는 것이 좋습니다. 이를 통해 사용자가 "모든 것이 예전처럼 작동"하고 아무도 "문제가 발생하는 것"에 대해 불평하지 않도록 백업 계획이 있는지 확인합니다. 물론 상대방으로서 두 제품을 유지해야 하지만("이전" 버전이 최소한의 유지 관리가 있다고 가정하더라도) 이것은 다른 게시물의 주제입니다.

이제 말해 보세요. 이런 문제에 직면한 적이 있습니까? 어떻게 해결하셨나요? 어떻게 하시겠습니까?

Unsplash의 Dietmar Becker의 추천 이미지.