한영대
볼랜드코리아 이사 ydhan@borland.com

최근 시장 조사 결과에 따르면 소프트웨어 개발 프로젝트의 실패율이 상당히 높은 것으로 나타나고 있다. 실제로 많은 프로젝트들이 일정 지연과 초과 비용 발생을 경험하고 있다. 또 일부는 예정보다 프로젝트 범위가 축소되거나 완전 취소되기도 한다. 이러한 상황을 더욱 복잡하게 만드는 요인은 업계 규정들과 SLA(Service Level Agreements)가 착오의 여지가 적다고 가정하고 있는 점이다. 이러한 현실은 기업들의 경제적인 기회를 상실시키거나 경쟁력을 약화시킬 수 있다.
업계 전문가들에 따르면 부실한 프로젝트 기획, 비용 예측, 측정, 이정표 추적, 변경 관리 및 품질 관리는 소프트웨어 프로젝트를 망칠 수 있는 여섯 가지 대표적인 요인들로 지적되고 있다. 이들 부실 작업은 업계에 상당한 영향력을 행사하고 있다. 실제로 ANSI(American National Institute of Standards)의 2002년 조사 결과에 따르면 미국은 매년 소프트웨어 오류로 600억 달러를 소비하고 있는 것으로 나타났다.
2004년 미국의 기업들은 소프트웨어를 구입하거나 구축하는데 2,340억 달러를 투입했다. 이 중 약 37%에 달하는 860억 달러는 독자적인 소프트웨어 구축 작업을 위해 투자됐다는 것이 매사추세츠주 캠브리지에 소재한 포레스터 리서치(Forrester Research)의 분석이다. 이렇듯 많은 비용이 소요되기 때문에 기업들은 지연되거나 또는 결국은 실패하도록 예정된 소프트웨어 프로젝트에는 투자할 여지가 없는 것이다.
고품질의 소프트웨어를 목표한 예산 범위 내에서 적시에 공급하기 위해서는 소프트웨어를 고안, 설계해 구축하고 배포하기까지의 전 소프트웨어 개발 프로세스를 재정의해야 한다. 전 소프트웨어 개발 프로세스에 새롭게 접근해야 한다는 것이 볼랜드의 소프트웨어 딜리버리 옵티마이즈(Software Delivery Optimiza- tion)의 비전이자 전략이다. 즉, 정확한 예측이 불가능한 소프트웨어 개발 작업을 효율적인 관리와 반복적인 활용이 가능한 비즈니스 프로세스로 전환하자는 것이다.
소프트웨어 딜리버리 옵티마이즈는 혼돈으로부터의 탈출을 시도하려는 '혁신'으로 이해할 수 있다. 역사적으로 프로그래밍은 많은 기업들에게 있어 예측 불가능한 특수한 기술 작업으로 인식돼 왔다.
하지만 이제 소프트웨어 개발은 효율적인 관리와 반복적인 활용이 가능한 비즈니스 프로세스로 새롭게 자리매김해야 한다. 이러한 혁신을 가속화하기 위해 볼랜드는 포괄적인 애플리케이션 개발 및 딜리버리 플랫폼인 Core SDP(Software Delivery Platform)를 새롭게 선보여 공급하고 있다.

