Monday, July 14, 2008

폭포수 모델의 난해한 문제점 및 스크럼 마스터

글 제이미 마이어
ISIS 커뮤니케이션 전문가

일반인에게 소프트웨어 개발 방법을 설명하기란 결코 쉽지 않습니다. 소프트웨어 개발에는 소위 “코드”라 불리는 개발자들만의 비밀 언어가 사용되기 때문입니다. 그래도 이번에는 이러한 비밀 언어에 대해서 잠시 설명해보겠습니다.

소프트웨어 개발에 있어 폭포수 모델은 오래된 접근 법이라 할 수 있습니다. 일반적으로 폭포수 개발은 순서에 따라 모든 작업을 순차적으로 계획해 놓고 전체 어플리케이션을 개발하는 방식입니다. 따라서 일단 작업 시작되면 마치 폭포수가 떨어지는 것처럼 쉬거나 변경되는 일 없이 전체 어플리케이션 개발이 진행됩니다. 그래서 폭포수 모델은 일반적으로 상의하달식 경영 방식과 비교할 수 있습니다. 하지만 폭포수 모델은 난해한 문제, 즉 처음 계획 단계에는 예상하지 못했던 내부 모순적 문제로 인해 프로젝트 전체가 좌초될 수 있습니다. 소프트웨어 개발 과정에서 난해한 문제들이 발생할 가능성은 매우 높고 폭포수 방법에서 고객은 프로젝트가 최종 완료되고 나서야 소프트웨어가 작동하는 모습을 확인할 수 있습니다. 게다가 이 시점에는 이미 난해한 문제들이 치명적인 문제로 성장해서 되돌리기가 힘듭니다. (위 내용은 tucows.com에서 일부 발췌했습니다.)

ZIMS는 이러한 폭포수 방법의 문제점을 보완하고자 약 10년 전에 개발된 애자일 방법을 사용합니다. 폭포수 방법에서는 심도 깊은 사전 계획을 통해 난해한 문제점을 해결하려고 한다면 애자일 방법론에서는 아무리 철저하게 사전에 준비하더라도 작업 중에는 어쩔 수 없이 난해한 문제가 발생한다고 가정합니다. 따라서 애자일 방법에서는 개발자와 고객이 긴밀하게 공조하여 계획을 변경하고 우선 순위를 다시 정하는 등 유연하게 대처합니다. ISIS는 애자일 방법론 중에서도 스크럼 방식을 사용하고 있습니다. 스크럼은 선수들이 얼굴을 맞대고 전술을 대형을 짜는 럭비 경기에서 유래된 말입니다. 럭비 경기에서 스크럼은 몇몇의 선수들이 공을 중심으로 서로 어깨를 맞대고 밀고 당기면서 뭉친 진영을 가리키는 말입니다. 스크럼 방식에서는 단기간 집중적으로 작업해 눈으로 확인 가능한 성과물을 만들어냅니다. 그래서 마치 폭포수가 떨어지는 것처럼 전체 소프트웨어를 한 번에 릴리스하기 보다는 여러 단계로 나눠서 조금씩 릴리스하고 별도의 기능이 필요하면 이후 릴리스에 추가합니다. 전체 소프트웨어는 각 스크럼으로 나눠서 개발되고 매우 구체적인 고객의 요구 사항까지 반영하기 때문에 완전한 고객 승인을 얻을 수 있습니다. 이런 연유로 ZIMS도 여러 단계에 걸쳐 릴리스됩니다. (위 내용은 클레이그 머피의 “스크럼을 이용한 적응적 프로젝트 관리”에서 일부 발췌했습니다.)

스크럼 방식의 기본 요소 중 하나는 매일 수행하는 일일 스크럼 회의입니다. 우리는 중부 표준시 8:00 AM(뉴델리 시간 6:30 PM)에 일일 스크럼 회의를 갖습니다. 그리고 스크럼 방식의 다른 요소들과 마찬가지로 회의도 정확히 정해진 시간 안에서 이뤄집니다. 일일 스크럼 회의는 아래 세 가지 질문에 대해 모든 참석자가 가능한 간단하게 답하는 방식으로 진행되며 회의 시간은 15분을 넘지 않습니다.

어제 어떤 작업을 진행했나?
오늘은 어떤 작업을 진행할 예정인가?
오늘 작업 가운데 예상되는 문제점은 무엇인가?

