본문 바로가기

카테고리 없음

JIRA는 반 패턴입니다.

출처 : https://techcrunch.com/2018/12/09/jira-is-an-antipattern/

 

 

 

용지도

Atlassian의 JIRA는 버그 추적 도구로서의 삶을 시작했습니다. 하지만 오늘날에는 훌륭한 소프트웨어를 계획, 추적 및 출시 하는 민첩한 계획 수립이 이루어졌습니다 . 많은 조직에서 소프트웨어 프로젝트의 기본지도, 모든 개발의 허브, 악명 높은 "진실"이되었습니다. "

지도가 영토가 아니라는 것은 사실이다. 아아, JIRA는 특히 그렇습니다. 버그 트래커 (bug tracker)로서의 그것의 기원과 그것의 근본적인 정의 단위로서의 "표 (ticket)"의 사용으로 인해지도가 특히 어려워졌습니다. JIRA 1 은 실수로 업계의 "반 패턴"즉 " 반복적 인 문제에 대한 일반적인 대응으로 대개 비효율적이며 위험 요소는 매우 비생산적인 "방식으로 사용됩니다.

우아한 소프트웨어를 작성하는 한 가지는 예술과 공통점이 있습니다. 프로젝트 작성자는 프로젝트의 전체적인 매크로 비전을 인식하면서 가장 미세한 미세 세부 작업을 수행해야합니다. JIRA는 세부 사항에 초점을 맞추면서 더 큰 비전을 무시하도록 모든 사람들에게 암묵적으로 가르치고 있습니다. 전체가 없습니다. 기껏해야 "서사시"가 있습니다 - 그러나 서사시의 모든 부분은 독립적으로 작업하기 위해 더 작은 조각으로 분해되어야합니다. JIRA는 매크로 비전의 분해를 권장합니다.

또한 기능 중심의 JIRA는 개별 기능에 매핑되지 않는 프로젝트 차원의 인프라 개념을 쉽게 지원하지 않습니다. 프로젝트에서 사용되는 데이터 모델. 여러 페이지에 걸쳐 사용되는 복잡한 구성 요소. 써드 파티 인터페이스를위한 캐싱 레이어. 여러 화면에 걸쳐 실시간 데이터를 제공하는 백그라운드 서비스. 물론, 당신 JIRA의 티켓 패러다임에 그것들을 쐐기로 고정 시킬 수 있습니다 ... 그러나 의존성의 거미줄은 아무도 도움이되지 않습니다.

최악의 상황이라면 티켓을 마킹 하여 다음 단계로 넘어가 는 끝없는 암묵적인 압박 이다. JIRA 사고 방식의 티켓은 완료 될 때까지 집중되어 전달 된 후 다시 볼 수 없습니다. 그들은 일방적 인 라이프 사이클을 가지고있다 : 명세; 디자인; 개발; 테스트; 해제. 소리가 좀 ... 음 ... 폭포? 애자일 개발 은 단순히 하나의 큰 폭포를 1,000 개의 작은 폭포로 교체하는 것이 아니라 근본적 으로 폭포 개발과 다른 것입니까?

여기에 비유가 있습니다. 타워, 주거 지구, 공원, 쇼핑몰 및 도로를 포함하지만 상수도, 하수구, 지하철 터널, 전기 그리드 등을 쉽게 지원하지 않는 도시지도를 쉽게 디자인 할 수있는 도시 계획 도구를 상상해보십시오. , 어색한 해킹을 통해서만 쐐기로 고정 될 수 있습니다.

이제는이 도구가 건설을위한 청사진으로 사용되었다고 가정합니다. a) 이웃은 도시 건설의 기본 단위입니다. b) 도시는 한 번에 한 이웃으로 지어졌고 주변은 한 번에 한 블록 씩 지어졌습니다. 더 나아가, 마지막 하나가 절대적으로 완료되었을 때만 다음 단계로 나아갈 수있는 인센 티브가 주어지며, 중간 크기의 스트립에서 자라고있는 꽃이 있습니다.

이제 도시의 개발자, 엔지니어 및 건설 노동자가 얼마나 많은 이웃과 블록이 완전히 완료되었는지, 그리고 얼마나 많은 이웃과 블록이 각각 완료되었는지를 추정하고보고하라는 요청을 받았다고 상상해보십시오. 그것은 당신을 도시 계획의 특히 효과적인 모델로 공격합니까? 그 결과로 살기를 원합니까? 실제로, 도시를 성장시키는 가장 좋은 방법은 유기농 일 것이라고 생각하십니까?

그 은유를 확장합시다. 당신이 좀 더 유기적으로 도시를 건설하기 시작했다고 가정하면, 어느 정도 중요한 시점에 임시 및 영구 건물이 혼합 된 시내가 있습니다. 고층 건물의 기초가 놓여졌습니다 (즉 기술적 불확실성이 해결됨). 많은 핵심 인프라가 구축되었습니다. 중부 이웃에있는 초기 구조의 몇 군데, 그리고 외곽에있는 shantytown; 공항이있을 흙 활주로; 그리고이 모든 곳에서 교통이 왕래하고 있습니다. 다른 말로하면, 당신은 조잡하지만 기능을 발휘하는 도시를 건설했고, 그 해골은 건설되었고, 매끄럽게 만들어 질 준비가되었습니다. 잘 했어!

그러나 얼마나 많은 블록들과 이웃들이 절대적으로 끝났는 지를 측정한다면 , 도시 계획가들의 예술적 표현에 따르면, 당신의 진보는 무엇입니까? 그 척도에 따라 귀하의 진도는 0 입니다.

