협업 플랫폼 기반 전사적 ALM 솔루션 도입

2012년도에 Application Lifecycle Management(ALM) 솔루션의 Product Manager 할때 전자신문 CIO Biz에 기고했던 글입니다. 최근에 MSA, PaaS, Cloud Computing 기술때문에 DevOps의 needs가 높아지고 있으니 예전 생각이 납니다. Gartner의 Hype Cycle처럼 한번 올라갔다가 내려온 후, 다시 올라가고 있네요.

아래 글을 보실때 ALM은 DevOps로 이해하셔도 큰 무리는 없어보입니다.

  • Application Lifecycle Management 솔루션 → DevOps 환경
  • 통합개발플랫폼 → PaaS
  • RESTful API → Micro Service

최근 개발 업무에 관리 조직과 개발 조직간 효율적인 협업을 위한 `애플리케이션수명주기관리(Application Lifecycle Management)` 솔루션을 도입하는 사례가 늘고 있다.

ALM 통합 플랫폼 구조

ALM 솔루션이란 애플리케이션 개발 과정에 필요한 프로젝트 관리, 요구사항 관리, 데이터 및 통합모델링언어(UML) 설계, 코딩, 테스트, 배포 등 애플리케이션 개발 전체 공정을 통합 관리하는 솔루션이다.

◇ALM 필요성 급증…효율성 저하=지금까지 개발자들은 프로세스 및 가이드에 따라 체계적으로 산출물을 작성하기 위해 다양한 솔루션을 도입해 개발 생산성 및 품질 향상을 위해 노력해왔다.

만약 여러 이해 당사자들이 사용하는 도구들을 프로젝트 문화, 작업방식, 방법론 등 전체 프로젝트 관점에서 고려하지 않고 개별 솔루션 고유의 기능 및 성능 위주로 선정하면 다음과 같은 문제들이 발생하게 된다.

첫째, 도구 간 콘텐츠 공유가 되지 않아 생산성을 극대화할 수 없다. 예를 들면 요구사항 관리 도구에 작성된 업무 설명 설계 도구, 개발도구, 테스트 시나리오·케이스 관리 도구에서 재사용하지 못하게 된다. 도구 간 작성된 내용인 콘텐츠를 연계해 재사용할 수 없기 때문에 이전 공정에 작성된 내용을 다음 공정의 작성자가 수작업으로 반복 작업해 효율성도 떨어진다.

둘째, 효율적인 품질 관리를 할 수 없다. 도구 간에 체계화된 통합 리포트가 되지 않기 때문에 표준 방법론에 따라 프로세스 및 작성 가이드를 지키고 누락된 것은 없는지 단계별로 수작업으로 확인해야 한다. 관리자 중심의 리포트를 위해 여러 도구의 자료를 별도로 통합하기 때문에 많은 시간이 소요된다. 프로젝트 방향성과 목표가 개발의 끝까지 전달 및 반영되고 있는지 확인하기도 어렵다.

이러한 문제를 해결하기 위해 정보 교류 및 협업을 프로젝트 팀원뿐 아니라 ALM 솔루션들도 통합해 운영해야 한다. 프로젝트 개발 방법론에 따라 솔루션들도 체계적으로 융합해야 생산성과 품질관리를 효율화 할 수 있다. 따라서 최근에는 공공 및 금융 차세대 프로젝트에서 전체 개발 공정과 관리 공정을 통합 관리하기 위해 본 프로젝트 이전에 ALM 솔루션을 도입해 구축하고 있다.

◇ALM, SW개발 전 단계 지원…효과적 협업 도구=통합 개발 관리를 위한 ALM 솔루션의 기능, 발전과정, 도입 시 고려사항을 알아보자.

ALM솔루션의 주요기능을 살펴보면 다음과 같다. 첫째, 소프트웨어 개발 공정에 필요한 요구사항, UML 모델링, 데이터 모델링, 개발 도구, 테스트를 관리한다. 둘째, 작성된 산출물을 위한 변경 관리, 버전 관리, 형상 관리를 한다. 셋째, 모델 인스펙션, 코드 인스펙션, 보안 코딩 점검, 단위 테스트 등과 같은 품질 관리를 한다. 넷째, 품질 검토가 끝난 개발물을 빌드하고 배포 관리 한다. 마지막으로 요구사항, 설계, 개발, 배포까지 통합 추적 관리한다.

