(Case Study) PHP 기업인 Zend의 문제 추적

설립: 1999년
본사: 캘리포니아주 쿠퍼티노
직원 수: 115명
제품: JIRA, GreenHopper, FishEye

Zend는 말 그대로 ‘PHP 기업’입니다. 홈페이지에 그렇게 나와 있습니다. Zend 로고의 일부이기도 합니다. 저는 자기를 소개할 때 이렇게 명확히 무엇이라고 말하는 업체를 본 적이 없는 것 같습니다.
Zend는 PHP 개발에서 시작되고 성장했습니다. 이 둘은 서로 떨어뜨려 놓고는 생각할 수가 없습니다. 이렇게 깊은 역사 덕분에 저는 이런 귀중한 스크립팅 언어의 선구자가 Atlassian 제품을 어떻게 사용했는지 알아볼 기회에 흥분을 감출 수 없었습니다.

저는 Zend Technologies의 공동 창립자인 Zeev Suraski와 Zend 서버 제품 라인의 담당 이사인 Alex Haiut와 접촉했습니다. Zend는 모든 PHP 기반 소프트웨어의 개발에 중심을 둔 인프라 소프트웨어 회사입니다. 이스라엘의 텔아비브에서 창립한 다음 캘리포니아주 쿠퍼티노의 실리콘밸리에 본사를 설립했습니다. Zend는 문제 추적에 JIRA를 사용하고 애자일 프로젝트 개발에 JIRA Agiel (GreenHopper)를 사용하면서 무척 만족해하고 있습니다.

Zend에 대한 소개를 부탁드립니다.

Zend는 저와 Andi Gutmans와 시작했고 우리 둘은 원래 PHP 개발에 기여하던 사람들이죠. 벌써 13년 전 일이군요. 우리는 나중에 PHP 3과 PHP 4가 된 작업의 인프라를 작성했고 또 PHP 5 개발에서 가장 중요한 작업 중의 일부를 주도했습니다. 우리가 Zend를 창립한 것은 PHP에서 PHP 사용 회사에 지원과 솔루션을 제공하고 전 세계적으로 PHP의 사용을 확산시키겠다는 정책을 시행한 지 2년 반 정도 지나서였습니다.
현재는 여러 가지 다양한 일을 하고 있습니다. 몇 개 오픈 소스 프로젝트에서 활동하고 있고 PHP 자체에도 여전히 활발하게 참여합니다. PHP의 두뇌인 Zend Engine의 주요 기여 중 대다수는 아니더라도 많은 수가 Zend에 의해 수행되었습니다. 우리는 Zend 프레임워크 프로젝트를 이끌고 있는데 여기에서도 Atlassian 도구를 사용합니다. 이 프로젝트는 몇 년 동안 활발히 진행되어 왔습니다. 우리는 Eclipse에서 PHP를 개발하는 도구 집합인 Eclipse PDT 프로젝트의 주요 기여자입니다.
상업적인 측면에서는 두 개의 주요 제품군이 있습니다. 개발 도구 영역에서 Zend Studio는 PDT 위에 구축되어 상업용 Eclipse 기반 IDE 솔루션을 제공합니다. 런타임 측면에서는 주력 제품 Zend Server가 있습니다. 이 제품은 이미 빌드되고 테스트된 PHP 버전을 제공하고 필요에 따라 핫픽스와 업데이트를 제공하는 PHP용 응용프로그램 서버라고 생각하시면 됩니다. 이뿐만 아니라 또 많은 PHP 클러스터 관리를 통해 PHP 성능 향상, 개별 PHP 클러스터에서 일어나는 상황에 대한 파악, 비동기 작업을 실행하는 기능과 같은 새로운 언어 기능까지 수많은 가치 부가 기능을 제공합니다.

JIRA를 어떻게 사용하십니까?