스크럼 회의의 목표는 팀원들이 긴밀하게 공조하여 빠르게 작업을 진행하며 공동의 목표에 집중하도록 하는 것입니다. 스크럼 회의는 ISIS가 현재 진행하고 있는 집중 프로세스의 상징이라 할 수 있습니다. 이 프로세스가 제대로 작동하려면 스크럼 마스터라 불리는 강력한 지도자와 감독관이 필요한데 이번 프로젝트에서는 새로운 ZIMS 프로젝트 매니저, 앨빈 스미스가 이 역할을 담당하고 있습니다. 미네소타의 ISIS 사무실에서 근무하는 앨빈은 진행 속도가 빠르고 변경이 가능하며 유연하고 긴밀한 공조가 필요한 애자일 환경에서 공동 목표에 따라 모든 작업이 안정적으로 진행되도록 또한 팀원 중 누구 하나 길을 잃고 헤매지 않도록 관리 감독합니다.

Wednesday, July 2, 2008

ZIMS에서 가장 근사한 부분을 제작하는 ISIS 기술 팀

글 네이트 플레스니스
ISIS 상임이사

우리는 ZIMS 프로젝트에 애자일 개발이라는 새로운 방법을 선택했습니다.

이 새로운 프로세스에 따라 ISIS는 매일 진행되는 모든 작업을 직접 감독 관리할 것입니다. 보강된 ISIS 기술팀에서는 ZIMS의 “가장 근사한 부분”을 직접 제작하게 되어 책임이 커진 만큼 재미도 늘어났다고 할 수 있겠습니다. 새로운 벤더에서는 일반적인 소프트웨어보다 훨씬 수준 높은 코드를 작성해 달라는 ISIS의 요구에 따라 전체적인 사용자 인터페이스 기능 향상 등과 같이 기술적으로 좀더 포괄적인 부분을 담당할 예정입니다.

ISIS은 가히 최고 수준이라 평가할만한 개발팀을 보유하고 있어 새 벤더를 선정(아래 ZIMS 블로그 참조)하기 전에 이미 내부 팀에서 직접 ZIMS 프로젝트의 중요한 작업을 처리하기도 했습니다. 이들 주요 작업 중 하나는 데이터베이스의 단순화입니다. 이 작업을 구체적으로 설명하기는 힘들지만 원래 데이터베이스의 작동 방식은 지금보다 훨씬 복잡했습니다. 하지만 ISIS 개발팀과 컨설턴트는 기존 데이터베이스를 검토하고 평가한 후 그 복잡도를 반으로 줄였습니다.



이를 보면 왜 동물원과 수족관의 실제 작업 및 이들이 필요로 하는 사항을 잘 알고 있는 전문가가 ZIMS 개발에 참여해야 하는지 그 이유를 분명히 알 수 있습니다. ZIMS에서는 이들 커뮤니티의 영역별 전문가와 ISIS직원이 프로그래머 옆에서 함께 작업을 진행합니다. 그리고 이러한 접근법은 이번 개발 과정에서 이미 큰 차이를 만들어내고 있습니다.

Tuesday, July 1, 2008

인도에서 전합니다.

글 더그 베두즈코
ZIMS 수석 아키텍트

A-1과 함께 진행하는 파일럿 프로젝트의 6주 과정 중 벌써 한 주가 지났습니다. 이번 파일럿 프로젝트에서는 ISIS에서 제안한 ZIMS의 새로운 방법론과 ISIS와 새 벤더의 작업 관계를 테스트합니다. 우리 내부에서는 ISIS는 일반 고객과 성격이 다르고 ZIMS는 보기 드물 정도로 복잡한 프로젝트라는 사실에 익숙해져 있지만 외부인에게 ZIMS에 어떤 기능이 필요하고 지난 34년 간 ISIS에서 어떤 작업을 수행해 왔는지 설명하면 지금까지 이런 일은 본적이 없다며 깜짝 놀랍니다.

이번 주는 A-1팀에서 ISIS와 동물학, ZIMS 프로젝트, ISIS 팀이 구상한 ZIMS의 기술 아키텍처를 익히는 시간이었습니다. 네이트, 하산, 엘리자베스, 원레이, 크레이그, 리치, 김, 그리고 저까지 총 8명으로 구성된 ISIS 팀은 일주일 동안 오리엔테이션을 열어 A-1 팀에게 되도록 많은 정보를 전달했습니다. A-1팀은 훌륭한 질문을 많이 해주었고 이번 주는 매우 순조롭게 지나갔습니다.


앞으로 몇 주 동안은 A-1팀에서 ZIMS 화면을 직접 작성함으로써 이들이 시간과 노력이 많이 필요한 ZIMS 프로젝트를 수행할 역량을 갖췄는지 평가할 것입니다. 물론 A-1과의 업무가 잘 진행되길 바라지만 ISIS는 이번 작업 관계를 통해 우리의 요구 조건에 맞는지 신중하게 판단할 것입니다.

