E D R , A S I H C RSS

Xp Question

XP 를 하면서 생길 수 있는 의문

Why not move these into XperDotOrg?
Xper 에서 비슷한 기능을 하는 페지가 '질문답변' 인데, 지같은 경우는 직접 질문하고 답을 쓴거여서 '질문답변' 에 올리기가 좀 그렇더라구요 Faq 라는 페지를 만들까 하다가 좀 주관적인 답여서 그렇고. Xper 에서 페지 제목 궁리하다가 그냥 일단 여기 만든거라는. ^^; (Xper 에도 올립니다. 페지들 별로 녹여넣어야겠군요.) --1002


XP 는 언제 공부할까?

SE 에서의 방법론들 그러하듯 XP 를 지금 당장 공부할 필요가 있을까?

- '필요하면 하라'. XP 가 기본적으로 프로젝트 팀을 위한 것기에 혼자서 XP 의 Practice 들을 보면 적용하기 어려운 것들 있다. 하지만, XP 의 Practice 의 일부의 것들에 대해서는 혼자서 행하여도 그 장점을 취할 수 있는 것들 있다. (TestDrivenDevelopment, Refactoring, ContinuousIntegration,SimpleDesign, SustainablePace, CrcCard Session 등. 그리고 혼자서 프로그래밍을 한다 하더라도 약간 큰 프로그래밍을 한다면 Planning 필요하다. 학생다 하더라도 시간관리, 일거리 관리는 익혀야 할 덕목다.) 장점을 취할 수 있는 것들은 장점을 취하고, 지금 하기에 리스크가 큰 것들은 나중에 해도 된다.

각 Practice 를 공부를 하다보면, 저것들 루어지기 위해서 공부해야 할 것들 더 있음을 알게 된다. (의식적으로 알아낼 수 있어야 한다고 생각한다.) Refactoring 을 잘하기 위해선 OOP 와 해당 언어들을 더 깊있게 해할 필요가 있으며 (언어에 대해 깊은 해가 있으면 똑같은 일에 대해서도 코드를 더 명확하고 간결하게 작성할 수 있다.) CrcCard 를 하다보면 역시 OOP 와 ResponsibilityDrivenDesign 에 대해 공부하게 될 것다. Planning 을 하다보면 시간관리책나 일거리 관리책들을 보게 될 것다. Pair 를 하다보면 다른 사람들에게 자신의 생각을 명확하게 표현하는 방법도 '공부'해야 할 것다. 는 결국 사람 하는 일기에. 같 병행할 수 있고, 더 중요한 것을 개인적으로 순위를 정해서 공부할 수 있겠다.

개인적으로, TestDrivenDevelopment 는 연습해보면 배울 게 많다고 생각한다. Test 를 작성하는데에서 배웠던 일들 많기에. (Test 를 작성하기 위해 큰 모듈덩어리에서 일어나는 중간단계에 대해 더 깊게 생각하고 작은단위로 쪼갠다던지, AcceptanceTest 를 작성하기 위해 전체 시스템 돌아가는 과정을 안다던지 등등)

선배들에게 Pair 를 요청하는 것도 바람직한 방법라 생각한다. Pair를 하면서 또다른 사람의 세계를 구경하고, 또한 그 사람에게 또 다른 세계를 구경시켜줄 수 있으리라 생각한다. (다른 사람들을 세심하게 관찰할 수 있고 실천할 수 있다면 참으로 빨리 배울 수 있는 사람라 생각한다.)

UserStory 는 어떤 것 부터 실행할까?

UserStory, Engineering Task 의 의존성 문제

Story Card 는 보관하기 어렵다?

어디선가 야기 나왔었던 문제. 규모가 되는 프로젝트의 경우 100 장의 Index Card 는 보관하기도 어렵고 널려놓기엔 정신을 어지럽힌다.;;

