Come dividi il lavoro sulle app web? [chiuso]

7

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?

    
posta Amir Rachum 16.01.2014 - 18:20
fonte

3 risposte

3

In piccoli team hai bisogno di un po 'di abilità, altrimenti passerai molto tempo a comunicare idee tra gli sviluppatori che potrebbero avere diverse comprensioni su come queste idee potrebbero essere implementate (come hai trovato). È meglio rendere ogni responsabile responsabile di una singola funzione, inclusi front end e back end. La comunicazione sulle idee deve quindi essere solo a livello concettuale.

Naturalmente non tutti gli sviluppatori hanno i loro punti di forza e di debolezza, e non ho trovato che aspettarsi che le stesse prestazioni su tutte le attività di tutti gli sviluppatori siano pratiche. Assegna funzioni basate sul set di abilità. Se la funzione è più front-end che back, assegnala al front end e viceversa.

Man mano che i progetti diventano più grandi, vedrai una maggiore specializzazione negli sviluppatori. In questo scenario, lo sforzo comunicativo non è un problema in quanto la funzione è redditizia / abbastanza valida da rendere la spesa il tempo che vale la pena.

    
risposta data 17.01.2014 - 13:55
fonte
2

Non penso che una spaccatura strong come questa sia necessaria. Praticamente tutti gli sviluppatori con cui ho lavorato sono stati in grado di eseguire il coding backend e front end. Avevamo un ragazzo css / html, che poteva far sembrare buono il markup, quindi potevamo inserire uno stile approssimativo, codice intorno, e spingerlo verso di lui per lucidarlo. A volte avevamo anche persone che creavano modelli di design e pensavano al flusso dell'interfaccia utente.

    
risposta data 16.01.2014 - 18:54
fonte
1

Preferisco lavorare su "funzionalità" anziché su livelli di un'applicazione, che si tratti di un sito Web o altro.

Qualsiasi tipo di "tiering" sia in un'applicazione o in qualche altro limite (geografia fisica, gruppi in un'azienda) è una barriera allo sviluppo.

Le esigenze di comunicazione sono aumentate e ci sono più potenziali bloccanti.

    
risposta data 17.01.2014 - 14:15
fonte

Leggi altre domande sui tag