Na spotkaniu SCRUM zespół ds. Produktu debatował na temat funkcji interfejsu API, która zostanie wykorzystana przez aplikację mobilną. Mieliśmy makietę pokazującą, jak powinien wyglądać ekran i jakie kluczowe elementy powinien on zawierać („układ”).
Na podstawie tego i dyskusji, którą przeprowadziłem z właścicielem produktu, stworzyłem prototyp odpowiedzi API (HAL + JSON). To był bardzo prosty, zgodny z HAL JSON, który nie zrobił nic więcej niż reprezentował rzeczy, które były na makietach. Nie wpłynęły na mnie przyszłe pomysły, które były przewidywane przez ludzi biznesu, ponieważ mają oni tendencję do częstej zmiany swoich pomysłów i zdecydowałem się na minimalistyczne podejście. Moja propozycja została odrzucona przez zespół i przegłosowano mnie 7 do 1.
Zespół postanowił zastosować bardziej złożoną, nie-semantyczną abstrakcyjną strukturę json, która pozwala na większą elastyczność w rozmieszczaniu układu. Wadą tego podejścia jest zestaw jednolitych obiektów, które z założenia mogą mieć właściwości puste i puste. Pomyśleli także, że fajnie byłoby umożliwić testowanie A / B, ale opierało się to tylko na ich przewidywaniach, ponieważ nie mieliśmy takiego wymagania.
Przez większość czasu debatowaliśmy o rzeczach, które nie były częścią sprintu ani nie były wymienione na makietach. Opisane problemy to „co jeśli marketing w przyszłości będzie…”, „co jeśli firma może chcieć od nas…”.
Ja i właściciel produktu jesteśmy doświadczonymi programistami. W przeszłości mieliśmy tego rodzaju problemy. Staramy się przestrzegać zasad YAGNI i KISS . Reszta zespołu jest nieco mniej doświadczona i chociaż znają te zasady, wydają się ich nie rozumieć.
Uzgodniliśmy ich rozwiązanie, ponieważ zespół jako całość jest dla nas ważniejszy i nie chcieliśmy walczyć o coś, co nie jest tak ważne. Ale obawiam się, czy coś takiego może stać się precedensem dla nadchodzących, bardziej skomplikowanych debat? Jak radzić sobie z takim zachowaniem? Czy jest coś, co ja, jako lider zespołu, mogę zrobić lepiej?
Warto wspomnieć, że produkt jest MVP na wczesnym etapie.
I'm afraid if such thing can become a precedence for upcoming, more complicated debates?
- To także narusza YAGNI: martwienie się o przyszłość, która może się nie wydarzyć. Jeśli miałeś zamiar nie ustępować, powinieneś już to zrobić.