Alla tua domanda specifica in termini di codice: una buona idea sarebbe quella di utilizzare il modello di facciata per avere un unico punto di accesso al modello dai controllori, in modo da poter sempre chiamare la facciata e non dover pensare su come la sua logica modello affronterà la richiesta internamente, o quali classi userà. Inoltre, se MVC viene eseguito correttamente, il modello, la vista ei controller saranno scambiabili (come in, potresti sviluppare la vista / i controller in javaFX ma qualcun altro può semplicemente utilizzare lo stesso modello e scrivere visualizzazioni / attività Android per chiamare la logica). Ciò significa che non dovresti dirgli cosa fornire dal punto di vista del controller, ma dovresti fare in modo che il controller funzioni con ciò che fornisce il modello. Ovviamente, il modello deve fornire tutta la logica necessaria, ecco alcuni suggerimenti su come ottenere questo in generale.
Alla tua domanda in generale: se sei solo tu e un amico ci sono diverse cose che puoi fare per migliorare lo sviluppo. La comunicazione è importante qui, assicurati di aver predefinito ciò che vuoi creare e di discutere alcuni aspetti di come ciò potrebbe essere fatto.
Magari creare alcune storie di utenti ( link ) o creare un mockup della GUI (ognuno crea un mockup, o semplicemente crei uno) e discuterne. Questo ti farà sapere cosa è richiesto dal punto di vista dell'utente nella GUI, e vedrà come la tua GUI gestirà ciò e saprà quali dati dovranno essere forniti dal modello.
Inoltre puoi provare la programmazione della coppia, in modo da avere un'idea del codice della vista / del controller e di avere un'idea del codice del modello. Naturalmente non ti stai più sviluppando a parte, ma piuttosto su alcune parti. Ad ogni modo, visto che si tratta solo di un progetto a due persone e entrambi andate d'accordo, questa potrebbe essere un'esperienza divertente e arricchente.
Ad ogni modo, se incontri un problema in cui pensi "Frick, ho bisogno di questi dati ma la facciata non la espone" puoi semplicemente dirgli che hai bisogno di quel po 'di dati e lui può creare un metodo nel facciata che fornisce questo. A volte i requisiti cambiano o devi fare qualcosa a cui non hai pensato prima. Questo è lo sviluppo del software però ^^