Post

클린 애자일(Clean Agile - Back to Basics) - 4장 팀 실천 방법

클린 애자일(Clean Agile - Back to Basics) - 4장 팀 실천 방법

메타포

팀 내에서 효과적으로 의사소통을 하려면, 개념을 나타내는 어휘와 용어를 명확하게 정의하여 일관되게 사용해야 한다. 이것은 프로젝트를 팀원 모두가 잘 아는 무언가에 비유하는 일이기 때문에 켄트 벡은 이 실천 방법에 메타포라는 이름을 붙였다.

메타포는 어휘를 만들어 주어 팀 내 의사소통을 효율적으로 만든다. 반면 고객을 모욕하는 어리석은 메타포도 있을 수 있다.

도메인 주도 설계

에릭 에반스(Eric Evans)는 도메인 주도 설계책에서 메타모의 문제를 해결했다. 이 책에서 에릭은 유비쿼터스 언어(Ubiquitous Language)라는 표현을 제안했는데, 사실 메타포보다 이 실천 방법에 더 어울리는 이름이다. 도메인 주도 설계에서는 해결하려는 문제 도메인의 모델을 모든 사람이 동의하는 어휘로 표현해야 한다.

지속 가능한 속도

마라톤

지속 가능한 속도로 달려야 한다. 지속 가능한 속도보다 더 빠르게 달려 버린다면, 결승선을 통과하기 전에 속도를 늦추고 쉬어야 할 때가 올 것이다. 결승선이 눈 앞에 있을 때, 만약 에너지에 약간의 여유가 있다면 더 힘을 내서 달릴 수도 있다. 하지만 그 전에 전력 질주를 해서는 안 된다.

관리자가 당신에게 무리하게 더 빨리 달리라고 할 수도 있다. 그 말을 따르면 안 된다. 끝까지 일 할 수 있도록 당신 자신을 관리하는 일은 당신의 몫이다.

헌신

고용주에게 당신이 얼마나 헌신적인지 보여 주고 싶을 때, 야근은 좋은 방법이 아니다. 야근이 증명하는 것인 당신이 계획을 잘 못 세운다는 것, 동의하지 않았어야 하는 일정에 동의했다는 것, 하지 말았어야 하는 약속을 해 버렸다는 것, 전문가가 아니라 다루기 쉬운 초보자라는 것뿐이다.

잠

프로그래머의 삶을 구성하는 성분 중 가장 소중한 것은 바로 충분한 수면이다. 적게 자면 생산성은 뚝 떨어진다. 자신의 몸이 몇 시간을 자야 하는지 잘 파악하고, 이 시간을 확보해야 한다.

공동 소유

애자일 프로젝트에서는 아무도 코드를 소유하지 않는다. 코드는 전체 팀이 소유한다. 경험을 집중시키지 않고 퍼트리기 위해 애써야 한다.

전문성을 키우면서도 넓게 알아야 한다. 전문성을 발휘할 수 있는 업무와 그 외 분야의 코드에 대한 업무를 두루 맡아야 한다. 언제나 잘 하는 영역을 벗어나서 일할 수 있어야 한다.

공동 소유를 실천하면, 지식이 팀 전체에 퍼진다. 팀 구성원 모두가 모듈 사이의 경계나 전반적인 시스템 동작을 더 잘 이해하게 된다.

지속적 통합

애자일 초기에는 지속적인 통합(Continuous Integration)이 한 두 시간에 한 번 정도 소스 코드를 체크인하고 주 브랜치에 머지한다는 뜻이었다. 모든 단위 테스트와 인수 테스트는 계속 통과해야 한다. 기능 브랜치가 통합되지 않은 채 남아있어서는 안 된다. 배포할 때 동작하면 안 되는 기능은 토글로 비활성화시켜야 한다.

지속적 빌드의 등장

지속적 빌드 도구를 사용하면 통합 사이의 시간 간격이 최소로 줄일 수 있다. 켄트가 처음 주장한 ‘한 두 시간’은 ‘몇 분’으로 바뀌었다. ‘지속적 통합’은 ‘지속적 체크인’이 되었다.

일일 스크럼, 스탠드업 미팅

  • 미팅 참여는 필수가 아니다. 대부분의 팀에서는 한 명쯤 빠져도 된다.
  • 꼭 매일 할 필요는 없다. 각 팀에 맞는 일정을 잡으면 된다.
  • 10분이 넘게 걸리면 안 된다. 팀이 크더라도 말이다.
  • 회의는 다음과 같이 단순한 방식으로 진행한다. 기본적으로 세 가지 질문에 대한 답을 하는 것이다.
    • 지난 미팅 이후 무엇을 했는가?
    • 다음 미팅까지 무엇을 할 것인가?
    • 어떤 장애물이 있는가?
    • (누구에게 감사하고 싶은가?)

이게 전부다. 토론은 없다. 꾸미는 것도 없다. 자세한 설명도 없다. 모든 사람이 30초 정도 안에 세 가지 질문에 대한 답을 해야 한다.

미팅에서는 개발자만 말해야 한다.

결론

애자일은 작은 소프트웨어를 만드는 작은 팀을 돕는 원칙과 실천 방법, 규율을 모은 것이다.

This post is licensed under CC BY 4.0 by the author.