Quando scrivo una libreria / API per la prima volta di solito comincio abbozzando alcune idee su una lavagna bianca o una foglia mobile mentre penso a come interagiscono diverse parti del sistema. Questo di solito si traduce in un'interfaccia a cui aderirò quando andrò a sviluppare alcune implementazioni concrete.
Prenderò metà della stesura dell'implementazione quando mi rendo conto che è necessario apportare una modifica all'interfaccia. Ad esempio, mi rendo conto che ho esposto troppi dettagli di implementazione al client e che l'interfaccia può essere semplificata.
È questa cattiva pratica e dovrei sapere esattamente come sarà la mia interfaccia prima di iniziare a programmare qualsiasi implementazione?
Aggiorna
Nella mia situazione presumo che l'interfaccia non esista già e la stiamo creando per la prima volta. Quindi è la prima volta che l'interfaccia esisterà e stiamo lavorando alla primissima implementazione di tale interfaccia. Quindi voglio sapere se nella mia situazione, è possibile apportare modifiche a un'interfaccia mentre si codifica l'implementazione.