In una riunione SCRUM, il team del prodotto stava discutendo di una funzionalità di un'API che verrà utilizzata dall'app mobile. Abbiamo avuto un mock up che mostrava come dovrebbe apparire lo schermo e quali elementi chiave dovrebbe contenere (un "layout").
Sulla base di questo e della discussione che ho avuto con il proprietario del prodotto, ho creato un prototipo per una risposta API (HAL + JSON). Era un JSON molto semplice, conforme a HAL, che non faceva altro che rappresentare le cose sui modelli. Non sono stato influenzato dalle idee future previste dagli uomini d'affari in quanto hanno la tendenza a cambiare spesso le loro idee e ho deciso di adottare un approccio minimalista. La mia proposta è stata respinta dal team e sono stato superato da 7 a 1.
Il team ha deciso di utilizzare una struttura json astratta più complessa, non semantica, che consente una maggiore flessibilità nell'organizzazione del layout. Il rovescio della medaglia di questo approccio è che abbiamo finito con un insieme di oggetti uniformi che possono avere proprietà nulle e vuote in base alla progettazione. Hanno anche pensato che sarebbe stato bello rendere possibili i test A / B, ma era basato sulle loro previsioni solo perché non avevamo questo requisito.
Il più delle volte discutevamo di cose che non facevano parte dello sprint, né menzionate nei modelli. I problemi descritti erano "cosa succederebbe se il marketing in futuro ...", "cosa succederebbe se l'azienda potesse volerci ...".
Io e il proprietario del prodotto siamo programmatori esperti e abbiamo riscontrato questo tipo di problemi in passato. Cerchiamo di seguire i principi YAGNI e KISS . Il resto della squadra è un po 'meno esperto e anche se conoscono questi principi, sembrano non capirli.
Abbiamo concordato sulla loro soluzione in quanto la squadra nel suo insieme è più importante per noi e non volevamo litigare per qualcosa che non è così importante. Ma temo che una cosa del genere possa diventare un precedente per dibattiti più impegnativi e complicati? Come affrontare tale comportamento? C'è qualcosa che io, come capo squadra, posso fare di meglio?
Vale la pena ricordare che il prodotto è un MVP in fase iniziale.
I'm afraid if such thing can become a precedence for upcoming, more complicated debates?
- Ciò viola anche YAGNI: preoccuparsi di un futuro che potrebbe non accadere. Se avessi resistito, avresti dovuto già farlo.