1. 역할 기반의 협업 개발
볼랜드 Core SDP는 역할기반의 관점을 제공하여 전체 소프트웨어 개발팀이 개별 생산성을 소프트웨어 개발에 관여하는 주요 담당자들이 소프트웨어를 관리 가능한 프로세스로 만들어 생산성을 향상시킬 수 있기 때문에 전통적인 기존방법과는 차이가 있다. 개별적인 기여도를 극대화하고 역할간 웍플로우 흐름을 촉진시킬 수 있도록 설계된 통합 툴과 함께 애플리케이션 라이프사이클 내 각 역할을 지원하게 된다.
이로서 기업들은 볼랜드 Core SDP 프레임웍을 통해 개발 라이프사이클 전반에 대한 가시 능력과 관리 기능을 향상시킬 수 있게 된다. 특히 외부에 분산돼 있는 개발팀과 작업할 경우 소프트웨어 실패에 대한 위험을 적극적으로 관리할 수 있게 된다.
볼랜드 Core SDP는 단순히 각각의 ALM 툴을 통합한 것 이상의 발전된 모습을 갖추고 있다. 칼리버RM(Caliber- RM), 투게더(Together), 제이빌더(JBuilder), 스타팀(StarTeam), 옵티마이즈잇(Optimizeit) 등의 볼랜드 ALM 제품들의 최고 기술을 새로운 범용 플랫폼 기술과 접목한 볼랜드 Core DSP는 소프트웨어 딜리버리 옵티마이즈 실현을 위한 진정한 의미의 통합된 역할 기반 플랫폼인 것이다.
역할 모듈들을 통합해 주는 서버 기반의 이 플랫폼은 관리자가 능동적으로 역할간 변화를 관리하고, 분석과 진단을 위해 ALM 매트릭스를 취합하며, 분산돼 있는 팀들간 지식을 관리하고 추적할 수 있게 해주는 사용이 용이한 고성능의 기반을 제공한다.
동시에 팀 협업을 촉진시켜 주는 통합 플랫폼을 활용함으로써 각 개인은 업무의 재사용을 증진시키고 소프트웨어 개발 작업을 어렵게 하는 값비싼 재작업의 수고를 덜어준다.

2. 프로세스 운용 및 품질 향상
프로세스 정립의 미흡함과 프로세스 향상능력의 부족은 소프트웨어 프로젝트의 실패에 주요 원인으로 자리매김 되었다. 또한 비즈니스의 효율성을 저해하는 값비싼 재작업과 유지보수 및 소프트웨어 개발 비용으로 이어진다.
프로세스는 소프트웨어 성공에 필수적이지만 비즈니스에 맞게 적절히 연계되어야 한다. 볼랜드 Core DSP는 이를 염두에 두고 소프트웨어 개발팀이 커스터마이징 가능한 웍플로우 프로세스를 생성할 수 있게 했다.
이 프로세스는 소프트웨어 딜리버리 사이클 내내 팀간의 기강을 강화하는 동시에 업계표준의 개발프로세스, 혹은 커스터마이징하거나 자체 개발하는 개발프로세스까지 지원할 수 있을 만큼 유연성을 유지하도록 구조화돼 있다.
프로세스화가 가능토록 한 토대는 종종 개발 환경에서 떨어져 나오는 수동적인 프로세스로 인한 위험을 줄여주며 팀의 효율성을 높이고 개발 주기에 책임감을 갖도록 한다. 또 애플리케이션에 대한 감사와 측정을 통해 품질을 유지할 수 있도록 도우며, 소프트웨어 공급망을 자동화해 준다.

3. 고객 선택 보장
오늘날 많은 기업들은 다양한 플랫폼과 배포 아키텍처, 폭넓은 서드파티 통합 요구를 갖춘 이기종의 IT 환경에 의존하고 있다. 볼랜드 코어SDP는 제이빌더(JBuilder) IDE와 오픈소스인 이클립스(Eclipse) 프레임웍을 모두 지원할 뿐 아니라 가까운 미래에는 마이크로소프트 닷넷 개발 프레임웍도 지원할 계획이다. 즉, 플랫폼 중립성이라는 볼랜드의 철학을 고수하고 있다.
볼랜드 Core SDP의 베타 고객이며 소프트웨어 엔지니어링 부문의 부사장인 비네이 엠베커는 "컨포미아 소프트웨어(Confor- mia Software)는 생명 과학 기업들이 제품 품질을 향상시키고 사업성과 및 목표를 달성할 수 있도록 지원하는 소프트웨어 개발업체이다. 컨포미아가 서비스를 제공하고 있는 통제된 프로세스 중심의 업계 특성 덕분에 우리 팀은 구성능력이 뛰어나고 추적이 가능한 종단간 애플리케이션 개발 환경을 필요로 한다"며 "볼랜드 Core SDP는 협업 기능과 프로젝트 계획능력을 향상시켜 주며, 보다 손쉽게 통합 정보에 액세스할 수 있도록 도와준다. 이러한 요소들은 컨포미아의 개발 요구에 부응하는 핵심적인 사항들"이라고 말했다.

