본문 바로가기
가짜 개발자 Shiro/PM ( Project Manager )

엔터프라이즈 개발을 위한 스크럼 기반의 개발 방법론

by shiro21 2020. 1. 9.

엔터프라이즈 개발을 위한 스크럼 기반의 개발 방법론 : 스크럼을 기반으로 해서 관리 지향적인 엔터프라이즈 소프트웨어 개발에 조금 더 맞도록 발전시킨 형태의 소프트웨어 개발 방법론

 

:: ) 엔터프라이즈란? 

영어로 '진취'. 적극적으로 나아가서 일을 이룩함. '기업'·'회사' 등의 뜻으로도 쓰이며, 때문에 기업체의 사명 등에 쓰이는 경우도 있다. 일본에서는 줄여서 엔프라(エンプラ)라고도 부른다.

 

:: ) 스크럼이란?

프로젝트관리를 위한 상호,점진적 개발방법론이며, 애자일 소프트웨어 공학 중의 하나이다. 스크럼(Scrum)은 소프트웨어 개발 프로젝트를 위하여 고안되었지만, 소프트웨어 유지보수 팀이나 일반적인 프로젝트/프로그램 관리에서도 적용될 수 있다.

목록

  1. 제품 백로그 준비
  2. 릴리즈 계획
  3. 스프린트 계획
  4. 스프린트 관리
  5. 스프린트 종료
  6. 제품 백로그 업데이트
  7. 회고

1. 제품 백로그 준비

제품 백로그 단계에서는 실제로 구현되어야 하는 기능 목록을 나열한다. 목록은 고객의 요구 사항으로부터 도출 되는데, 일반적으로 요구사항 정의서(SRS)나 기술요구사항 정의서(TRS)로부터 도출된다.

구체화 되고 정확하고 상세한 목록을 도출해야 한다. 비즈니스 요건 같은 경우를 목록으로 도출하였을 경우에는 종료 조건이 모호해질 수 있고, 그런 경우 종료에 대한 기준이 모호해질 수 있다.

 

NO Action Item Description Estimated Resource Link Priority Status

제품 백로그 예시

 

1. 번호(NO)

기능에 대한 ID

 

2. 항목 제목(Item)

구현 요건(기능 / 비기능)

 

3. 설명(Description)

요건에 대한 간략한 설명

 

4. 예측 소요 시간(Estimated Resource)

얼마나 많은 리소스가 소요되는가에 대한 예측치를 기록

이 값에 따라 추후 계획에 반영

이 값은 초기 예측 값으로 매번 스프린트가 종료될 때마다 새롭게 업데이트

업데이트 기준 : 기존에 수행한 스프린트의 아이템의 실제 수행 시간을 기준으로 앞으로 수행할 아이템의 상대적인 개발 난이도 등을 측정하는 방법으로 예측

 

스크럼 방법론에서는 이를 스토리 포인트(Story Point)라는 개념을 사용해서 표현한다.

 

5. 요건 설명 링크(Link)

백록의 아이템 이름과 설명만 가지고는 정확한 요건을 알 수 없다. 그래서 해당 아이템에 대해서 구체적인 요건(Requirement Description 또는 Use Case)을 알기 위해서는 별도의 문서에 기술하여 참고한다.

 

6. 우선순위(Priority)

항목에 대한 우선순위를 지정

이 우선순위에 따라서 스프린트를 스케줄링하기 때문에 제품 백로그에서 매우 중요한 부분이다.

 

우선순위의 설정은 비즈니스에 대한 영향이 큰 기능, 필수 기능, 그리고 난도가 높은 기능, 비기능적(성능, 장애 대응, 확장성 등) 요건 등에 대해서 우선순위를 높게 설정하는 것을 권장한다.

특히 비기능적 요건은 성능이나 안정성 등에 관련되는 경우가 많고 이러한 요건들은 아키텍처에 많은 영향을 주고 아키텍처는 후반으로 갈수록 변경이 어려우므로 초반에 구현 및 검증작업을 수행해야 한다.

 

7. 상태(Status)

상태는 해당 아이템의 진행 상황을 의미

진행 전인가, 진행 중인가, 이미 완료가 되었는가를 표현한다.

필드의 값은 프로젝트 상황이나 프로세스에 맞춰서 변화한다. (QA 검증 중, 운영 서버에 반영됨 등)

 

8 항목에 대한 비즈니스 가치(Estimated Value of item) [선택 사항]

이 항목은 항목에 대한 비즈니스적인 가치에 대해서 점수를 매기는 방법으로 SI 개발보다는 제품 개발이나 자체 서비스 개발 등에 유용한 항목이다.

이 값의 조정을 통해서 제품 오너는 정해진 기간 내에 소프트웨어가 최대의 가치를 가질 수 있도록 우선순위를 지정할 수 있다.

 

2. 릴리즈 계획

제품 백로그가 정의되었으면, 언제 어떤 일을 해야 할지를 정의해야 한다. 일반적으로 말하는 스케줄링인데, 릴리즈 계획(Release Planning)에서는 프로젝트의 큰 마일스톤(중요 시점 : Mile Stone)을 정하는 작업을 한다.

 

릴리즈 시기마다 작동 가능한 기능들을 릴리즈한다. (모든 기능이 완료되지 않고, 필수 기능이 완성되었으면 릴리즈를 시작한다.)

 

릴리즈된 시점에서 QA(Quality Assurance : 품질보증)팀에게 릴리즈된 버전을 넘겨서 테스트를 수행하고 구현된 부분에 대한 품질을 검증받는다. 이러한 활동은 모든 개발이 끝난 시점에서 빅뱅(개발이 다 완료된 후에 통합 및 테스트를 하는 방식) 방식으로 통합하고 테스트하는 기존에 방식에 비해서 위험을 조기에 발견할 수 있고, 그 위험을 해결하는 비용을 줄일 수 있다.

(복잡한 문제일수록 나중에 발견되면 더 고치기 힘들어진다.)

이후 릴리즈된 버전을 고객에게 데모를 통해 요구 사항과 부합하는지 확인하고, 잘못된 부분에 대해 수정할 수 있는 기회를 가질 수 있다.

 

릴리즈 계획단계에서 구체적으로 해야 할 작업

1. 주요 릴리즈 일정 지정

2. 릴리즈 일정별로 포함할 제품 백로그 내의 항목 지정

 

이 단계에서 완성된 릴리즈 계획은 프로젝트 관리 입장에서 전체 스케줄과 맵핑되서 관리팀 관점에서 스케줄 관리를 쉽게 할 수 있다.