Em uma reunião do SCRUM, a equipe do produto estava debatendo sobre um recurso em uma API que será consumida pelo aplicativo móvel. Tivemos uma simulação que mostrou como a tela deveria ser e quais os principais elementos que ela deveria conter (um "layout").
Com base nisso e na discussão que tive com o proprietário do produto, criei um protótipo para uma resposta de API (HAL + JSON). Era muito simples, o JSON compatível com HAL, que nada mais fazia do que representar o que estava nas maquetes. Não fui influenciado pelas idéias futuras previstas pelos empresários, pois elas tendem a mudar suas idéias com frequência e decidi adotar uma abordagem minimalista. Minha proposta foi rejeitada pela equipe e fui derrotado por 7 a 1.
A equipe decidiu usar uma estrutura json abstrata não-semântica mais complexa, que permite mais flexibilidade na organização do layout. A desvantagem dessa abordagem é que acabamos com um conjunto de objetos uniformes que podem ter propriedades nulas e vazias por design. Eles também pensaram que seria bom tornar possível o teste A / B, mas foi baseado em suas previsões apenas porque não tínhamos esse requisito.
Na maioria das vezes, estávamos debatendo sobre coisas que não faziam parte do sprint nem eram mencionadas nos modelos. Os problemas descritos foram "e se o marketing no futuro ...", "e se a empresa quiser que nós ...".
Eu e o proprietário do produto somos programadores experientes e vimos esse tipo de problema no passado. Tentamos seguir os princípios YAGNI e KISS . O restante da equipe é um pouco menos experiente e, embora conheça esses princípios, parece que não os entende.
Concordamos em sua solução, pois a equipe como um todo é mais importante para nós e não queríamos brigar por algo que não é tão importante. Mas receio que tal coisa possa se tornar um precedente para debates futuros e mais complicados? Como lidar com esse comportamento? Existe algo que eu, como líder de equipe, possa fazer melhor?
Vale ressaltar que o produto é um MVP em estágio inicial.
I'm afraid if such thing can become a precedence for upcoming, more complicated debates?
- Isso também viola YAGNI: se preocupar com um futuro que pode não acontecer. Se você estava indo para defender sua posição, você já deveria ter feito isso.