4. 소프트웨어 개발 프로세스 혁신 : 볼랜드 'Core SDP'
볼랜드는 기업들이 성공적인 프로젝트 딜리버리를 위해 사람과 프로세스, 기술을 이상적으로 조정하는데 도움을 줄 수 있는 플랫폼과 서비스를 제공함으로써 소프트웨어 딜리버리 옵티마이즈 비전 실현을 약속하고 있다.
볼랜드 Core SDP는 보다 프로세스 지향적인 소프트웨어 개발 방식을 추구하는 작은 조직은 물론 대규모의 개발팀 여러 곳에 분산돼 있는 조직을 모두 지원하도록 설계됐다.
볼랜드 Core SDP는 경쟁 우위를 추구하는 기업들에게 다음과 같은 특징의 플랫폼을 지원하게 될 것이다.
쪾통합된 라이프사이클 : 볼랜드 Core SDP는 전체 소프트웨어 개발 라이프사이클 동안 효율성을 추구할 수 있도록 지원한다. 이 결과 개발 조직내 각 역할에 관계된 공통의 업무와 활동들은 최상의 볼랜드 툴을 통해 긴밀하게 통합이 이뤄진다.
쪾종속 불가 : 볼랜드 Core SDP는 표준 기반의 환경으로 기업들이 기존 플랫폼과 서비스를 계속 활용할 수 있도록 지원함으로써 높은 ROI를 보장해 준다.
쪾사용 용이 : 볼랜드 Core SDP는 비즈니스 분석가, 설계자, 개발자, 테스트 엔지니어 등 개발팀내 각각의 고유한 역할에 따른 프로세스, 견해, 필요에 부합하도록 최적화되어 있다. 또 확장이 가능한 고성능의 이 플랫폼은 사용이 용이해 확산을 위한 교육비용을 절감해 주며, 분산된 개발 환경에서 발생될 수 있는 프로세스 및 커뮤니케이션 관련 문제들을 해결해 준다.
쪾프로세스 구성능력 : 맞춤형 프로세스는 기업 경쟁력의 핵심이다. 볼랜드의 Core SDP는 조직에 부합한 맞춤형의 프로세스를 정의하고 자동화하며, 정의에 따른 프로세스 기반의 웍플로우를 가동할 수 있도록 지원한다. 볼랜드는 IT 기업들이 전반적인 소프트웨어 라이프사이클 동안 강화된 가시 능력과 관리 기능을 발휘할 수 있도록 도움으로써 궁극적으로는 IT 효율성과 예측 능력을 향상시켜 준다.
쪾관리 용이 : 볼랜드 코어SDP는 단일화된 인스톨러를 갖추고 있어 설치하는데 최소한의 노력만을 요구한다. 또 경쟁 솔루션들과 비교할 때 보다 적은 수의 관리자와 서버 리소스만으로 구성과 운영이 가능하다.

5. 볼랜드 Core SDP 솔루션 및 주요 기능

