5
Agile을 을을을을 을을 을을을 을을 1. 을을 오오 오오오오 오오 Agile오 오오오오 오오오오 오오 오오오 오오오오 오 오오오오 오오오 오오오오 오오 오오오. 오오 오오오 Agile오 오오오오 오오 오오 오오오 오오오오. 오오오오오오오 (Eclipse, VisualStudio) 오오오오 오오오오 오오오오오오오 (VSTS/오 오 오 오 ) 오오오오 DB W orkItem Tracking 오오오오 (M SProject) 오오오오 (Sharepoint Portal, O utLook) 을을을을을을을을(TFS/을을을을) W orkflow 오오 (sharepoint) 오오오 (Visio,Toad Modeler) 오오오 (O ffice,Visio오 오오 오오오오) KM (W iki) 오오오오 오오 (EPM ) 2. 을을을을 을을 을을을을 을을을 을을 오오오오 오오오 오오, 오오오오오 오오 오오 오오오 오오 오오오 오오오오오 오오. 오오오 오오 오오 오 오오 오오 Refactoring 오오 오오오오 오오 오오 오오 오오오 오오 오 오오 오오 오오오오 오오오오 오오오오오오오 오오오 오 오오오 오오오 오오. 오오 오오 오 오오오오, 오오오 오오 오오오오 오오오 오오 오오 오오오오 오오오 오오 오오 오오 오오오 오오 오오(오오 오오 오오 오 오오오 오오오오오 오오오 오오) 오오 오오오 오오 오오 오 오오오오오 오오오오 오오오오오 오오 오오오 오오오 오오오 오오오오오 오오오오오 오오오 오오오 오오 오오오

image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

Agile을 지원하기 위한 도구의 구성1. 개요

오늘 말하려는 것은 Agile을 수행하기 위해서는 어떤 도구가 필요하며 이 도구들을

어떻게 사용해야 하는 가이다. 아래 그림을 Agile을 지원하기 위한 툴의 구성을

보여준다.

전사표준개발툴(Eclipse,

VisualStudio)

소스코드형상관리

방법론지원도구(VSTS/자체개발)

프로세스DB WorkItem

Tracking

일정관리(MSProject)

협업관리(Sharepoint Portal,

OutLook)

전사형상관리서버(TFS/자체개발)

Workflow관리

(sharepoint)

모델링(Visio, Toad Modeler)

레포트(Office, Visio를 이용

한 대쉬보드)

KM(Wiki)

프로젝트관리(EPM)

2. 개발툴과 전사 형상관리 서버의 관계개발툴은 코드를 편집, 컴파일하는 기능 외에 다음과 같은 기능이 내장되어야 한다.

테스트 코드 작성 및 편집 기능

Refactoring 기능

형상관리 툴과 연동

코드 템플릿 작성 및 관리 기능

개발툴과 관련하여 형상관리서버가 가져야 할 기능은 다음과 같다.

수동 빌드 및 자동빌드, 주기적 빌드

역공학을 이용한 모델 생성

역공학을 이용한 문서 작성

자동 테스트

코드 검사(코드 품질 검사 및 코드와 아키텍처의 연관성 검사)

코드 템플릿 관리

Page 2: image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

빌드 시 코드검사를 자동으로 수행하도록 하며 작성된 코드가 표준에 어긋나거나

아키텍처나 표준을 어겼을 때는 빌드가 실패하도록 해야 한다.3. 방법론 지원도구와 형상관리 서버의 관계

방법론 지원도구는 다음과 같은 기능을 가져야 한다.

프로젝트에서 사용할 거의 모든 문서를 툴로 작성할 수 있어야 한다.

방법론에서 제시하는 중요한 항목에 대해서는 형상관리 서버와 연동하여 임의로

수정 불가능하도록 해야 한다.

방법론 지원도구와 관련하여 형상관리 서버가 가져야 할 기능은 다음과 같다.

데이터베이스를 사용하여 작성된 프로젝트 산출물 관리

데이터베이스 중 중요한 항목은 형상관리와 연동하여 임의로 수정 불가능하도록 함.

