여러 프로젝트에서 다루어지는 문제에 대한 스토리 준비를 모델링하는 방법


9

우리 회사에서는 여러 팀이 동시에 여러 프로젝트의 다른 구성 요소에 대해 작업합니다. 예를 들어, 한 팀은 일부 프로젝트에 대해 특정 종류의 소프트웨어 (또는 하드웨어)를 만들고 다른 팀은 다른 특정 종류의 소프트웨어를 만들 수 있습니다. 우리는 Jira 프로젝트를 사용하여 특정 프로젝트의 이슈를 호스트하고 다른 팀의 스프린트를위한 Jira 보드를 호스팅합니다.

우리는 프로젝트 전체에서 코드 중복을 피하는 문제에 직면하고 있으며 프로젝트에서 사용하는 핵심 라이브러리 세트를 개발했습니다. 프로젝트를 진행하는 동안 일부 개발자는 자신이 작성한 코드가 더 큰 관심을 가져야하며 핵심 라이브러리로 추출되어야하거나 사용중인 일부 핵심 코드에 버그가 있거나 매개 변수가 더 필요하거나 새로운 기능 ... 이름을 지정합니다.

따라서 핵심 프로젝트의 백 로그에 들어가는 핵심 라이브러리 문제를 만듭니다. 이러한 모든 문제는 핵심 도서관 회의 (일주일에 한 번)에서 검토, 우선 순위 지정 및 추정되며, 향후 스프린트에서 우선 순위 (프로젝트 별 문제와 함께)에 따라 해결 될 것입니다.

우선 순위는 정렬 문제로 이루어지며 정렬 된 문제에 sorted레이블을 붙입니다 (따라서 정렬되지 않은 문제를 검색 할 수 있습니다). 그런 다음 핵심 구성 요소 당 하나의 문제를 백 로그 상단에 수동으로 배치하여 문제를 먼저 해결합니다. 일부 팀은 이러한 문제를 스프린트에 넣을 때 다른 항목을 수동으로 백 로그 상단으로 직접 드래그해야합니다.

이것은 오류가 발생하기 쉽습니다. 기본적으로 우리가 가진 것은 "공개"와 "진행 중"사이의 "정렬 된"및 "추정 된"추가 문제 상태입니다. sorted레이블과 보드에서의 위치를 통해 이것을 반영 하는 것은 다소 번거롭고 오류가 발생하기 쉽습니다. (예를 들어, 누군가가 일부 스프린트에서 문제를 위아래로 움직 인 경우, 이는 핵심 보드에 반영되어 팀이 이전에 광범위한 토론에서 결정했을 수있는 문제의 순서를 조용히 뒤흔들 것입니다.)

그렇다면 이것을 구현하는 더 좋은 방법은 무엇입니까?


2
lib에 함수를 추가하기에는 너무 많은 외교적 오버 헤드가있는 것 같습니다. 50 명의 개발자 (의료 소프트웨어)로 구성된 회사에서는 개발자가 적절하다고 생각하는 경우 각 사내 라이브러리에 코드를 푸시 할 수 있습니다. 물론 검토했다. pullrequest 흐름을 사용하는 것이 아니라 회의를 고려할 수 있습니까? 아니, 그건 절대 안될거야
Teimpz

@Teimpz : 물론 모든 사람이 사내 라이브러리로 푸시하고 물론 모든 코드를 검토합니다. 그러나 핵심 이슈가 해결되는 순서 (현재 프로젝트에는 필요하지 않음)는 모든 팀에서 결정합니다. 그것은 잘 작동하지만 Jira만이 잘 지원하지 않는 것 같습니다.
sbi

오버 헤드는 꽤 많이 보이지만 코어가 너무 널리 사용되면 아무 것도 잘못되지 않도록 약간의 오버 헤드를 기꺼이 받아 들일 것입니다. 회의는 많은 것 같습니다. 다른 작업으로 보았지만 추가 의사 소통-리뷰, 대화-이 중요합니다.
Erdrik Ironrose

답변:


2

JIRA에서 이것을 추적하려면 새로운 작업 인 것처럼 따라갑니다.

예를 들어 :

CORE-75 이야기 : Foo the Bar 이야기가 있다고 가정 해 봅시다 .

작업을 수행 할 팀이 결정되면 새 작업을 만들 수 있습니다. SUPPORT-123 : Foo the Bar in Core .

