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.0191 sec