SCRUM 회의에서 제품 팀은 모바일 앱에서 사용할 API의 기능에 대해 토론했습니다. 우리는 화면이 어떻게 생겼는지, 어떤 핵심 요소 ( "레이아웃")를 보여야하는지 모의했습니다.
이것과 제품 소유자와의 토론을 바탕으로 API 응답 (HAL + JSON)을위한 프로토 타입을 만들었습니다. 매우 간단하고 HAL 호환 JSON으로 모형에 있던 것을 표현할뿐이었습니다. 비즈니스 사람들이 자신의 아이디어를 자주 바꾸는 경향이 있기 때문에 미래의 아이디어에 영향을받지 않았으며 최소한의 접근 방식을 선택했습니다. 팀에서 제안을 거부했으며 7 대 1로 외면했습니다.
이 팀은보다 복잡한 비의 미적 추상 JSON 구조를 사용하기로 결정하여 레이아웃을보다 유연하게 배열 할 수있었습니다. 이러한 접근 방식의 단점은 설계 상 null 및 빈 속성을 가질 수있는 균일 한 개체 집합으로 끝났다는 것입니다. 또한 A / B 테스트를 수행하는 것이 좋을 것이라고 생각했지만 그러한 요구 사항이 없었기 때문에 예측을 기반으로했습니다.
대부분의 시간 동안 우리는 스프린트의 일부가 아니거나 목업에 언급되지 않은 것들에 대해 토론했습니다. 설명 된 문제는 "미래에 마케팅을한다면 ...", "비즈니스가 우리를 원한다면 ..."이었습니다.
저와 제품 소유자는 숙련 된 프로그래머이며 과거에는 이런 종류의 문제를 보았습니다. 우리는 YAGNI 와 KISS 원칙 을 따르려고 노력합니다 . 나머지 팀원은 경험이 약간 적으며 이러한 원칙을 알고 있지만 이해하지 못하는 것 같습니다.
우리는 팀 전체가 우리에게 더 중요하고 그다지 중요하지 않은 것을 놓고 싸우고 싶지 않기 때문에 그들의 해결책에 동의했습니다. 그러나 그런 일이 다가오는 더 복잡한 토론의 선례가 될 수 있을까 걱정입니다. 그러한 행동을 다루는 방법? 팀 리더로서 내가 더 잘할 수있는 일이 있습니까?
이 제품은 초기 단계 MVP임을 언급 할 가치가 있습니다.
I'm afraid if such thing can become a precedence for upcoming, more complicated debates?
-그것은 YAGNI에도 위배됩니다. 미래에 대해 걱정하지 않을 것입니다. 만일 당신이 당신의 입장을 견디려면 이미 그렇게했을 것입니다.