마이크로소프트의 깃헙 사용법 — Iteration Plan

프로젝트 계획을 이슈에 적는다고?

Jung-Hyun Choi
5 min readOct 20, 2022

Iteration Plan 이 뭐지?

요즘은 소프트웨어 개발은 연속적으로 이루어진다. 가령, 은행 송금 앱을 만든다고 생각해보자. 처음엔 정말 송금하는 기능만 재빨리 만들어서 출시를 한다. 출시하고 나면 분명 문제점이 생긴다. 그러한 문제점을 모아서 앱을 고치고 또다시 출시한다. 앱이 인기를 끌면 필연적으로 경쟁 앱이 출시를 한다. 이러한 경쟁자로부터 우위를 선점하기 위해 송금만하는게 아니라 정해진 날짜 시간에 송금할 수 있는 예약기능을 만들어서 출시하기도 한다. 이렇게 고객의 피드백을 반영하고 시장에서 살아남기 위해 기능을 계속적으로 보완하고 그렇게 앱은 점점 진화해 나간다.

이 때, 주먹구구로 기능들이 완성될 때마다 출시하는 것이 아닌 고정된 주기를 정하고 각 주기마다 전달하고자하는 기능을 계획하고 개발팀은 주기 안에 개발이 이루어질 수 있도록 개발을 진행한다. 그 주기에 대한 계획이 Iteration Plan이다.

Iteration Plan 파워포인트로 관리하면되자나

이러한 계획은 보통 파워포인트같은 문서파일을 작성하여 구성원들이 같이 보기도 한다. 요즘엔 파워포인트도 웹을 통하여 공유해서 볼수 있으니 충분히 가능한 방법이다.

아니면 좀더 고급지게 JIRA의 스크럼 기능을 사용해서 이터레이션을 계획하고 팀의 활동을 추적하기도 한다.

또는 Trello와 같이 칸반보드 스타일의 작업 관리 협업 툴을 사용하기도 한다.

그럼 Microsoft의 VS Code 팀은 어떻게 관리할까? Github에서 프로젝트가 이루어지니, Github의 Project기능을 사용할까? 참고로 Github은 소스코드만 관리할 수 있는게 아니라 개발이 필요하면 프로젝트 기능, 위키 기능, CI/CD 기능 등 종합적인 기능을 제공한다.

VS Code의 Iteration Plan 관리 방법은!!

두둥. 이슈로 관리한다. 이터레이션에서 수행해야할 작업을 Issue에 기록하고 Iteration-Plan 이라는 라벨을 달아둬서 수많은 이슈 중에 계획과 관련된 Issue를 쉽게 찾을 수 있도록 하고 있다.

https://github.com/microsoft/vscode/labels?q=iteration

아래 보면, 2022년 10월달의 Iteration Plan이 진행중임을 알 수 있다.

https://github.com/microsoft/vscode/labels/iteration-plan

그리고 현재 진행중인 이터레이션의 계획을 고정시켜놔서 손쉽계 Iteration Plan 이슈를 찾아갈 수 있도록 설정해 놨다.

아래는 Iteration 계획의 일부만을 캡처해보았다. 이터레이션을 Endgame이라고 별명을 지어준것 같다. 주기는 4주마다 이터레이션을 하는 것으로 확인되고 11월달에 출시(ship)를 목표로 하는 것을 알 수 있다. 그리고 이번 이터레이션에 진행할 작업을 체크 박스 목록으로 나열하고 있고 작업과 연결되는 이슈를 연결하고 ‘@’ 을 통해서 담당자도 꼼꼼히 설정해 두고 있다.

https://github.com/microsoft/vscode/issues/163069

더 잼있는 것은 이모티콘을 활용해서 현재 작업이 잘 진행중(work in progress)인지, 이번 이터레이션에서 좀 도전적으로 진행 중인 작업(strech goal)인지 작업을 진행하기 위해 좀더 조사/논의가 필요한 작업(more investigation required)인지 등을 표시하고 있다. 그래서 🏃가 표시되어 있다면 작업이 진행하는데 문제가 없고, 잘진행하고 있다는 뜻이 되고 뭔가 작업을 진행하기에 허들이 발생한다면 🔴, 🔵,⚫를 표시해서 이터레이션의 참여자들의 현재 작업 상태를 한눈에 확인할수 있도록 하고 있는데, 참신해 보인다.

보통은 Daily Meeting을 통해서 이터레이션 중 작업 진행에 어려운 허들을 서로 공유하곤 하는데, 온라인에서만 개발을 진행하다면 이러한 이모티콘을 활용하는 방법도 현재 이슈의 진행상태를 알리는데 도움이 될 것 같다.

그리고 작업 진행이 완료되면 체크박스에 체크 표시가 되고 해당 PR도 merge가 되었음이 연결되고 있다.

그렇다면 우리는?

개발팀에서 이터레이션 계획회를 수행하고 Iteration-Plan 라벨을 갖는 Issue를 만들어보면 어떨까? 이번 이테레이션의 주기, 출시 목표도 기록해보고 이번 이터레이션에 진행할 작업도 정리해보자. 그리고 계획하는 것만으로 그치지 않고 매일매일 Daily Meeting을 통해서 또는 참여하는 개발자는 현재의 작업 진행 상태를 이 이슈에 반영시켜보자. 훌륭한 Iteration 을 계획하고 수행하는 협업 방법이 될 것 같다.

--

--

No responses yet