- Story Card 는 Kent Beck 사용자와 더 빠른 피드백을 위해 생각한 덜 형식적인 방법다. 어차피 Story Card 는 전부 AcceptanceTest 로 작성할 것기에, 테스트가 작성되고 나면 AcceptanceTest 가 도큐먼트 역할을 할 것다. Index Card 도구 자체가 보관용 아니다. 보관 필요하다면 위키를 쓰거나 디지털카메라 & 스캐너 등등 '보관용 도구', 'Repository' 를 용하라.

XP 에서의 Documentation 은 너무 빈약하다.


- 어차피 실제 고객에게 가치를 주는 중요한 일만을 하자가 목적기에. Documentation 자체가 중요한 비즈니스 가치를 준다던가, 팀 내에서 중요한 가치를 준다고 한다면 (예를 들어서, 팀원중 몇명 항시 같 작업을 할 수 없다던지 등등) Documentation 을 EngineeringTask 에 추가하고 역시 자원(시간)을 분배하라. (Documentation 자체가 원래 비용 드는 일다.)

OnSiteCustomer. 하지만 현실은...


업체간 프로젝트에서의 계약문제

실제 회사 : 회사 로 수주받은 프로젝트의 경우, 다른 회사에서 오는 '고객' 은 실제로 그 회사에서의 말단 직원인 경우가 많다. 그러므로, 매 Iteration 시 고객에게 Story 를 골라달라고 할때 그 고객은 힘 없다.

PairProgramming 적용하기

PairProgramming 은 XP 에서 논란 많은 듯 하다. Man-Hour 를 절반으로 깎는다는 생각을 하게 되어서인지.

interface 가 잘 정의하고 둘서 분업을 하면 훨씬 효과적 아닌가?

- 1002ProjectPrometheus 를 할때엔 거의 전체 작업을 Pair로 진행했다. Integration 비용 전혀 들지 않았다. (두명 멤버였으니; 당근!) 그리고 초기 소스와 지금 소스중 초기 모습 남아있는 부분을 보면 '젠장. 왜 렇게 짠거야? 런 허접한...' 다. 중복된 부분도 많고, 매직넘버도 남아있고, 처음엔 쓸거라 생각했던 일종의 어뎁터 역할을 하는 클래스는 오히려 일만 복잡하게 만들고 등등.

그리고, '지식의 전파'가 프로젝트에서 효율을 높인다고 한다면. 번 기회에서도 1002 는 Pair를 한 사람과 같 싸우고 치고 받고 하면서 여러가지 생각을 할 수 있었던 기회가 되었다. '충돌' 물리적작용으로만 끝난다면 상처밖에 남지 않지만, 화학작용을 한다면 뭔가 새로운 것을 만들어낸다. Pair 는 단순히 '한사람 Skill' + '한사람 Skill' 은 아니라 생각한다.

단, 올바른 Pair는, 역시 Pair 하는 사람들 스스로 성숙할 필요가 있는 것 같다. 1002 처럼 삐지기 쉽거나 F 스타일에 더 가까운 MBTI 스타일을 가진 사람은 약간. -_-; (1002 는 INFP 인데, F 스타일 T 스타일의 3배다.; 물론 MBTI만으로 사람 전체를 평가하는것은 당근 아님.~)

40 시간 근무? 현실적인가?

과연 40시간 작업란 가능한 일인가? 보통은 밤을 새어도 일을 못하는 경우가 많은데.

- SustainablePace 에 대한 증표다. 보통 일 초과되어 진행된다는것은 뭔가 일 잘 안풀린다는 증거가 되기도 하다.

늘 지속할 수 있는 안정적인 흐름을 만들어내는 것 중요하다. '40' 숫자가 중요하단 뜻은 아니다. (단, PairProgramming 기가막히게 잘 진행되는 경우는, '40시간을 초과' 할 수가 없을 것 같다. 사람 진 다 빠지니까. -_-;)

연봉 협상과 관련한 문제

XpWorkshop 시에 나왔던 아주아주 날카로운 분의 질문. 협업 중심에서의 XP 에서는 연봉처리에 대해서 어떻게 하라고 합니까?


--1002
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:27
Processing time 0.0238 sec