1) Core Analyst
볼랜드 Core Analyst는 비즈니스 분석가가 비즈니스 요구사항을 소프트웨어 요구사항으로 변환하는 비즈니스 분석가를 지원한다. 요구사항이 변경되면 어떤 영향을 미치는지를 확인할 수 있는 가시성을 확보할 수 있어 비즈니스 목적에 부합하는 소프트웨어를 개발할 수 있다. 비즈니스 분석가가 비즈니스 목표를 기능적인 소프트웨어 요구사항으로 명확하게 전환함으로써 최종사용자의 기대와 준수사항, 품질 목표가 만족될 수 있도록 보장해 준다.
이에 사용자는 애플리케이션 요구사항을 파악해 의사소통을 하며 유스케이스(Use Case) 다이어그램과 액티비티(Activity) 다이어그램을 만들고, 새로운 요구사항과 프로젝트 규모, 일정, 예산 등의 변경사항으로 인한 영향을 예견할 수 있다. Core Analyst의 주요 기능은 다음과 같다.
■ 완벽한 요구사항 관리 솔루션
- 비전문적인 사용자를 위한 직관적인 요구사항 관리 솔루션
- 중앙 집중화된 리파지토리를 통해 모든 프로젝트 관계자들이 언제든지 최신의 요구사항들에 접근 가능
- 버전관리, 추적성, 정렬 및 우선순위 선정기능, 토론기능 등을 통한 요구사항 관리
- 요구사항으로부터 비주얼한 다이어그램과 유스케이스를 바로 생성하므로 오해발생 위험 최소화
■ 대규모의 분산된 환경간 요구사항 공유
- 다중 사용자 접근 기능으로 언제든지 프로젝트 관계자들이 가장 최신의 요구사항에 접근 가능
- 자동 버저닝과 다중 사용자 잠금 기능을 통해 동시에 변경하고자 하는 사용자들에 의한 충돌 방지
- 확장성있는 고성능 환경을 제공하여 수많은 요구사항들을 지원할 뿐 아니라 개별적으로 관리 가능
- 자동 알림 및 변경 요청 기능으로 팀 구성원이 최신의 정보를 습득
■ 커스터마이징이 가능하고, 융통성 있는 요구사항 웍플로우
- 커스터마이징이 가능한 웍플로우를 통해 각 조직의 프로세스와 가까운 요구사항 관리에 맞추기 위한 표준화되고 정의된 산업, 프로젝트, 사내의 용어를 표준화하고 정의하는 온라인 용어집
- 커스터마이징 할 수 있는 필드들을 통해 각 요구사항들에 대한 일관된 정보를 제공
- 그래픽 위저드로 프로그래밍에 대한 지식 없이도 아주 쉽게 커스터마이징
■ 통합 요구사항 관리로 기존 환경
- 자바, COM, 마이크로소프트 닷넷 프레임웍을 사용하는 써드파티 솔루션들과의 통합을 위한 오픈API
- 비독점적인 데이터베이스 지원으로 기존 엔터프라이즈 인프라스트럭처와의 통합이 용이
- 관리와 형상이 용이 : 사용하기 쉽기 때문에 높은 기술력을 가진 관리자가 아니어도 되며 사용자 교육비용이 낮음
- 모델링, IDE(통합개발환경), Mercury Test Director, SCM 솔루션등과 같은 애플리케이션 라이프사이클 관리 툴들과의 통합