우리는 회사의 모든 소프트웨어 개발 제품과 기본적으로 개발하는 모든 제품의 버그 추적 시스템으로서 JIRA를 사용합니다. 이 내부 추적 시스템이 바로 JIRA 시스템이 설계된 목적이죠. 회사 내의 모든 담당자(개발, QA, 제품 관리, 지원 등)가 사용하지만 사이트(인스턴스)는 고객에게 노출되지 않습니다. 그러나 이제는 공개할지를 생각 중입니다.
원래 JIRA로 마이그레이션하기 전에 Mantis를 사용하기도 했었죠. JIRA를 사용해보니 일반적으로 개별 마이그레이션 경험은 아주 아주 긍정적이었습니다. 명확성의 측면에서는 시스템에서 정보를 얻는 기능이 있고 Mantis의 기능보다 훨씬 우수합니다. 상대적으로 설치하기 쉽고 직관적이며 마이그레이션이 아주 원활합니다. 지금은 JIRA를 사용해서 최고 속도로 실행하고 있습니다. 이미 JIRA를 기반으로 몇 개 제품을 출시했고 현재 잘 되고 있습니다. JIRA Agile (GreenHopper)은 아직도 약간 손 볼 부분은 있지만 애자일 프로젝트 관리 면에서의 경험은 아직까지는 전반적으로 아주 긍정적입니다. JIRA에서 마음에 드는 점은 인벤토리에 대한 전체 상황을 완전히 파악할 수 있다는 점입니다. JIRA에 제출된 단일 버그나 문제를 추적할 수 있을 뿐만 아니라 전체 버그 데이터베이스를 다양한 매개 변수로 잘게 나누는 기능과 특정 프로젝트의 중요한 단계나 진행속도 관련 상황을 명확하게 파악하는 기능 등이 있습니다.
JIRA는 현재 주요 제품군과 몇 가지 내부 프로젝트를 포함한 5~7개의 프로젝트로 구성되어 있습니다. 우리는 프로젝트별로 사이트(인스턴스)를 구성했고 각 프로젝트에는 자체 워크플로와 설정이 있습니다. 대부분은 약간씩 변경이 된 JIRA 워크플로입니다. 또 몇 가지 사용자 지정 워크플로도 있습니다. 몇 개의 추가 기능과 다양한 그래프와 차트가 있지만 특출난 것은 없습니다. 우리가 사용해 봤을 때 기본 기능이 아주 훌륭하게 작동합니다. FishEye 플러그인, JIRA와의 통합도 굉장히 유용합니다. 일상적인 리포지토리 탐색에 사용하지 않고 JIRA 티켓의 소스 코드에 대한 커넥터로 대신 사용합니다.

어떻게 Atlassian 문제 추적기로 마이그레이션하기로 결정했습니까?

우리에게는 여러 발전 주기를 거친 Mantis 버그 추적 시스템이 있었습니다. 사용한 지 몇 년이 지나 상당히 많이 수정했고 온갖 종류의 문제가 발생하고 있었습니다. 이 시스템은 PHP 기반이라 우리의 요구 사항에 맞게 쉽게 변경할 수 있었습니다. 하지만 우리는 새로운 시작이 필요한 단계에 도달했습니다. 개발 프로세스를 반영하기 위해 버그 추적 시스템에 주요한 변화가 필요하다고 판단했습니다. 목표를 달성하기 위해 몇 가지 최신 Mantis 버전으로 대안을 분석했습니다. 그 이외에 또 하나의 대안이 커뮤니티에서의 전반적인 인기 때문에 버그 추적기 “명단”에 추가한 JIRA였습니다. JIRA의 안정성과 전반적인 성능에 대한 훌륭한 참조 자료를 받았습니다. 동반되는 도구의 강점도 있었습니다. 보니까 하나 둘이 아니라 전체 제품이 다 우수했습니다. Bugzilla나 지금은 기억 안 나는 몇 가지 다른 대안도 검토했습니다. 성능과 다른 시스템과 통합되는 기능 등 각각에서 얻을 수 있는 이점을 분석했습니다. 이런 주요 요소를 바탕으로 JIRA가 선정된 것입니다.

 
Zeev Suraski, Zend 공동 창립자 

마이그레이션에 관한 한 분명한 변화의 시도였습니다. 그 누구도 처음에는 변화라는 것을 좋아하지 않죠. JIRA로의 마이그레이션 작업은 무척 직관적으로 느껴졌고 우리 팀은 아주 빠르게 적응했습니다. 몇몇 회의주의자도 있었습니다. 예를 들어 QA에서는 "이걸로 내 인생이 바뀌겠어?"라고 했었죠. "그래 봤자 골칫거리에 가동 중지 같은 문제들만 생길 거야.”라고 말입니다. 하지만 지금은 QA가 JIRA의 최대 지지자이고 변화에 대해 아주 만족해하는 것이 사실입니다. 일반적으로 대부분의 사람들은 변화를 싫어합니다. 현재 상태에 만족하죠. 마이그레이션한 일 주일 후부터 사람들이 혜택을 직접 체험하기 시작했습니다. 결과적으로 저는 사람들이 이 변화를 좋게 받아들였다고 봅니다.
한 가지 덧붙이자면, CEO가 Atlassian의 광팬이고 Atlassian 도구를 사용하도록 Zend 프레임워크 프로젝트를 추진한 사람이었습니다. CEO는 분명히 조직 내 다른 부분에도 같은 방식으로 해보자고 제안했습니다. JIRA는 Mantis와 달리 문제 개방과 해결에 관한 워크플로의 구현도 지원합니다. 우리는 이 기능을 아주 높게 평가합니다.

Mantis와 JIRA의 가장 큰 차이는 무엇입니까?

