My Profile Photo

DongChanS's blog


수학과 학생의 개발일지


애자일 방법론 (2) - 애자일 구성원&절차, Scrum

1) 애자일 역할

  • 제품책임자

    개발 범위에 대한 책임자, 요구사항에 대한 협상을 할 수 있는 위치

  • 개발팀

    그저 개발

  • 스크럼 마스터

    여러 개발팀의 스크럼 코치, 회의/기록과 같은 부수적인 절차를 조절함

2) 애자일 프로세스

2

이 사진에는 없지만,

스프린트 이전에 스프린트 제로를 만드는 것을 추천함.

2-1. 스프린트 제로

  1. 개발환경 셋팅
  2. 무엇을 만들까?
    • 와이어프레임 같은걸로 표현하기.
    • 릴리즈 계획 미팅
      1. 전체적인 프로젝트에 필요한 기능 계획 (Product backlog)
      2. 그 기능들을 Sprint마다 할당하기 (Sprint backlog)
  3. 역할분담
    • 팀 구성
    • 팀원별 스토리 배정
  4. 초기 백로그 세팅

2-2. 스프린트

  • 여태까지의 팀 역량 확인
  • 남은 자본, 일정 확인
  • 현재까지 완성된 제품

=> 이전 스프린트에 뭘 덧붙일지 계획하는 작업

2-3. 스프린트 배분

ex) 7주 프로젝트라면,

  • 스프린트 제로 한번

  • 스프린트 3번

    • 여기서 리팩토링도 할 필요가 있음!

      => 작지만 심플하면서도 완성도가 높은 코드를 만들자!

2-4. 백로그

  1. 제품 백로그

    • 추정의 결과
    • 지속적으로 수정해야함.
    • 엑셀( 혹은 Rmind 1.7.1로 변환 )로 정리하는것을 추천함
      • 양식
        1. 우선순위 : Very high, high, Medium
        2. 아이템, 설명
        3. 추정시간
        4. 역할군
  2. 스프린트 백로그

    • 제품책임자가 선정해준 양식(제품 백로그)을 통해서

      팀 자체적으로 만드는 업무들

    • 매일 갱신

    • 번다운 차트로도 표현가능

3) 애자일 구성원

Self-organized team에서 전부 다 개발자라면…

-> 요구사항은 어떻게?

-> 페르소나 역할을 해줄 사람도 있어야하지만, 제품 책임자 역할을 해줄 사람도 있음

만약 개발자만 있다면, 이런 역할을 주기적으로 교체해줘야함!

3-1. 제품책임자

  • 이 업무를 왜 해야함??
  • 우리가 뭘 해야함??

이런 요구사항을 가이드해주는 역할

  1. Requirement

    • 요구사항 정리 –> 우선순위 배정
    • 제품에 대한 비전 –> 기능 구상
    • 비즈니스에 대한 이해 –> 프로젝트의 가치 확립
    • (Option) 고객과 같은 깐깐함.
  2. 해야할 것

    • 릴리즈 계획
    • 제품 백로그
    • 예산관리
  3. 핵심 포인트

    Biz to Source code

    On-site customer (고객역할도 해줘야하므로…)

1

3-2. 스크럼 마스터

  • 한개 이상의 팀을 관리
  • 애자일스럽게 일을 하는지 확인하기.
  • 개발 프로세스나 산출물을 소개하고 제시해주는 역할.

3-3. 개발팀

  1. 다기능 통합팀
    • 모두 프로그래머만 있는게 아니라, QA역할 & ui 디자이너 등등이 같은팀에 있음.
  2. 팀원들 개개인의 역할은 다음 스프린트에서 수정함.

결론 : 개발자는 그저 개발만!!

4) 애자일 방법론 : 스크럼

4-1. 특징

  • 짧은 시간 내에 최상의 가치를 제공하는데 초점을 둠.
  • 2주~4주마다(Sprint) 실제로 작동하는 소프트웨어를 시연하고 피드백함
  • 자기 조직화
    • 팀 자체적으로 아키텍쳐, 공용 라이브러리같은 것들을 전부 고민함.
    • 그 팀 안에서 모든것들을 해결해나갈 수 있는 것.

4-2. 스크럼 세부 과정

  1. 일일 (스크럼) 회의

    • 15분정도 진행
      • 진도 확인 : 어제뭐했어?, 뭐할거야?, 일하는 데 방해되는거없어?
      • (주의사항) : 실제 프로젝트에 관한 의논은 일일스크럼 회의 다음에 하는게 좋다!
    • Scrum Tool을 통해서 기록하는게 효율적이다!
  2. 스프린트 검토 회의

    • 소프트웨어 시연
    • 고객, 제품 책임자와 반드시 피드백받아야함.
  3. 스프린트 회고 미팅

    • 스프린트 검토 회의에서 나온 피드백들을 리뷰하기.
    • 우리 팀끼리 제품에 대해서 자아비판하기.

5) 애자일을 적용하는 팁

5-1. 표준

반복적으로 프로젝트를 진행한다면, 표준을 만들어라!

ex) 소스코드에 대한 표준, 코딩문화, 문서 템플릿

5-2. DB 모델

  1. 개념모델
  2. 논리모델
  3. 물리모델

5-3. 비기능 요구사항도 중시하기!

  • 재미
  • 사이트의 아름다움
  • 사용자를 고려한 공학적인 설계

5-4. 핵심

요구사항에 최적화된 스토리와 소스코드를 만들기!

  • 중간산출물을 만드는 것은 별로 효율적이지 않다.
  • 스프린트 리뷰를 할 때는 기능도 중요하지만, 소스코드를 점검해보는 것도 중요하다!

6) DevOps (작성중)

최근 DevOps 회사에서 애자일 방법론들을 많이 사용하고 있다고함.

3

  • CI (지속적인 통합)
    • 애자일 팀들이 개발하는 코드를 지속적으로 합침.
    • CI Tool이 필요함.
      • 소스코드 모으기.
      • 의존성 컴파일
      • 데이터 로드
  • 필요한 툴
    1. Git : 버전관리 시스템
    2. Jenkins : 빌드, CI
  • CI와 CD의 차이

    -> CD는 빌드, 테스트, 배포, Acceptance test를 자동으로 해주고

    실제 서버에 반영하는 작업까지 자동으로 해줌.

현실적으로

  • Trello로 일정관리
  • git과 jenkins를 연동하기
  • junit을 통해서 테스트하기
  • slack과 jenkins를 연동하여 slack으로 테스트 결과를 받기
comments powered by Disqus