Introduction

This post is note-taking of one of Korea Global Azure 2020 sessions.

Target Audience

  • Agile 방법론을 사용하거나 알고 있지만, 더 많은 내용을 알고 싶은 분.
  • Azure DevOps에 대해 기본적인 수준에서 더 깊이 알고 싶은 분들.

What is Agile?

  • 사용자의 관점에서 feature를 더 빠르고 효율적으로 개발하는 방법론.
  • 종류는 Extreme programming, Scrum, Kanban, etc.
  • 오늘의 내용은 Scrum을 살펴볼 예정.

What is Scrum?

  • product owner는 일의 목록을 정하고 우선 순위를 정하는 역할.
  • product backlog가 정해지면 sprint (개발주기) planning을 하는데 보통 일주일 단위의 sprint를 진행하고 최고 1달을 지나지 않음.
  • daily scrum 이라고 매일 짧게 stand up 형식의 미팅을 진행한다.
  • sprint가 완료되면 sprint retrospective(회고)를 진행한다.

What is Azure DevOps?

  • Agile 방법론을 이용하여 프로젝트를 도와주는 all-in-one 도구.
  • 프로젝트 관리, Repo, pipeline, test plan, artifact hub 등 여러 목적으로 사용된다.
  • Azure DevOps Demo Generator에서 미리 작성된 샘플을 import하여 체험할 수 있다.

오늘의 시나리오

Boards

  • Scrum 방법론에서 생산한 backlog를 정의하고, 우선 순위별로 나열한다. Planning 탭에서 볼 수 있듯이 Iteration이 일주일로 설정된 것을 확인할 수 있다.

  • Board 는 backlog의 진행 상황을 한 눈에 확인할 수 있다.

  • 가장 많이 사용하게 될 탭은 Sprints인데, 개발팀이 받은 Sprint backlog를 매일 Daily Scrum 미팅에서 확인하는 용도.

  • Retrospective 기능은 Visual Studio Marketplace의 Extension으로 설치할 수 있다. link

  • Estimate 기능 역시 extension인데 각 work item에 대해 몇 시간 정도로 예상하는지 팀원들의 의견을 받아 결정하는 데 용이하다. link

Repos

  • 가장 많이 사용하게될 탭은 Pull Request 탭이다.
  • master branch의 경우 엄격하게 유지되어야 한다. 이를 강제하기 위해 정책을 설정할 수 있는데 Project settings 탭에서 관리한다.
  • 실제 프로젝트에서는 2-3개의 repo를 사용한다. Frontend, Backend 등 여러 개로 유지. 이렇게 되면 각 repo의 PR을 관리하기가 어려운 문제가 있다. Pull request hub이라는 extension을 이용하면 한 눈에 보고 효율적으로 관리할 수 있다.

Pipeline

  • 기존에는 build task 탭에서 필요한 기능을 UI로 추가하였지만, 최근 권장되는 방식은 yaml파일로 관리하는 방법이다.