이번 주에 저희 8명은 미네소타에서 인도 구르가온으로 건너와 매우 바쁜 한 주를 보냈습니다. 실제 프로젝트가 시작하면 전 작업 기간에 걸쳐 ISIS에서 인도로 인력을 파견할 예정이라 이 부분도 이번 파일럿 프로젝트에서 확인해봐야 합니다. ISIS에서는 내부 개발자나 커뮤니티의 영역별 전문가들을 주로 파견할 것입니다. 그래서 앞으로 일년 동안 항공 마일리지가 엄청나게 쌓일 것 같습니다.

저희 팀은 가끔 업무로 인한 두통이나 위장병으로 시달리기도 했으나 이는 커뮤니티에서 원하는 수준의 ZIMS를 개발하기 위한 하나의 과정이 아닐까 싶습니다.

Tuesday, June 17, 2008

인도로 출발

하산은 아래 포스트를 통해 인도에서 A-1 테크놀로지와 함께 6주 동안 진행할 파일럿 프로젝트의 목적과 목표를 설명했습니다. 간단히 말하자면 이 파일럿 프로젝트의 목표는 세부 계획과 작업 관계를 시험하는 것입니다. 아래는 인도에 가서 A-1 테크놀로지와 함께 파일럿 프로젝트 진행할 명단입니다.

몇 주간 장기 체류할 인원:
하산 사이드
더그 베두즈코
리치 랑그레
크레이그 옐릭
원레이 팽
누리 스워드
엘리자베스 헌트

1주 가량 체류할 인원:
네이트 플레스니스
킴 헤이스팅스

일주일 후에 진행 상황을 업데이트하겠습니다.
네이트

Thursday, June 5, 2008

새 벤더와 파일럿 프로젝트 진행

글: 하산 사이드
ISIS 부국장

ISIS는 약 2주 내에 A-1 테크놀로지와 함께 파일럿 프로젝트를 시작할 예정입니다. 프로젝트는 뉴델리 외각에 위치한 하리아나주 구르가온에서 진행될 예정입니다. “하리아나의 사이버 도시”로 알려진 구르가온은 인도의 실리콘밸리라 할 수 있습니다. 파일럿 프로젝트는 새 ZIMS 벤더를 선정하기 전 시험 단계로써 조직의 작업 방법 및 A-1과 ISIS의 관계를 테스트하는 것이 목적입니다.

우리의 경험에 의하면 ZIMS는 매우 불규칙한 소프트웨어 프로젝트이며 ISIS는 벤더에게 일반적인 고객과 달리 까다롭게 비춰질 것으로 보입니다. ISIS에 속한 동물원과 수족관 커뮤니티의 요구 사항이 매우 다양하기 때문에 이를 모두 반영하려면 프로그램 역시 복잡해집니다. 그래서 ZIMS는 결코 평범한 프로젝트가 아닙니다. 그리고 ISIS도 단일 기업이라기 보다 각 기관들이 회원으로 가입해서 형성한 네트워크에 가깝기 때문에 결코 평범한 고객은 아닙니다. 그래서 ISIS에서 제안한 애자일 개발 방법은 이렇게 각기 다른 동물원과 수족관의 요구 사항을 반영하기에 적당한 개발 방법입니다. (애자일 개발 방법에 대한 자세한 사항은 다음에 설명하겠습니다.)

6주간 진행될 파일럿 프로젝트에 대비해서 ISIS에서는 6명으로 구성된 내부 팀을 인도 구르가온에 위치한 A-1 테크놀로지에 파견할 예정입니다. 실제 ZIMS 프로젝트를 진행하기에 앞서 이번 파일럿 프로젝트에서는 모든 아이디어와 세부 계획을 테스트하고 프로젝트 진행 중 자연적으로 발생할 문제점을 확인할 것입니다. 우리는 이 파일럿 프로젝트를 통해 실제 프로젝트를 시작하기에 앞서 가능한 많은 문제를 확인하고 해결할 수 있기를 바랍니다.

파일럿 프로젝트에서는 다음 사항을 확인합니다.

