We are ... responsible for testing a bunch of new ideas.
Quindi è necessario concentrarsi sul prodotto minimo vitale. Fondamentalmente, sono d'accordo con B: ottenere feedback precoci e iterare ti darà un prodotto risultante più strong, dal punto di vista degli utenti . Ciò non significa ingegneria scadente, ma significa appoggiarsi pesantemente su YAGNI , e significa certamente che la spesa un sacco di tempo per il design up-front è una cattiva idea. A è probabile che all'inizio trovi questo frustrante, ma spero che, vedendo il prodotto crescere per adattarsi agli utenti, vedranno il valore.
Guarda in questo modo: A è preoccupato che dovrai rielaborare le cose. Ma qualunque percorso tu segua finirà per ricostruire roba, perché era impopolare con gli utenti o un nuovo requisito incompatibile con l'approccio precedente. Se hai passato settimane a progettare la soluzione perfetta al vecchio problema, questo è estremamente frustrante; se hai passato solo dei giorni, non così tanto. Il Pragmatic Programmer parla di punti traccianti , ottenendo un feedback dal vivo su quanto sei vicino al bersaglio (particolarmente prezioso con un bersaglio in movimento, o in cui non sei ancora sicuro di dove si trova).
Pensa anche a cosa succede a tutto ciò che ha successo. Se sei lo skunkworks e qualcosa si dimostra utile, ti viene tolto dalle mani e donato a qualcun altro? Stanno davvero fornendo valore all'organizzazione più ampia creando un prodotto raffinato, oppure farebbero meglio a tutti se il tuo team dimostrasse il valore fondamentale del prodotto e lascerebbe che il team che lo fa si costruisse su di esso o si riprogettasse come meglio credeva? Potrebbero essere più felici con una serie di utili informazioni sui clienti, un prototipo funzionante e alcuni test end-to-end sulle funzionalità principali che possono essere riutilizzate per ricostruirli a modo loro.
Quindi cosa puoi fare a riguardo? In primo luogo, è chiaro quali sono gli obiettivi del team, in che modo verrà misurato il successo della squadra e dei loro prodotti. Se hai un sacco di nuove idee da provare con un piccolo team e tempi brevi, non puoi fare tutto perfettamente (se riesci anche a capire cosa sia "perfettamente", ma è tutto altra risposta), quindi sia chiaro se dovrebbero dare la priorità alla costruzione di un numero minore o maggiore o superiore a uno standard più elevato. Aiutali a prendere le decisioni tecniche che non puoi, fornendo loro un quadro in cui misurare e confrontare i risultati.
In secondo luogo incoraggia entrambi a collaborare da vicino, o addirittura a unire un programma. Ho trovato l'abbinamento con altri ingegneri con tendenze diverse per essere un buon modo per trovare un equilibrio positivo tra i nostri punti di forza e di debolezza; B può incoraggiare A a vedere il valore nei primi feedback e scoraggiare le loro tendenze al piatto d'oro, mentre A può usare la loro inclinazione a pensare al quadro più ampio per far fronte a qualsiasi decisione "senza uscita" che funzioni contro la capacità del team di continuare a svilupparsi l'app quando arrivano nuovi requisiti.