ALM 솔루션의 발전 과정 1단계는 관리영역을 중심으로 한 일정 관리 및 이슈 관리 도구다. 에자일(Agile) 기반의 프로젝트 관리를 위해 개발 우선 순위, 진척 관리, 이슈 관리를 위해 개발자와 관리자 사이의 협업을 지원하는 도구가 된다.

2단계는 개발 영역을 추가한 통합 개발 패키지다. 소프트웨어 개발 공정상에 필요한 도구들을 구성한 통합 패키지로서 형상 관리 도구 등과 연계해 주로 같은 도구들간에 정보 공유가 가능하다.

마지막 3단계는 전체 공정에 사용되는 도구 간 협업이 가능한 솔루션이다. 설계 모델링, 인스펙션, 품질 관리 도구 등 영역까지 확대된 도구로 보통 협업 플랫폼을 사용해 서로 다른 도구들 간에 정보공유가 가능해 이종 도구 간 재사용 및 구조화된 정보 생성이 가능하다.

◇ALM으로 산출물의 재활용·자동화 가능=ALM 솔루션 도입시 어떤 효과를 얻을 수 있을까.

첫째, 산출물의 재사용이 가능하다. 도구 간 정보 연계를 할 수 있으며 전 단계 공정의 도구로 작성한 콘텐츠를 다음 단계 도구들에서 재사용할 수 있다. 예를 들면 요구사항 도구에 작성된 콘텐츠들이 모델링 도구 및 테스트 시나리오·케이스 작성 도구에서 재사용 가능하다.

둘째, 산출물 간 추적 자동화가 가능하다. 표준 공정(방법론)에 따라 도구 간에 콘텐츠를 재사용하면 개발자들이 사용한 히스토리가 관리돼 이에 대한 변경 및 영향도를 추적할 수 있다. 예를 들면 특정 요구사항을 적용한 UML 모델링, 이를 사용한 프로그램, 이 프로그램을 사용하는 테스트 시나리오 등의 작성 히스토리를 추적해 요구사항 추적 매트릭스 등 리포트를 실시간 모니터링 및 생성할 수 있다.

셋째, 솔루션 간 통합 리포트 생성이 가능하다. 기존 개별도구는 해당 도구의 정보만을 리포트로 제공할 수 있었지만, 통합 연계가 가능한 솔루션들은 정보들이 메타로 관리되기 때문에 필요한 정보를 실시간으로 생성 및 재가공이 가능하다.

요구사항 기준으로 코드 인스펙션 수준, 단위테스트 수준, 통합 테스트 수준 등 의사결정에 필요한 거버넌스된 새로운 영역의 통합 리포트를 생성할 수 있게 된다. 이런 기능을 응용하면 정해진 개발 및 품질 수준이 되는 프로그램들로만 이루어진 테스트 시나리오 목록을 추출해 테스트 현업에 전달이 가능해진다. 테스트 진척을 올리기 위해 완료돼야 할 프로그램 우선순위도 도출 할 수 있다.

◇ALM 솔루션 도입시 고려 사항=향후 상이한 아키텍처를 적용한 제작사의 솔루션을 함께 사용해야 할 경우가 많아질 것으로 예상된다. 솔루션 간 종속성을 가지면 서로 다른 제작사의 솔루션과의 통합이 어려워질 뿐 아니라 표준화된 협업 플랫폼 기반의 ALM 솔루션 도입이 반드시 필요하다.

협업 플랫폼 기반의 솔루션들은 프로토콜을 표준화해 콘텐츠를 상호 연계하고, 재사용하기 위한 기술로 REST(Representational State Transfer)를 사용한다. REST는 HTTP 프로토콜을 사용해 상이한 언어, 플랫폼, 소프트웨어는 물론 모바일 디바이스와도 종속성 없이 네트워크상의 제품 간 정보 연계가 가능하다.

가트너 보고서에 따르면 기업들이 현재 보유중인 애플리케이션은 물론 전사적 통합 개발 플랫폼, 클라우드 컴퓨팅 애플리케이션 등 새 서비스를 제공해야 하기 때문에 세계 3000억달러 규모 애플리케이션 서비스 시장은 계속 성장할 것으로 예상하고 있다.

기고 원문

--

--