하위 문제 소개 : GitHub에서 문제 관리 향상

하위 문제 소개 : GitHub에서 문제 관리 향상

최근에 우리는 복잡한 문제 관리 시나리오를 해결하도록 설계된 기능인 하위 문제를 시작했습니다. 이 블로그 게시물은 하위 문제를 구축하는 여정, 그 과정에서 배운 내용, 하위 문제를 구현하는 방법 및 하위 문제를 사용하여 스스로 구축 할 수있는 이점을 탐구합니다.

하위 문제는 무엇입니까?

하위 문제는 더 큰 문제를 작고 관리하기 쉬운 작업으로 나누는 방법입니다. 이 기능을 사용하면 단일 문제 내에서 계층 적 목록을 만들어 진행 및 종속성을보다 쉽게 ​​추적 할 수 있습니다. 명확한 구조를 제공함으로써 하위 문제가 팀이 조직을 유지하고 목표에 집중할 수 있도록 도와줍니다.

예를 들어, 나는 종종 일 배치에 다른 저장소에서 코드를 구현하는 것과 같은 여러 단계가 필요하다는 것을 종종 알고 있습니다. 이 작업을 개별 하위 문제로 나누면 진행 상황을 쉽게 추적하고 필요한 작업을보다 명확하게 정의 할 수 있습니다. 실제로 우리는 이것이 링크 된 PR을 더 간결하고 검토하기 쉽게 유지하는 데 도움이된다는 것을 알았습니다.

GitHub에서 하위 문제 목록을 보여주는 스크린 샷.

간단한 역사

문제는 오랫동안 Github의 프로젝트 관리의 핵심이었습니다. 버그 추적부터 계획 기능 개발에 이르기까지 문제는 팀이 작업을 구성하는 유연하고 협력적인 방법을 제공합니다. 시간이 지남에 따라 우리는 라벨, 이정표 및 작업 목록과 같은 도구 로이 기초를 풍요롭게하여 프로젝트 관리를 훨씬 직관적이고 강력하게 만듭니다.

우리가 해결하기 위해 설정 한 주요 과제 중 하나는 문제 내에서 계층 적 작업을 더 잘 표현하고 관리하는 방법이었습니다. 프로젝트가 복잡 해짐에 따라 작업을 작고 실행 가능한 단계로 분류하는 것이 필수적입니다. 우리는 사용자가 이러한 중첩 된 관계를 원활하게 관리하고 단순성과 선명도를 유지할 수 있도록 권한을 부여하고 싶습니다. Github는 알려져 있습니다.

하위 문제에 대한 우리의 여정은 근본적인 목표로 시작되었습니다. Github 문제 경험을 깊이 통합하는 시스템을 만들어 사용자가 불필요한 복잡성을 추가하지 않고도 시각적으로 그리고 기능적으로 조직을 구성 할 수 있습니다. 이를 달성하려면 신중한 설계 및 기술 혁신이 필요했습니다.

구축 하위 문제

하위 문제를 구축하기 위해 기존 작업 목록 기능을 수정하기보다는 작업을위한 새로운 계층 구조를 설계하는 것으로 시작했습니다. 작업 내에서 작업을 중첩하여 계층 구조를 만들 수있는 기능을 도입했습니다. 이것은 중첩 하위 문제를 지원하기 위해 데이터 모델과 렌더링 로직에 대한 업데이트가 필요했습니다.

데이터 모델링 관점에서, 하위 문제 테이블은 부모 문제와 아동 문제 사이의 관계를 저장합니다. 예를 들어, 문제 X가 이슈 y의 부모 인 경우 하위 발행 테이블은이 링크를 저장하여 계층 적 관계가 유지되도록합니다.

또한 하위 발행 완료 정보를 하위 발행 목록 테이블로 롤업합니다. 이를 통해 하위 문제 목록을 통과하지 않고도 성능이 발전 할 수 있습니다. 예를 들어, 문제 Y가 완료되면 시스템은 문제 X의 진행 상황을 자동으로 업데이트하여 모든 하위 문제의 상태를 수동으로 확인할 필요가 없습니다.

우리는 MySQL의 관계로서 하위 문제를 간단하게 표현하기를 원했습니다. 이 접근법은 GitHub Enterprise Server 및 Github Enterprise Cloud와 같은 환경에서 데이터 거주자와 같은 환경에서 하위 문제에 대한 쉽게 지원하는 것을 포함하여 몇 가지 이점을 제공했습니다.