그런 다음 수 차단 CORE-75지원-123 . SUPPORT-123 이 완료 되면 CORE-75 로 돌아갈 수 있습니다 . 검토를 병합하거나 코드를 두 번 검토 할 수 있습니다 (지정된 팀이 한 번, 더 핵심적인 팀이 한 번).

이것은 실제로 당신이하고있는 일입니다 : 핵심 라이브러리를 자체 제품 / 고객으로 고려하십시오. 반쯤 가지 마십시오.


번거로운 것처럼 보이지만 작동합니다. 그래서 +1나에게서.
sbi

0

한 가지 방법은 팀이 핵심 라이브러리 문제와 다시 연결되는 스프린트에 대한 새로운 문제를 만드는 것입니다. 그것은 당신이 작업에 대한 하위 작업을 만드는 것과 비슷하지만 보드 / 백 로그를 가로 지르는 것과 같습니다.

또 다른 방법은 JIRA 외부에서 별도로 추적하는 것입니다. 기존 백 로그를 CSV 또는 스프레드 시트로 내보내고 구성합니다.

JIRA에서 문제를 분리함으로써 계획 회의에서 우선 순위를 유연하게 정의 할 수 있으며 이사회에서 JIRA의 정렬 알고리즘에 대해 걱정할 필요가 없으며 레이블도 사용할 필요가 없습니다.

핵심 라이브러리에 대한 우선 순위 계획 회의에서 핵심 라이브러리에 대해 완료해야하는 작업의 짧은 목록을 작성할 수 있으며 핵심 라이브러리에 대한 책임 / 책임자가 누구든지 다른 프로젝트 팀이 이러한 작업을 시작하고 완료하도록 할 수 있습니다.


-2

많은 공통적이지만 관련없는 기능을 캡슐화하는 코어 라이브러리는 '나쁜 것'이라는 견해가 있습니다 (tm)

이것에 대한 몇 가지 이유가 있습니다

  • 필요하지 않은 종속성과 코드를 가져옵니다.
  • 변경하면 모든 응용 프로그램이 변경됩니다
  • 단일 '소유자'없음

귀하의 경우 응용 프로그램별로 작업을 나누는 것이 문제의 근원이라고 생각합니다. 역 Conway의 법칙.

'핵심 라이브러리'라이브러리를 벗어나는 것이 최선의 해결책이라고 생각합니다. 라이브러리에는 논리적으로 그룹화 된 특정 기능 세트가 있어야합니다. 완료 할 수 있어야합니다. 즉, JsonParser, LogWriter 등은 새로운 기능을 추가하는 것이 이치에 맞지 않습니다.

그러나 이것이 길고 어려운 작업이라고 가정하면 보조 솔루션으로 핵심 라이브러리 작업을 기능이 필요한 팀과 함께 유지합니다. 즉.

작업 : 제품 Y에 기능 X 추가

개발자 : 기능 X의 코드 중 일부는 핵심 라이브러리에 있어야합니다.이 작업의 일부로 코드를 추가하겠습니다.


이상해 보인다. 우선 : "논리적으로 그룹화 된 특정 기능을 가진 라이브러리"와 "핵심 라이브러리"의 차이점은 무엇이라고 생각하십니까? (BTW :이 답변에 대한 알림을 놓친 것 같습니다. 너무 늦게 답변해서 죄송합니다.)
sbi

나는 이것이 저에게 돋보이는 인용문이라고 생각합니다. "그들이 작성한 코드는 더 큰 관심을 끌고 있으며 핵심 라이브러리로 추출되어야합니다." 공유 프로젝트가 기능 완료 '라이브러리'인 경우 기능을 추가 할 필요가 없습니다.
Ewan

나는 당신의 주장을 이해하지 못합니다. 유지 보수에서 어떤 코드가 도움이되지 않습니까? 그리고 고객이 새로운 기능을 요청하지 않아 새로운 코드가 작성됩니까? 그리고 이미 관심있는 요구 사항을 가진 다른 프로젝트를 할당하는 것 외에 코드가 공통적으로 관심이 있다는 것을 어떻게 알 수 있습니까?
sbi

라이브러리가 Json.Net이라고 가정하십시오. 객체를 json으로 직렬화하고 역전시키는 한 가지 목적이 있습니다. 버그를 수정하거나 제네릭에 대한 지원을 추가해야하지만 전체 기능 세트는 변경되지 않습니다. 당신은 예를 들어 고객이 또는 어떤 '주문을 취소 할 수있는 능력'을 구현하도록 요청 위치에 결코 당신은 '나는 Json.Net에 그것을 추가 할 것', 생각
이완
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.