2) Core Architect
볼랜드 Core Architect는 설계 전문가가 비즈니스의 요구사항이 변경되더라도 전체 애플리케이션 라이프사이클 동안 동기화된 명세와 모델, 코드를 유지할 수 있도록 통합개발환경을 제공해준다. 이에 사용자는 UML기반의 아키텍처 다이어그램과 클래스 다이어그램을 만들 수 있고, 개발팀에게 명확한 지침을 제공하는 코드 중심의 모델을 개발할 수 있다.
또 유스케이스 다이어그램에서 코드에 이르기까지 요구사항을 추적할 수 있고, 애플리케이션이 설계와 기능상의 요구사항에 부합할 수 있도록 매트릭스를 구성할 수 있다.
■ 완벽한 디자인 및 모델링 환경으로 복잡성 감소
- 비주얼한 다이어그램을 쉽게 생성함으로써 UML의 복잡성 해소
- 강력한 리버스 엔지니어링 기능으로 기존 코드(애플리케이션)를 좀더 쉽게 이해가 가능하고, 또한 쉬운 유지보수 가능.
- 자동 문서 생성기능 : 새로운 애플리케이션 및 기존 애플리케이션에 대한 모델 산출물(UML Diagram 등)에 대한 자동문서 생성
■ 분산된 조직간 모델 정보 공유 및 상호교환
- 비즈니스 및 기술 관계자들이 같은 관점으로 바라볼 수 있는 전체적인 비주얼리티 제공
- 코드와 모델의 동기화를 통해 분산 개발팀들의 불일치 해소 및 에러 발생 한도 감소
- 클래스 다이어그램, 시퀀스 다이어그램, 액티비티 다이어그램 등 디자인 도식을 제공하므로 개발자들이 애플리케이션의 동적 모델, 정적 모델 이해
- 오딧과 매트릭스 기능으로 디자인과 코드 리뷰 수행
■ 복잡한 애플리케이션 설계
- 표준 기반의 모델링 기능을 통한 MDA 실현 및 MDD(Model Driven Development) 활용 촉진
- 특정 플랫폼의 모델로 변환 가능한 플랫폼 중립적인 모델을 생성하므로 기존의 인프라스트럭처에 연관 없이 모델링 가능
- 새로운 서비스가 기존 아키텍처에 어떻게 영향을 미치는지를 파악이 용이하고, 전체 시스템의 상위 레벨의 가시성을 제공함으로써 SOA를 좀더 쉽게 다루기가 용이
■ 통합모델링으로 기존 환경 운용
- 요구사항 관리 툴과의 통합으로 요구사항 추적 및 유스케이스 모델 생성 가능
- IDE(JBuilder, Eclipse) 통합으로 설계 모델과 코드간 동기화
- StarTeam의 중앙 레파지토리와 통합하여 업계 표준 청사진 활용 및 기존 컴포넌트 재사용
- 어떠한 방법론으로도 모델링이 쉽고 적용이 용이 : 단계와 절차를 강요하는 방법론(Rose/RUP)과 차별화