우리는 GraphQL 엔드 포인트를 통해 하위 문제를 노출 시켰으며, 이는 새로운 문제 경험을 바탕으로 새로 만들어진 목록보기 구성 요소를 활용할 수있었습니다. 이 접근법은 문제 데이터가 쿼리되고 표시되는 방법에 대한보다 효율적인 데이터 가져 오기 및 향상된 유연성을 포함하여 몇 가지 이점을 제공했습니다. 전반적으로 기존 구성 요소를 재사용하고 여러 기능에 사용될 새로운 구성 요소를 활용했기 때문에 더 빠르게 움직일 수 있습니다. 이것은 React 생태계에 하위 문제를 제작함으로써 가능해졌습니다.

또한 하위 문제를 생성, 편집 및 관리하기위한 직관적 인 컨트롤을 제공하는 데 중점을 두었습니다. 이를 위해, 우리는 접근성 디자이너 및 Github의 공유 구성 요소 팀과 긴밀히 협력하여 하위 문제를 제시하는 목록보기를 구축했습니다.

우리의 목표는 사용자가 워크 플로를 방해하지 않고 작업을 분류 할 수 있도록 가능한 한 쉽게 만드는 것이 었습니다.

실제로 하위 문제 사용

Dogfooding은 Github의 모범 사례이며 Github을 구축하는 방법입니다! 우리는 회사 전역의 자체 팀 내에서 하위 문제를 사용하여 복잡한 프로젝트를 관리하고 진행 상황을 추적했습니다. 우리의 문제 계층을 관리하기위한 불연속 영역이 있으면 더 간단하고 성능이 뛰어난 경험이 생겼습니다. 이 실습 경험을 통해 개선을위한 영역을 식별하고 기능이 높은 표준을 충족하도록 보장했습니다.

우리 팀은 하위 문제가 대규모 프로젝트를 관리하는 능력을 크게 향상 시켰다는 것을 발견했습니다. 작업을 작고 실행 가능한 항목으로 분류함으로써 더 나은 가시성과 작업에 대한 제어를 유지했습니다. 계층 구조는 또한 종속성을 쉽게 식별하고 균열을 통해 아무것도 떨어지지 않도록했습니다.

초기 피드백 수집

하위 문제를 구축하는 것은 팀의 노력이었습니다. 베타 테스터의 피드백은 최종 제품을 형성하고 지역 사회의 요구를 충족시키는 데 중요한 역할을했습니다. 예를 들어, 하위 발행 목록에 표시 할 메타 데이터의 양을 이해하는 것이 중요했습니다. 우리는 처음에 문제 제목만으로 시작했지만 문제가 다른 저장소에서 나온 경우 문제 번호와 저장소 이름을 추가했습니다.

GitHub에서 기능을 구축하면 우리가 갈 때 우리 자신의 기능을 쉽게 개선 할 수 있습니다. 하위 문제를 사용하여 하위 문제 작업을 분류하기 시작하는 것은 정말 멋졌습니다. 이를 통해 우리는 직접 특징을 경험하고 개선을위한 통증 지점이나 영역을 식별 할 수있었습니다. 예를 들어, has:sub-issues-progress 그리고 has:parent-issue 필터는 필터링 구문에 대한 초기 토론에서 발전했습니다. 이 실습 접근 방식은 세련되고 사용자 친화적 인 제품을 제공 할 수 있도록했습니다.

이러한 교훈은 하위 문제를 개선 할뿐만 아니라 향후 기능 개발에 대한 우리의 접근 방식을 형성하는 데 매우 중요했습니다. 사용자를 조기에 적극적으로 사용하여 자신의 기능을 사용하여 커뮤니티의 요구를 진정으로 충족시키는 제품을 계속 구축 할 수 있습니다. 이러한 관행은 앞으로 우리의 개발 프로세스에 중요하여 고품질의 사용자 중심 솔루션을 제공 할 수 있습니다.

행동 유도 문안

하위 문제는 복잡한 작업을 관리 가능한 작품으로 분류하여 워크 플로에 명확성과 구조를 제공하도록 설계되었습니다. 종속성을 추적하거나 진행 상황 관리 또는 교차 고리 작업 구성에 관계없이 하위 문제는 프로젝트를 계속 유지하는 강력한 방법을 제공합니다.

하위 문제를 시도하고 워크 플로우를 개선 할 수있는 방법을보고 싶습니다. 귀하의 의견은이 기능을 개선하고 향상시키는 데 매우 중요합니다. 커뮤니티 토론에서 대화에 참여하여 생각, 경험 및 제안을 공유하십시오.

Github 커뮤니티의 필수 부분이되어 주셔서 감사합니다. 우리는 함께 협업 개발의 ​​미래를 형성하고 있습니다!

작성자가 작성했습니다

Shaun Wong

Github Sr. 소프트웨어 엔지니어

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다