그래서 JIRA가 당신에게 인센티브를주는 방식이 아닙니다. 이는 진행중인 티켓의 거대한 칼럼처럼 보이며 완전한 티켓은없는 것으로 보입니다. 그것은 끔찍한 것 이상으로 보일 것입니다. 그 대신, JIRA는 전체 블록을 완료하고 다음 블록을 완성하도록 인센티브를 부여합니다. 전체 이웃, 그리고 다음. 가능한 한 많은 티켓을 없애고, 티켓을 완성하고 전달하는 것입니다. 처음에 함께 작업하는 것보다 사실을 모으기가 더 어려워진 후에도 함께 연결할 수 있습니다.

(소규모 모델을 선호하는 경우 도시 → 콘도 건물, 이웃 → 층, 블록 → 단위 등)

그리고 사람들은 티켓을 받고, 서면으로 구현하고, 워크 플로우의 다음 단계에있는 사람들에게 전달하며, 병렬로 분산 된 그룹에서 작업하는 것이 훨씬 효과적 일지라도 자신의 업무가 잘 수행 된 것으로 간주합니다. 골. "업로드 버튼 구현"티켓을 말합니다. 그래서 모든 것이 이루어집니다. 이 티켓은 업로드 버튼의 더 큰 목적은 사용자가 자신의 작업을 백업 할 수 있도록하는 것이라고 설명하지 않습니다. 실제로 모든 상태 변경을 자동으로 업로드하는 것이 실제로 기술적으로 더 쉬워서 사용자가 자동 ​​단추없는 백업과 완전한 실행 취소 / 다시 실행 스택을 얻는 것이 좋습니다. 그러나 모든 티켓은 "업로드 버튼을 구현하십시오."라고 말합니다. 그래서 모든 것이 완료되었습니다.

전체 프로젝트의 비전에 대해 걱정할 수있는 유일한 시간은 과도한 프로젝트 관리자가 초기 프로젝트를 전체 프로젝트를 숲으로 분해하는 고마운 작업을 처리 할 때입니다. 티켓. 그러나 애자일 개발의 요점 은 시간이 지남에 따라 프로젝트가 항상 바뀌고, 팀에 속한 여러 사람이 그 변화에 기여할 수 있도록 돕는 것입니다. JIRA는 실제로 이것에 반대하는 툴이되었습니다.

(엔지니어가 다른 사람이 분해 한 프로젝트를 계획하기 위해 파티션 계획이 부 자연스럽게 느껴지는 하위 구성 요소로, 계획 회의 중에 기능 당 약 30 초를 부여한 다음 전체 프로젝트 계획 손을 흔드는 연구되지 않은 머리없는 반 블라인드 추측에 대해 직접 재검토하거나보다 신중한 분석을 할 필요가 없습니다.이 반 패턴은 JIRA의 잘못이 아닙니다 ... 정확히 JIRA의 구조는 그것.)

JIRA가 없다고 말하는 것은 아닙니다. 작은 조각으로 분해하고 순차적으로 마무리하는 것이 현명 할 때 매우 좋습니다. 그리고 놀랍지도 않게 그 역사를 보면 이슈 트래킹을 잘 해내 고 있습니다.

다시 강조하겠습니다. 우아한 소프트웨어를 작성하려면 작업하는 동안 매크로와 마이크로 비전을 동시에 염두에 두어야합니다. JIRA는 마이크로 조각을 잘 관리합니다. 하지만 매크로에는 뭔가 다른 것이 필요합니다. 클릭 할 수있는 프로토 타입으로는 충분하지 않으며 중요하지만 설명이 필요한 문맥도 필요합니다.

나는 충격적이고 혁명적 인 무엇인가를 제안 할 수있게 해 준다 : 산문 . 네, 맞습니다. 행의 단어들; 신중하게 쓰여진 단락들. 거대한 요구 사항 문서를 말하는 것이 아닙니다. 저는 전체 프로젝트의 비전을 자세히 설명하는 10 페이지 개요와 도시의 물, 하수도, 전력, 지하철 및 공항이있는 소프트웨어 인프라를 설명하는 6 페이지 구조 문서를 이야기하고 있습니다. 그들은 은유를 확장하기 위해 일합니다. 아마존 회의를 소집하기 위해 6 페이지 분량의 메모를 요구할 수도 있지만, 실제로는 그렇게 많이 묻지 않는 것 같습니다.

JIRA를 프로젝트지도 작성의 기본지도와 모델로 취급하는 것을 중단하는 것만으로도 암묵적인 반 패턴 화가 크게 줄어 듭니다. 꼭 반복 개발 및 버그 수정을 추적하는 데 사용하십시오. 그게 아주 훌륭합니다. 그러나 깊이 프로젝트의 전반적인 비전이나 인프라의지도로 잘못 적합한 도구이며, 그것은 없다 결코 진리의 근원 - 진실의 소스가 항상 실행 코드입니다. 소프트웨어와 마찬가지로, 예술과 마찬가지로 미세 작업과 매크로 비전은 항상 서로에게 알려야합니다. JIRA가 마이크로 작품을 매핑하게하십시오; 그러나 좋은 고풍의 평범한 언어가 매크로 비전을 묘사하고 그것에 더 많은 관심을 기울 이도록하십시오.


1 Atlassian은 7.97.10 버전 사이에서 JIRA를 탈장 소화 한 것으로 보이지만 설명 적으로 모든 대문자는 여전히 보편화되어 있습니다.