Circa un anno fa sul mio posto di lavoro abbiamo deciso di sviluppare un'app Web per uso interno (come parte di un sistema più complesso che è irrilevante a questa domanda). Nessuno ha mai avuto esperienza nello sviluppo del web, quindi probabilmente alcune delle nostre decisioni erano sbagliate, ma tutto sommato abbiamo avuto successo con lo strumento che stavamo sviluppando. Poiché abbiamo avuto esperienza nello sviluppo in Python, abbiamo scelto Django come piattaforma.
La mia domanda riguarda "chi fa cosa". Il modo in cui abbiamo suddiviso il nostro lavoro è stato: c'è un team che gestisce tutto il codice Python - che significa tutti gli url, viste e modelli di Django, oltre al backend vero e proprio per gestire l'esecuzione asincrona delle attività (qualcosa di simile a Celery). Una squadra diversa (più precisamente una singola persona in un gruppo di sviluppo diverso - ma questa è solo un'implementazione) è responsabile per i modelli (associazione dati), javascript, design, HTML, CSS, ecc.
Abbiamo lavorato così, come ho detto, per circa un anno. Sto iniziando a pensare che forse la linea di responsabilità tra le due squadre è sbagliata. Il motivo è che c'è un sovraccarico quando si ha bisogno di interagire - il che è molto. Ad esempio, quando aggiungiamo una nuova tabella e vogliamo visualizzarla, dobbiamo consentire al "frontend guy" di sapere quale sarebbe l'url e cosa conterrebbe. Quindi dobbiamo integrare il lavoro per vedere se tutto va bene. A volte non abbiamo passato abbastanza contesto al modello per farlo funzionare e c'è un lento ping-pong di informazioni tra di noi.
Quindi la mia domanda è questa: qual è il modo abituale per dividere il lavoro sulle app web? Chi si prende cura dei diversi moduli: modelli, viste, url, modelli, design, esperienza utente, HTML, CSS, javascript?