블로그 이미지
소프트웨어 개발 경험을 공유하고 싶은 재밌게 사는 소프트웨어 엔지니어입니다^^

카테고리

Chungha Story (41)
Agile Experience (22)
My Family (0)
Life Style (7)
Programming (8)
Android (2)
Total
Today
Yesterday

달력

« » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

현재 제가 속한 팀은 아직 애자일 프랙티스를 전파하기에는 이른 시기입니다. 
고민 끝에 (사실 실제 고민은 몇초?;) 점진적 설계와 구현을 해보는것은 어떻겠냐고 같이 일하시는 윗분께 건의했습니다.
길지않은 토론 끝에 UML로 설계를 하고 이터레이션은 고정시키지 않는다는 전제하에 점진적 설계와 구현을 해보기로 했습니다.
제가 정한 한 이터레이션에서 해야할 일들은 다음과 같았습니다.
  1. 해당 이터레이션에서의 요구사항을 Use-case Diagram으로 작성 및 리뷰 (mandatory)
  2. Activity Diagram 및 Collaboration Diagram은 개인적으로 작성 (optional)
  3. 섬광탄 구현 (optional)
  4. Class Diagram 및 Sequence Diagram 작성 및 리뷰 (mandatory)
  5. 설계에 맞게 구현 (mandatory)
  6. 구현에 대한 짧은 회고 및 피드백으로 설계 수정후 구현 수정 - 반복 (mandatory)
  7. 데모 후 다음 이터레이션 (mandatory)

결과물은?
  • 프로젝트 기한 : 예상보다 1주일 정도 먼저 끝났음
  • 결과 바이너리 데모 : 원했던 기능 완료, 어느정도 안정화 됨
  • 설계 문서 : Use-case Diagram 1장, Class Diagram 3장, Sequence Diagram 3장 - 소스코드와 99% 일치

회고
  • 기존의 관행을 깨보았음 (사실 작은 프로젝트라 큰 의미는 없음)
  • UML 설계를 통한 설계 리뷰 및 공유는 정말 괜찮았음
  • 이터레이션을 고정시키는 것에 대해서 반감이 있는 경우에는 살짝 빼도 무리가 없어보임
  • 기존의 관행과의 협상에서 줄건 주고 얻어올건 얻어와야 함 (이렇게 안하면 애자일이 아니다 라는 고정관념을 버려야함
  • 섬광탄 구현이 UML 설계에 많은 도움이 되었음

결론 : 
나는야 행복한 개발자~
Posted by 윤청하
, |
쉬워 보이는 스크럼

작은 개발팀의 생산성과 품질에 대해서 고민해 본적이 있으신 분들이 스크럼에 대한 이야기를 들으면 적지 않은 분들이 상당한 영감을 받습니다. 그리고 바로 팀에 적용 할 수 있을 것 같은 뽐뿌를 받곤 하죠. 그중에 저도 포함되구요.
하지만 데일리 미팅이 그나마 만만할 뿐 프로덕트 백로그, 스프린트 미팅이나 회고, 백로그 추정등은 그렇게 녹록하지 않았습니다.

베스트 프랙티스 도입보다 더 중요한건 애자일 팀 만들기

스크럼의 구성요소들을 하나하나 뜯어보면 애자일 정신이 가득한 프랙티스들이 주류를 이룹니다.
즉, 애자일 개발팀이 아닌 팀에서 스크럼을 도입하려다 보면 데일리 미팅 정도야 하겠지만, 하나하나 적용시키다 보면 난관에 부딪힐때가 많습니다. 더 중요한것은 이러한 난관에 부딪힐때 해당 고민들을 팀원들과 풀려고 하는 것이 아니라 외부 모임(자신만의 세계, 개발자 친구나 개발자 포럼등)에서 풀려고 하는 것이죠. 즉, 적용하려는 리더 조차 애자일스럽지 못한 것입니다.

제 생각에는 갑작스럽게 스크럼을 바로 도입하는 것보다 애자일 개발팀이 되기 위해 하나씩 바꿔나가는 것이 좋다고 생각합니다.
애자일 개발팀으로써 살짝 자리를 잡은 뒤에 스크럼을 도입해보면 더욱 효과적일것 같습니다.
아래의 프로세스들이 팀에 살짝  정착되고 나서 스크럼을 도입한다면 더욱 효과적일것 같습니다.
  • 지속적인 피드백을 주고 받는 설계와 구현
  • 사용자 스토리를 이용한 요구사항 정리 
  • 업무 추정을 담당자에게 위임 
  • 빌드 자동화 / 일일 빌드 
Posted by 윤청하
, |
cooperation vs. collaboration

오늘 회사에서 신규 입사자에 대한 연구소장님 간담회가 있었습니다. 신규 입사자들을 모아놓고 1시간 30분 가량 강연을 하셨습니다.
강연중 cooperation과 collaboration의 구분을 명확히 하셨고 우리는 collaboration을 잘 해야 한다고 강조하셨습니다.
사실 cooperation과 collaboration은 사전적인 의미는 대충 비슷합니다.
피자 vs 파전

저는 cooperation과 collaboration을 피자와 파전에 비유해볼까 합니다.
cooperation은 피자와 비슷합니다. 큰 원형 조각을 미리 정확하게 조각내어 놓습니다. 크기를 동일하게 하려고 해보지만 크기가 제각각입니다. 그리고 보통 시키기 전에 먹을 인원 및 개인의 취향을 고려하여 미리 모두 주문합니다. 그리고 각자 할당된 조각 만큼을 먹습니다
collaboration은 파전과 비슷합니다. 일단 시켜봅니다. 그리고 각자 알아서 먹고 싶은 만큼 조각내서 먹습니다. 젓가락으로 잘 안떼어질때는 서로 도와주기도 합니다. 먹다가 맛있으면 더 시켜서 먹습니다.
팀에서 공동작업을 할때 어떻게 하십니까? 
일만 나눠놓고 서로 독립적으로 작업하십니까? 전체 작업을 시시각각 때에 맞춰 공동작업 하십니까?
cooperation을 하십니까? 아니면 collaboration을 하십니까?
전 경험이 짧지만 제가 경험했던 리더 분들은 대부분 cooperation을 주로 사용하셨습니다. 관리하기 편하기 때문이죠. 
그리고 동료분들도 독립적인 작업을 좋아하셨습니다. 일하기 편하기 때문이죠.
하지만 고객을 만족시키는 소프트웨어 개발을 위해서는 collaboration을 통한 짧은 주기의 피드백은 반드시 필요합니다.

짝 프로그래밍과 협업

XP에서 제안하는 베스트 프랙티스 중에 하나인 짝 프로그래밍은 cooperation과 collaboration의 밸런스를 맞춰주는것 같습니다.
십여명의 팀원이 모두 collaboration을 한다면 결정 시간 지연, 배가 산으로 가는 현상 등등의 부작용이 있을수 있습니다.
cooperation을 하되 그 단위를 짝(pair, 2명)으로 함으로써 collaboration이 가질 수 있는 장점을 높일 수 있습니다.
2명이서 진행하는 collaboration은 오버헤드가 적고 신속한 피드백으로 좋은 품질의 코드를 유지할 수 있습니다.
그래서 저는 짝 프로그래밍을 강추합니다.^^
Posted by 윤청하
, |