Attualmente sto progettando l'operazione prevista di un'API (RESTful) che un team di sviluppatori alla fine costruirà. Non mi occupo dei dettagli di implementazione, purché gli input siano mappati correttamente alle uscite (e i dati nel database non saranno incasinati :-)). Per me non è importante se è costruito in modo OOP o FP, per esempio.
Il problema : comunicare il funzionamento interno previsto / la logica aziendale dell'API in modo tale che gli uomini d'affari possano capire cosa sta succedendo (e si spera forniscano feedback) e che gli sviluppatori saranno in grado di scrivere cose che facciano quello che dovrebbe. Quindi, deve essere abbastanza astratto, ma deve ancora contenere abbastanza dettagli per gli sviluppatori.
Le specifiche sono pensate principalmente per essere consumate dagli sviluppatori. Gli uomini d'affari dovrebbero essere in grado di capirli, ma è fondamentale che contengano abbastanza informazioni per consentire agli sviluppatori di iniziare a costruire.
Con ogni mezzo, immagino che abbia senso descrivere ogni interazione dell'utente (o endpoint dell'API) separatamente. Potrebbero essere descritti approssimativamente nel seguente formato:
- Descrizione (ad esempio "creazione di un account utente")
- Parametri di input (dati che devono essere forniti dall'utente, ad esempio "nome", "e-mail" e "password")
- Processo (una sorta di rappresentazione dei meccanismi interni e dei risultati)
Ha senso? Mi mancano cose importanti qui?
Quale sarebbe il formato più adatto per rappresentare il processo?
Lo pseudocodice non ha molto senso per gli uomini d'affari. Verranno scritti test automatici (e utilizzati dagli sviluppatori) ma gli imprenditori non li leggeranno.
Attualmente, mi sto appoggiando ai diagrammi di flusso. Sono di natura visuale, abbastanza facili da capire se fatti bene e in grado di contenere la quantità di dettagli richiesta (come i condizionali). È possibile fare riferimento alle entità e agli attributi dell'ERR che verranno archiviati in Confluence (il nostro sistema di documentazione). Le annotazioni possono essere utilizzate per fornire ulteriori dettagli (tecnici).
È un approccio ragionevole? I diagrammi di flusso sono una soluzione decente in questa situazione? Qualche opzione migliore?