• 벤더가 애자일 방법론에 의해 정한 시간표에 맞춰 ISIS에서 요청한 복잡한 코드를 작성할 역량을 갖추고 있는지 확인
• ISIS에서 최종 사용자(사용자 편의성)와 동물원 그리고 수족관의 복잡한 요구에 관해 A-1 개발팀과 소통 가능한 역량을 갖추고 있는지 확인
• ISIS와 A-1 각각이 소통하여 서로의 요구 사항을 이해할 능력이 있는지 확인
• 벤더 개발자와 ISIS 영역별 전문가가 같은 장소에서 작업할 때 주의해야 할 세부 사항과 문제점 확인(향후 A-1과 실제 프로젝트를 진행하게 되면 상당수 ISIS 직원과 ISIS 글로벌 커뮤니티의 자원 봉사자가 인도에서 많은 시간 체류함)


파일럿 프로그램은 6월 23일쯤부터 시작할 예정이며, 8월 초에는 마무리가 될 것으로 예상하고 있습니다.





Wednesday, June 4, 2008

과도기에 필요한 리더십

네이트 플레스니스, ISIS 상임이사
크리스 웨스트, ISIS 이사회 의장

ZIMS 프로젝트의 벤더 변경은 ISIS 이사진에게 조직의 현 상황을 주의 깊게 분석할 기회가 되었습니다. 새로운 ZIMS 개발 계획은 단순히 새로운 벤더를 선정해 이전 벤더가 떠난 자리를 대체하는 것에 머물지 않습니다. 새로운 개발 과정에서는 ISIS가 ZIMS의 마지막 단계를 직접 감독하면서 프로세스를 세세하게 관리해야 하기 때문에 이전과는 접근 방법이 크게 다릅니다.

