상세 컨텐츠

본문 제목

[개발 프로세스] 익스트림 개발 방법론, eXtream Programming, XP

IT/프로그래밍

by James Lee. 2015. 12. 1. 09:21

본문



애자일 개발 프로세스라고 불리는 개발 방법 중의 대표적인 하나로 손꼽힘

약칭인 'XP'로 잘 알려져 있음 (윈도우 XP 아니다)


다른 애자일 방법론과 구분되는 XP만의 특징에는 테스팅이 있음.  (Test-Driven Development)


반복적으로 프로토 타입을 고객에 전달하면서 보여주는 것



반복적으로 프로토 타입을 고객에 전달함으로써 고객의 요구사항 변화에 민첩하게 대응한다 - 애자일 방법론의 기본 개념


이전에는 팀을 기반으로 한 소프트웨어 개발이 별로 없었음

개발 방법론의 중요성에 대하여 다들 진지하게 생각 안함.

그러다가 고전적인 폭포수, 나선 모형에서 실패를 많이 함


근데 애자일 방법론 및 XP 방법론이 유명해짐

그래서 팀을 기반으로 한 협동적인 개발 방법론이 강조됨


실천 방법이 여러가지가 있는데 그중 하나가 모든 팀(Whole Team)임


모든 프로젝트에 참여하는 팀원들을 의미하고 각자의 역할이 있고 그 역할들은 서로 중요하다는 것임


역할


테스터

상호 설계자

프로젝트 관리자

상품 관리자

실행자

경영 간부

기술 작성자 (techical writer)

프로그래머

유저

이중에서 제일 중요한 멤버는 누구일까?

다름아닌 유저이다.

왜냐하면 이사람들은 프로젝트의 키를 가지고 있을(stakeholder)뿐 아니라 이들을 통하여 요구사항(requierment)를 파악 할 수 있기 때문이다. 


실천 단계는 아래와 같다.


Planning Game(계획 세우기)

2가지 중요한게 있음

1. 이번 반복(Iteraction)에는 어떤 개발 과정을 끝마칠것인가

2. 그 다음 반복(Iteraction)에는 어떤 개발 과정을 끝마칠것인가.

XP는 일반적으로 2주를 주기로 계획을 세우고 프로토 타입을 만듬

그리고 고객과 미팅함 (의뢰인이든, 최종 사용자이든)

회의를 함. 무엇이 얼마만큼 진행되었는지 알맞은 방향으로 개발이 진행되어 가고 있는지)

따라서 보여주려면 그 기한안에 프로젝트나 프로토 타입이 반드시 개발 완료되어야 함.

기한을 연장하게 되면 그에 따른 추가 비용 및 시간 손실 발생


기업의 입장에서 좋은점 : 실력 및 가능성을 보여주는 기회 (프로토타입이 금방 나오므로)

의뢰인 입장에서 좋은점 : 프로토타입을 체크해보고 별로다 싶으면 더 손실이 나기전에 프로젝트를 취소할 수 있음


​Customer Tests (사용자 테스트)

​아마 내가 하려는 AcTest (Acceptance Test)가 이걸 말하는 듯.

가장 흔히 발생하는 소프트웨어 개발 실패중 하나는 개발이 끝났는데, 의뢰인이나 사용자가 원했던 것과 다르다는 것이다.

XP에서는 반복적으로 Customer Test를 거친다. 그리고 이를 통해서 요구사항과 제작의 갭이 벌어지지 않도록 조정한다.


​Small Release (작은 공개?)

​이 실천 방안을 통해서 개발자는 주기적으로 프로토 타입을 의뢰인에게 보여준다. 그리고 이를 통해서 의뢰인은 제한된 기능을 가지고 있지만 실제로 작동이 되는 데모 모델을 볼 수 있으며, 추가 사항을 요구 할 수도 있다.

기존의 소프트웨어 개발 과정에서는 고객 입장에서는 개발이 끝나기 전에는 어떤 소프트웨어가 만들어질지 알 수 없었던 것과 비교해서 가장 차이점을 만들어내는 방식이라고 한다.

개발자의 입장에서는 현재 개발 방향이 올바르게 진행되고 있는지를 알 수 있다.


근데 이거 사용자 테스트랑 무슨 차이임? 사용자 테스트도 프로토타입을 제공해줘서 테스트 하는거 아님?


​Simple Design

​보통 프로젝트 개발에서 기능이 더해질수록 복잡해지는 경우가 일반적이다.

그렇게 되면 새롭게 개발자가 충원될 경우 그 개발자는 현재까지 개발 상황을 이해하는데 오랜 시간이 걸리게 된다. (나처럼 ㅠㅠ)

또한 버그가 발생할 경우에도 쉽게 처리를 하지 못하고 오랜 시간이 걸리게 된다. 그렇기 때문에 XP에서 모든 코딩을 가능한 간단하게 할 것을 강조한다.

이러한 추세는 KISS 원칙 원리와도 함께 한다고 할 수 있다. (근데 KISS가 뭔지 아직 모름..)


​Test-Driven- Development(TDD)

​테스트를 기반으로 한 개발은 XP에서 가장 중요한 실천 방안 중 하나이다.

테스트를 거치고 코딩을 하며 프로젝트를 개발해 나간다.

Pair Programming

​두명 혹은 그 이상의 프로그래머가 함께 코딩을 하는 것을 말한다.

두명의 프로그래머가 함께 코딩을 하고 테스트를 통해서 개발을 할 수도 있고,

한명은 코딩, 한명은 Quality Assurance(품질 보증)역할을 통해서 테스트에만 집중을 할 수도 있다.

관련글 더보기

댓글 영역