3) Core Developer
볼랜드 Core Developer는 소프트웨어 개발자가 최상의 툴을 관련 명세서와 요구사항 변경, 테스트 사례와 결합시켜 준다. 이에 개발팀은 자신들의 최신 표준에서 UML 모델링과 소스 코드 제어, 구축 및 변화 관리, 오류 추적, 코드 유닛 테스트, 프로파일링, 최신 요구 사항 등에 이르기까지 업무를 효과적으로 수행하는데 필요한 모든 정보와 기능에 통합적으로 액세스할 수 있다. 따라서 비즈니스 요구사항을 일관성 있게 만족시켜주는 애플리케이션을 빠르게 개발할 수 있게 한다.
■ 완전한 개발 환경을 통해 복잡성 감소
- 모든 유형의 자바 개발을 지원하는 Out-of-the-box(예 : EJB, 웹 서비스, XML, 모바일, 및 데이터베이스 애플리케이션 개발)
- 다양한 기술수준과 경험을 갖춘 모든 개발자를 지원 : 마법사, 도구, 샘플, 튜토리얼 등을 이용하여 작업의 복잡성 감소 및 코드 관리 와 접근성 확보
- 거대 프로젝트를 소단위 프로젝트로 세분화 관리하는 관리 기능 최대화를 통하여 분산 운영되는 개발팀들이 각각 개발 본연의 업무에만 충실할 수 있도록 지원
■ 대규모의 분산팀간 설계 정보를 공유 및 상호교환
- 요구사항 관리, 모델링, 소스코드관리, 단위 테스팅과 같은 일상 작업을 수행하기 위한 통합된 환경
- 일관성 있는 표준을 관리 및 적용할 수 있는 자동 코드 포맷과 오딧 기능
- 문서 생성 같은 일상적으로 반복되는 작업의 자동화를 통해 생산성 향상
- 요구 변경에 대한 자동적인 통지.
■ 고객 맞춤화와 유연성을 제공
- 확장성이 뛰어난 오픈 플랫폼을 이용하여 개발자들은 시장의 수천 플러그인 기능을 확장하거나 직접 새로운 기능을 개발하여 확장 가능
- 변경관리 혹은 결함 추적 과업을 위한 유연성 있는 웍플로우 프로세스를 통해 획일적이지 않고 유동적인 스트럭처를 적용하여 생산성을 극대화
- 커스터마이징이 가능한 사용자 인터페이스 : IDE의 환경을 각 프로젝트 특성에 맞도록 합리적으로 형성
■ 통합된 개발 환경을 통해 관리를 단순화
- 소프트웨어 개발 조직에서 사용되는 개발 툴들의 관리와 운영을 간편화하여 다양한 툴들간의 통합 필요성을 감소
- 최신의 표준 및 기술을 통해 대규모의 팀들은 신뢰성 있는 하나의 IDE로 표준화 가능
- 전체 개발 프로세스의 설립 및 조정을 위한 중앙 집중 환경 방식으로 기존에 기업에서 투자하여 사용하고 있는 다양한 소프트웨어와 통합 가능한 유연성 제공
4) Core Tester
볼랜드 Core Tester는 테스트팀과 오류 추적 및 요구사항 관리를 통합함으로써 최적의 테스트 환경을 보장해 준다. 이로써 애플리케이션이 기능적인 목표 및 규정준수와 품질 목표를 달성할 수 있도록 지원해 준다.
또 라이프사이클 초기에 비용 효과적으로 오류 요소를 파악, 제거할 수 있는 통합된 개발 및 테스트 프로세스를 가능하게 해준다. 이 결과 성능과 확장성, 신뢰성에 대한 척도를 만족시켜 주며 소프트웨어의 적시 공급을 가능케 해준다.
■ 완벽한 테스트 환경을 통한 복잡성 감소
- 광범위한 테스트 환경 : 기능 테스트, 복귀 테스트, 단위 테스트, 성능 및 보안 분석, 타사제품을 연계한 부하테스트 등의 다양한 테스트를 지원
- 오딧 매트릭스와 성능 분석 등의 자동화 기능을 통해 소스 코드 레벨의 오류와 버그 확인
- 시스템의 성능 및 확장성 분석을 통해 애플리케이션 상태가 배포 완료 상태임을 검증
■ 광범위한 분산 배포 환경 관리를 위한 테스트
- 중앙저장소를 통해 테스트 관련 자원을 관리하여 모든 요구사항들을 일관성있게 반복적으로 테스트 작업에 반영하며, 전체 팀원들이 항상 최신 버전의 자원을 쉽게 활용
- 자동화된 결함 추적을 관리기능을 통해 새로운 결함 사항을 바로 개발자들에게 자동으로 공지
- 통합 환경을 제공하여 완벽하고 정확한 버그 정보를 관리 및 공유
■ 유연한 테스트 솔루션을 통한 적극적인 품질 관리
- 품질 관련 이슈를 예방 : 개발단계에서부터 품질 관리
- 배포이전 단계에서 시스템 광범위한 테스트를 적용하여 애플리케이션의 배포 완료 상태를 점검
- 기능 테스트들은 최신의 요구사항들과 동기화하여 관리하여 고객의 기대치들을 테스트 업무에 반영될 수 있도록 보증
- 결함 추적기능을 맞춤형 웍플로우를 이용하여 품질에 대한 이슈를 효율적으로 추적 및 모니터링
■ 기존의 테스트 환경과 통합
- 테스트 기능들은 기존에 사용 중이던 IDE(통합개발환경)와 통합되어 개발자들이 개발 초기단계부터 코드 테스트 가능
- 머큐리의 TestDirector와 통합되어 결함 추적 및 테스트 스크립트 저장을 위한 중앙 저장소를 제공
- 머큐리, Segue, 엠피릭스(Empirix) 등의 부하 테스트 솔루션과 연동하여 운영시 발생 가능한 자원부족 현상의 근본 원인 정보를 진단
저작권자 © 컴퓨터월드 무단전재 및 재배포 금지