ISIS의 책임이 그만큼 커지기 때문에 지금은 냉철한 평가가 필요한 때입니다. 오늘부터 ISIS는 외부 기업 인포테크(http://www.infotech.com/Guest.aspx)와 함께 아래 세 영역에 걸쳐 ISIS의 프로젝트 관리 역량을 평가할 것입니다.

첫째 ZIMS 프로젝트 자체를 평가합니다. IT 기술 부분은 이미 평가를 마쳤고 새로운 개발 접근법이 해결책으로 제시되었습니다. 평가 작업은 ZIMS 일정에 영향을 주지 않습니다.

둘째 ISIS가 기존 서비스를 유지하면서 거대한 ZIMS 프로젝트를 진행할 만한 직원을 보유하고 있는지 평가합니다.

셋째 이전 ZIMS 프로세스와는 다른 ZIMS 배치(4단계에 걸친 릴리스)를 평가합니다.

향후 몇 달에 걸쳐 진행될 이번 평가를 통해 ISIS는 ZIMS 프로젝트를 성공적으로 완료하고 더욱 굳건한 조직으로 성장할 수 있도록 정비할 것입니다.




Tuesday, May 27, 2008

ARKS보다 뛰어난 ZIMS

글 엘리자베스 헌트,
ISIS 교육 및 기술 지원 팀 책임자

지난 주 ZIMS의 4단계 릴리스 계획을 포스트한 후 저희는 몇 가지 질문을 받았습니다. 이번 포스트에서는 그 중 한가지를 정리해 보았습니다. ZIMS에 관한 문의 사항이 있으면 제이미 마이어(jmeyer@isis.org)에게 보내주세요.

질문: ZIMS는 첫 번째 릴리스를 통해 동물원에서 일상적으로 필요한 서비스를 제공할 예정이라고 발표했는데, ARKS4에서 이러한 서비스를 제공하고 있지 않나요? 이미 이런 서비스가 있는데 왜 수백만 달러의 자금과 4년이라는 시간을 투자해 동일한 서비스를 만들어야 하나요?

예. ARSK는 오래 동안 동물원에서 일상적으로 필요한 서비스를 제공해온 훌륭한 프로그램입니다. 하지만 지난 몇 년 동안 우리의 요구 사항이 달라졌기 때문에 우리 생활의 다른 모든 기술도 이에 맞춰 발전해왔습니다. ZIMS 프로젝트는 현대 동물원의 요구를 충족시키려면 기술 발전이 필요하다고 인지한 전세계 동물학 커뮤니티 전문가들을 중심으로 이러한 논의가 이뤄지면서 시작되었습니다. ISIS에서 프로젝트 관리를 담당하고 수백 명에 달하는 동물학 관계자들이 일반적으로 인정되는 데이터 기준과 각 동물에 대해 국제적으로 통일된 단일 접근 번호, 실시간 데이터 등 현대 동물원에 필요한 사항을 알려주었습니다. 이들 요구 사항은 ARKS4의 서비스 범위에서 벗어나 있으며 소프트웨어는 훨씬 성능이 뛰어난 현대적인 툴로 대체되었기 때문에 업데이트될 수 없는 플랫폼에 개발됩니다.

(이들 동물 전문가들이 무상으로 봉사해준 모든 작업은 ZIMS의 기초가 되었으며 이들의 글로벌 협업은 ZIMS 프로젝트의 수많은 장점 중 하나로 손꼽히고 있습니다.)

ZIMS가 첫 단계부터 ARKS4보다 얼마나 뛰어난지 몇 가지로 예를 들어 설명해드리겠습니다.

ZIMS는 각 동물에 대해 국제적으로 통일된 단일 접근 번호를 부여할 예정입니다. 이 번호는 해당 동물이 다른 기관으로 옮겨지더라도 평생 동안 변하지 않습니다. 이러한 단일 번호 부여를 통해 모든 동물 기록을 조정하는 능력이 한층 향상될 것으로 기대됩니다. 이는 ARKS에서는 볼 수 없었던 큰 발전입니다.

ZIMS는 실시간 데이터를 제공할 것입니다. 아시다시피 지금은 각 기관에서 일정한 시간 간격을 두고 데이터를 제출하고 있습니다. 즉 ISIS 글로벌 데이터베이스에 올라와 있는 기록이 3개월 전 자료일수도 있고 그보다 오래 전 자료일 수도 있습니다. 그래서 ZIMS에서는 다른 동물원에서 동물을 데려오려고 할 때 해당 동물에 대해 현재 정보를 확인할 수 있을 것입니다. 또한 동물원에서 정보 교류의 국제화를 선도하려면 글로벌 규모의 실시간 정보 시스템이 필요합니다.

예를 들어 컨퍼런스에 참석했는데 누군가가 여러분이 속한 동물원의 동물 현황 대해 물어봤다고 가정해봅시다. (당신 동물원에서는 레드 판다곤 아종을 얼마나 보유하고 있나요? 독화살 개구리 사육에 적당한 물의 온도는 얼마인가요?) 어떤 컴퓨터에서든지 각자의 계정으로 ZIMS에 저장된 자신의 기록에 접근해 필요한 답을 찾을 수 있습니다. 또한 세계의 동물원이 서로 소통하려면 글로벌 수준의 실시간 정보 시스템이 필요합니다.

ARKS4에는 단체에 대한 기록이 많지 않습니다. ARKS에서는 프레리 도그 콜로니를 35마리 보유하고 있다고 기록할 수 있지만 그것이 다 입니다. 반면 ZIMS에는 나이, 성별, 새끼의 수, 각각의 생년월일 등 다양한 정보를 입력할 수 있습니다. ZIMS는 수없이 많은 방법으로 ARKS에서는 제공하지 않는 여러 가지 정보를 상세하게 기록할 수 있습니다

ZIMS에는 문서나 이미지를 업로드 할 수 있습니다. 예를 들어 해로운 야생동물 허가증을 복사해서 업로드 하면 필요한 사람이 이를 재빨리 찾을 수 있습니다. ZIMS에 얼룩말 뒷몸의 독특한 줄무늬 사진을 업로드 하면 이 얼룩말이 어떤 얼룩말인지 쉽게 구별할 수 있습니다.

특정 동물을 다른 동물원과 공동 소유하고 있다면 정확한 소유권 비율을 ZIMS에 기록할 수 있으며 무슨 일이 발생하면 즉각 알 수 있습니다. ARKS에서는 이런 서비스가 불가능합니다

(현 시점에서) 마지막으로 ZIMS는 수족관에 필요한 기능도 제공할 예정으로 이를 통해 ISIS 글로벌 데이터베이스에서 검색 가능한 동물군 수가 크게 증가할 것입니다. 이미 오래 전에 수행됐어야 하는 기능인데 ISIS은 수족관에서도 데이터를 저장하고 커뮤니티를 공유하기를 바랍니다. (그리고 상당수 동물원은 수족관을 보유하고 있습니다.)

위에서 언급한 기능은 모두 ZIMS 1단계에 계획입니다. 후속 버전이 공개되면 수동으로 ARKS에서 데이터를 추출해 MedARKS로 입력할 필요 없이 수의사들은 핵심 동물 기록과 해당 동물에 대한 수의학 관련 기록을 확인할 수 있을 것입니다. 후에는 혈통대장도 훨씬 빠르게 자동 업데이트할 수 있어져서 혈통대장 관리인도 작업 시간을 많이 절약할 수 있을 것입니다. ZIMS에서는 최초로 혈통대장을 실시간으로 제공할 것입니다.

이상의 같은 이유로 저희는 ZIMS 1단계가 가치 있다고 생각합니다. 질문해 주셔서 감사합니다.