프로젝트 산출물과 소스코드의 추적 관리

데이터베이스에 등록된 프로젝트 산출물에 대한 형상관리

4. 일정관리일정관리는 MS Project로 관리한다. 일정관리는 다음과 같은 기능을 가져야 한다.

일정관리는 조직도와 연계되어야 한다.

조직도는 별도로 관리할 수 있어야 한다.

일정관리와 관련하여 전사형상관리 서버의 기능은 다음과 같다.

WorkItem Tracking 이 일정관리와 연동된다.

예상일정과 실제 완료 일정을 관리하고 축적된 데이터를 바탕으로 일정에 대해

예측할 수 있어야 한다.

5. 협업관리협업관리는 outlook을 기본으로 사용한다. Outlook을 사용하면 달력, 공지사항, 작업항목, 주기적인 미팅관리를 할 수 있으며 이상의 내용을 sharepoint server를

사용하여 공유할 수 있다. 협업관리는 고객과의 주간회의, 미팅계획을 관리하기

위해서도 중요한 기능이다.또한 게시판 기능을 사용하여 게시판에 중요한 작업 사항들이 게시되어야 한다.

6. 모델 관리개발시의 모델은 세가지로 나누어진다. 아키텍처 모델, 어플리케이션 모델, 데이터

모델이다. 아키텍처 모델은 EA와 동일한 방법으로 관리한다. 즉 모델링을 수행하고

별도의 관리자가 관리하는 방식이다. 어플리케이션 모델은 소스 코드에서 모델을

Page 3: image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

추출하는 것만을 지원한다. 이렇게 하는 이유는 한국에서는 개발자와 모델러가 구분되지

않기 때문이고 개발자가 코드를 점진적으로 보강해 가는 것을 바람직하며 모델에서

올바른 코드가 도출되기는 어렵기 때문이다. 예전에는 코드에서 모델을 도출하는 툴이

많지 않았고 기능도 떨어졌다. 그러나 요즘은 소스 코드에서 UML 다이아그램을

도출하는 툴들이 많이 있다. Graphvz라는 오픈소스로 구현된 라이브러리와

UMLGraph라는 소스에서 UML을 추출하는 툴을 사용하면 된다. UML 다이아그램은

빌드가 완료되는 시점에서 자동으로 추출하여 문서화한다.

개발

형상관리 서버소스코드

등록빌드 UML 다이아그램 생성

Repository

Repository에 게시

포탈에서 검색툴에서 검색

형상관리 서버에서 검색

위의 그림을 설명하면 다음과 같다. 빌드가 완료되는 시점에서 배치 프로그램은

자동으로 UML 다이아그램을 생성한다. 생성된 다아이그램은 형상관리 서버와

Repository에 등록되어 개발 프로젝트 포탈, 개발 툴, 형상관리 서버를 사용하여 검색할

수 있다.소스와 모델을 구별하지 않는 것은 Agile의 기본 사상이고 필자는 이런 사상을

지지한다. 개발자들이 소스를 작성하면서 모델을 동시에 구성하는 것에 대해 앞 장에서

언급했다. Agile의 이런 사상들을 뒷받침하는 도구들이 속속 등장하고 있다. 위의

그림은 예전에는 불가능했거나 유료 툴을 구매해야 가능했다. 그러나 현재는 오픈소스

툴이 나와 있기 때문에 쉽게 구축할 수 있다.그러나 아키텍처 모델링은 정통적인 방법으로 작성해야 한다. 아키텍처는 아키텍처로

끝나는 것이 아니라 반드시 개발 표준과 연결되어야 한다. 아키텍처를 관리하는

데이터베이스는 아키텍처 모델과 개발 표준을 함께 관리한다. 개발 표준은 형상관리

Page 4: image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

서버와 연결되어 형상관리 서버에 들어오는 소스와 문서들이 표준을 준수하고 있는지

감시한다. 이상을 그림으로 표현하면 다음과 같다.

EA Database

EA 모델

Architecture Database

아키텍처 모델

연동

개발 표준Database