두 가지를 말씀드리겠습니다. 먼저 JIRA로 사용자 지정 워크플로를 구현할 수 있고 Mantis보다 훨씬 강력한 특정 방식으로 프로세스가 일어나게 만들 수 있습니다. JIRA의 유연성과 성능을 좋아하고 간편한 방법으로 정확하게 워크플로를 구현시키는 기능이 좋습니다. 우리의 개발 프로세스가 JIRA의 기본 워크플로와 상당히 비슷하다는 점을 발견했습니다. 버그 추적 소프트웨어의 기본 워크플로는 이미 Zend에서 작업하던 방식과 비슷해서 JIRA는 당연한 선택이었습니다. 두 번째로 데이터 액세스 제공의 측면에서 JIRA는 탁월합니다. 보고 옵션이 많으며, 본질적으로 새로운 데이터를 생성하기 위해 데이터를 잘게 자르는 기능은 Mantis에는 거의 없던 기능입니다. JIRA의 대시보드 Gadget(보고)은 훌륭합니다. 우리가 사용하던 Mantis 이전 버전에는 이 기능이 없었습니다. 저는 이런 것들이 JIRA로 바꾸게 된 주된 이유라고 생각합니다.

Mantis로 작업했던 것과 근본적으로 다른 것이 또 한 가지 있습니다. 어떤 팀은 결과물을 작업으로 시험하기 위해 JIRA를 사용합니다. 모든 작은 하위 작업이 해결이 보장되는 문제로 JIRA로 들어가는 것이죠. 우리는 문제나 버그만이 아니라 작업도 추적합니다. 이것은 분명히 우리가 Mantis를 사용하던 방식과 JIRA가 전혀 다른 부분입니다. 시간이 지나면 사용을 점점 더 확대할 것입니다.

JIRA를 앞으로 어떻게 발전시키실 건가요?

다음 몇 개월 동안 이미 JIRA에 있는 시스템에서 더 많은 데이터를 얻을 수 있는 방법을 찾을 계획입니다. 일반적으로 말해서 JIRA가 문제 추적 시스템으로서 또는 Zend에서 갖고 있는 개발 워크플로와 품질 프로세스에 대한 정보원으로서 수행하는 기능에 대해 만족합니다. 우리는 JIRA 버그 추적 시스템의 주요 맥락에서뿐만 아니라 워크플로에 추가로 영향을 미치고 개발 주기 및 테스트 주기에 도움을 받기 위해서 JIRA Agile(GreenHopper)을 사용할 것 같습니다.

JIRA 사용을 고려하는 업체에 조언하실 말이 있습니까?

저는 확실히 JIRA를 추천합니다. 저는 처음부터 단지 문제 추적 시스템이 아니라 프로젝트 추적 소프트웨어를 사용해 볼 생각이 있었습니다. 그럴 가치가 있습니다. 거기에서 얻을 수 있는 데이터양, 명확성, 적용할 수 있는 워크플로가 아주 아주 강력합니다. 또 JIRA를 공격적으로 조정하고 원하는 만큼 수위를 높일 수도 있습니다. 소기업용으로 구성할 수도 있지만 좀 복잡한 흐름을 적용하고 싶다면 그렇게도 가능합니다. 작은 회사에서는 이런 기능을 소기업용으로 맞출 수 있기 때문에, 성능이 떨어지는 도구보다는 더 좋은 도구를 사용하라고 조언하고 싶습니다. 저는 작은 회사의 경우 제품 품질에 대해 명확히 파악하는 것이 중요하다고 생각합니다.

Java 기반 도구를 사용하는 PHP 작업장에 대해 하실 말이 있습니까?

좋은 질문이네요! 우리는 ‘PHP 기업’이라고 알려져 있지만 조직 내부적으로는 실제로 아주 광범위한 도구를 사용합니다. PDT와 Studio의 경우 Java를 사용합니다. Zend에는 Java를 모르는 사람이 없습니다. PHP 팀은 Zend 서버용 UI를 개발하고 C++은 제품의 두뇌인 엔진을 개발합니다. 우리는 PHP와의 시너지 효과와 관련 경험 때문에 PHP 기반 시스템을 선호하는 경향이 있다고 말하고 싶습니다. 그것이 Mantis의 이점 중 하나였죠. PHP 기반인 데다가 쉽게 변경하고 구성할 수 있었습니다. 그렇지만 문제 추적기 개발은 우리 영역이 아니라는 결론에 도달했습니다. 변경하고 구성하고 패치를 구현하고 싶지 않습니다. PHP 기반의 문제 추적기가 있다면 저는 Java 버전을 아마도 선호하겠지만 지금까지 가장 중요한 기준은 작성 언어가 아니라 시스템의 성능 수준이었습니다. 저는 우리가 Java 기반 시스템을 사용하는 것에 대해 불평하는 소리를 들어본 적이 없습니다. 하지만 리소스 활용도에 대해 걱정하는 사람은 있었습니다. 그래도 우리는 미리 준비했고 메모리가 많은 강력한 시스템으로 JIRA를 구입했습니다. 그래서 만족합니다.
감사합니다, Zeev, Alex!

댓글

이 블로그의 인기 게시물

Confluence 내의 스프레드 시트 기능이 필요하시다면 애드온을 활용해 보십시요

시스템에 숨어있는 "윤초" 버그에 대해 준비하십시요

Confluence 페이지의 분류와 관련된 잘 몰랐던 기능 3가지를 확인해 보십시요