연동

개발 표준

형상관리 서버

소스 코드

연동

7. 데이터베이스 스키마 관리이제 데이터베이스 스키마를 관리하는 기능에 대해 생각해 보자. 스키마 변경은 개발

프로젝트 전체에 파급 효과가 매우 크다. 따라서 스키마는 형상관리 되어야 할 뿐 아니라

스키마 변경에 따라 영향을 받는 소스코드, 모델이 무엇인지 파악할 수 있어야 한다. 데이터베이스 스키마를 형상관리하고 다른 산출물과 연결하여 추적하는 기능은 TFS가

제공한다.8. WorkItem 관리

WorkItem 관리는 보통 작업지시라고 부른다. 작업지시란 말 그대로 관리자가 작업을

지시하고 개발자는 지시 받은대로 수행한다는 뜻이다. 이것은 자율적인 의사결정과

성장을 지향해야 하는 소프트웨어 개발에서는 부적절한 개념이다. 개발 프로젝트에서

관리자가 지시하여 수행하는 일들은 제한적이며 대부분은 개발자들이 스스로 판단하여

수행한다. 그래서 강한 의미의 작업지시보다는 해야 할 일을 관리하는 개념이 Agile에

맞는 개념이다. 한국에서는 일의 우선순위가 관리자들의 판단에 의해 수시로 뒤바뀌는

경우가 많다. 이것이 소프트웨어 개발에서 또 하나의 위험 요소이다. 대신 한국은

의사결정이 빠르고 개발 속도가 빠르다는 장점이 있다. 따라서 관리자가 모든 일을

통제하기 보다는 해야 할 일이 무엇인지 잘 관리해야 한다. 관리자가 여러 가지 지시를

내리다 보면 지시사항이 바뀌고 개발자들 사이에 혼선이 발생한다. 따라서 해야 할 일

목록은 개발자들에게 관리를 맡기지 않고 관리자가 직접 관리하도록 한다. 개발자들에게는 해야 할 일들의 명단, 내용만 메일로 보낸다. 개발자들은 outlook을

사용하여 본인의 작업 목록을 관리하도록 한다.

Page 5: image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

9. 툴 구성이제 마지막으로 툴 구성에 대해 설명한다. 툴은 오픈소스를 활용하는 방안과 MS TFS를

사용하는 방법으로 나눈다.

항목 오픈소스기반 TFS 기반

개발툴 Eclipse Eclipse, Visual Studio모델링 UMLGraph, StarUML Visio/UMLGraph데이터모델링 없음 ToadModeler기반Framework

없음 TFS

형상관리 Subversion TFS프로젝트관리도구

OpenWorkbench MS Project

공유 없음 Sharepoint일정관리 Outlook Outlook/TeamLook해야할 일 관리

없음 TFS

산출물관리 자체개발 자체개발

데이터베이스 MySQL SQL Server대쉬보드 웹으로 변환하여 게시 Visio, 웹결재 Process Maker Sharepoint테스트관리 Mantis TFS해야할 일 관리

Mantis TFS

위험관리 Mantis TFS리스크분석 R(통계패지지) + 자체분석 ExcelProcess Dynamics

iSee iSee

단위테스트 JUnit JUnit, nUnit성능테스트 JMeter VSTS빌드 CruiseControl TFS의사결정지원 없음 MindManager게시판 및 KM Wiki Wiki, Sharepoint Portal소스코드 분석 툴

PMD, Yasca Visual Studio Test Edition

Page 6: image.zdnet.co.krimage.zdnet.co.kr/pds/vs2008_20090618.doc · Web view프로젝트 산출물과 소스코드의 추적 관리 데이터 베이스에 등록된 프로젝트 산출물에

품질관리 SoNAR, Eclipse MetricsDB 모니터링/품질관리

Quest 제품군

문서 작성 폼 Infopath원격 프로젝트 관리, 분산 개발

Groove, TFS

채팅 Office Communicator장단점 비용이 들지 않으나 자체개발 및

통합에 작업이 소요됨TFS를 사용하기 위한 비용이 소요됨