Come posso convincere un membro del team a utilizzare un framework web? [chiuso]

10

La domanda è questa e il dettaglio segue: c'è qualcosa che posso dire / portare, come programmatore, per portarlo dalla mia parte?

Mi piacerebbe sentire argomenti validi per entrambe le parti su questo, ma soprattutto suggerimenti su come parlargli.

La mia situazione è questa: sto lavorando a un progetto di squadra sul mio corso di laurea, costruendo un sito web di medie dimensioni come prototipo per l'università. Tutti sono considerati uguali nel gruppo e non c'è nessuno nominato leader in modo che la risposta a questo problema non possa essere "pull rank".

Tutti sono uguali, tuttavia c'è un enorme divario nella conoscenza tra i membri. Il membro del team in questione e io siamo entrambi sviluppatori capaci, anche se non ha esperienza nel settore. Gli altri tre membri sono meno capaci, e due hanno completamente rinunciato allo sviluppo. Tutti e tre hanno rifiutato di commentare la situazione a causa della mancanza di conoscenza.

Come gruppo, stiamo per decidere quali tecnologie utilizzare per l'implementazione del sito web; in particolare, se utilizzare un framework PHP (Code Igniter) o meno.

Sto discutendo a favore, citando:

  1. Non reinventare la ruota
  2. Coda di codice ben scritta e testata per funzionare da
  3. In corso (la scadenza è più vicina di quanto vorremmo)
  4. Velocità di sviluppo
  5. Modelli di design validi e gestibili e buone pratiche

Sta litigando per lavorare nel modo in cui è abituato a:

  • Scrittura di funzioni uniche e su misura in un file "libreria" come quando ne ha bisogno
    • Funzioni per l'accesso ai dati e il rendering dei dati della pagina, acquisizione / impostazione ae da sessione e recupero / pubblicazione di dati, ecc.
  • Avere 1 file per pagina (che non genera alcuna separazione tra preoccupazioni, presentazione e dati)

Le sue ragioni contro l'utilizzo del framework sono per lo più basate sul fatto che lui non è in grado di vedere il punto: può già fare tutte quelle cose. Il framework non cambia questo, lo rende solo più difficile perché deve imparare il framework; non vuole usare il codice che non ha scritto personalmente.

Ha anche detto che "non importa la qualità della base di codice, dal momento che il progetto è solo un prototipo e non sarà mai mantenuto". Per me, questo è nessuna scusa per scrivere codice non gestibile.

Riesco a capire perché fa quegli argomenti, ma sono contraria alla sua "mancanza di preoccupazione sulla manutenibilità" e al suo "disprezzo per il buon design", o persino alla separazione delle preoccupazioni. Tuttavia, sospetto che non abbia mai studiato modelli di design, quindi non so quanto sarebbe efficace dimostrare il motivo per cui il suo metodo potrebbe dimostrarsi non mantenibile.

Voglio iniziare questo progetto, ma non voglio farlo senza riguardo per tutto ciò che ho imparato nel corso degli anni. Come ho detto prima, non vi è alcuna possibilità di tirare il grado qui, né gli altri membri della squadra sono disposti a lanciare. Dovrei semplicemente tornare indietro e fare le cose a modo suo? È troppo testardo e inesperto per sapere meglio? O sono il testardo qui?

TL; DR Il membro inesperto del team è ostinato, come posso conquistarlo?

    
posta Andy Hunt 25.01.2012 - 14:48
fonte

4 risposte

20

Non riuscirai a convincerlo a farlo. Si chiama effetto Dunning-Kruger . È troppo ignorante per sapere cosa non sa e ha troppa paura di perdere ciò che definisce come un vantaggio.

Quando non riesci a raggiungere un consenso, devi raggiungere un compromesso. Forse puoi dividere il lavoro in modo che il suo bisogno di apprendere il quadro sia minimo. Forse hai una sorta di "design-off" in cui ognuno fa il suo modo per un paio di settimane e poi la squadra vota su quale sia il migliore. Forse puoi coinvolgere il tuo professore sponsor o chiunque sia il cliente nel risolvere il problema.

    
risposta data 25.01.2012 - 15:19
fonte
7

Un argomento a tuo favore è la riusabilità della conoscenza. Tutti i membri del team che apprendono un quadro ben noto e ampiamente utilizzato (come CodeIgniter) saranno in grado di riutilizzare le proprie conoscenze sul prossimo progetto. Considerando che la conoscenza di una "biblioteca" proprietaria e casuale non è riutilizzabile. Questo può risuonare bene con gli altri membri del team, poiché probabilmente preferiscono acquisire alcune utili e riutilizzabili conoscenze su questo progetto.

Un altro argomento potrebbe essere una misura concreta dei costi di sviluppo / manutenzione. Immagino che uno sviluppatore esperto di CodeIgniter possa svilupparsi più rapidamente di quanto il tuo collega abbia scritto personalmente tutte quelle funzioni proprietarie. Questo potrebbe essere dimostrato dal fatto che sia tu che lui costruite una pagina web identica - voi con CodeIgniter, lui a modo suo - e misurate i tempi necessari per il completamento. Quindi crea una serie di modifiche / estensioni alle pagine, misurando nuovamente il tempo necessario. Naturalmente, le specifiche dovrebbero essere preparate da qualcuno indipendente da entrambi, per combattere su un terreno neutrale.

Un altro - come hai detto tu - è la qualità del codice. Una volta che le pagine web sono pronte, esegui lo stesso set di test di accettazione su ciascuna di esse e confronta la densità dei bug.

Naturalmente, quando si è sotto pressione, potrebbe non esserci alcuna possibilità di fermarsi e fare tali misurazioni. Quindi probabilmente vorrai una risoluzione veloce a questo dilemma. Prova a convincere gli altri membri del team (ad esempio facendogli leggere le prossime risposte al tuo post qui :-), per aumentare la pressione del gruppo su di lui. Alla fine, se davvero non può essere convinto, potresti voler tagliare il progetto in due parti, una per lui e - idealmente - una per il resto della squadra, usando CodeIgniter. Concentrati a fare la tua parte al meglio delle tue capacità e fagli fare ciò che vuole. I risultati probabilmente parleranno da soli.

    
risposta data 25.01.2012 - 15:02
fonte
5

Sento che devi coinvolgere gli altri 3 compagni di squadra. Entrambi avete bisogno di presentare i vostri argomenti a loro e spiegare loro le cose in modo che capiscano. Alla fine della giornata, dovranno lavorare anche con questa base di codice. E se tutti sono uguali, allora dovrebbero dire qualcosa su ciò con cui desiderano lavorare.

Penso che per ognuno di voi sia un buon approccio per delineare i vantaggi delle rispettive soluzioni e mostrare agli altri membri del team perché ritenete che sia il modo migliore per andare. Quindi lascia che decidano. Ci sono 3 di loro quindi sarà il tie breaker.

Una cosa che vorrai sottolineare è che se questo è il tuo progetto suor, e gli altri membri del team non hanno altra esperienza, questo progetto deve riflettere il lavoro che possono fare ai potenziali datori di lavoro. Se lo fai bene, può essere un buon punto di discussione in un'intervista. So che chiedo ai neolaureati di delineare il loro progetto senior e come è stato progettato e sviluppato.

Se vanno con l'approccio dell'altro, dovrai risucchiarlo. Ma non rinunciare alla speranza. Vieni con un buon design in modo che il caos che sta scrivendo non avrà alcun impatto su tutto. Se hai tempo, fai un po 'di codice per ripulire e refactoring alcune delle sue cose e mostragli che non deve reinventare la ruota ogni volta.

    
risposta data 25.01.2012 - 15:45
fonte
1

Credo che il college sia come una sandbox. La maggior parte delle cose che fai non vengono utilizzate nella distribuzione. Quindi ti dà molta più libertà di sperimentare e uscire dalla tua zona di comfort. Esplora nuove cose perché il fallimento non avrà troppo impatto. Inoltre, nella tua situazione, i membri del tuo team hanno il vantaggio in più di avere qualcuno con conoscenze pregresse che li aiuta.

Per quanto riguarda l'altro membro del team esperto, non ha bisogno di venire al college se non vuole imparare qualcosa di nuovo. Questa è una buona opportunità per imparare qualcosa di nuovo e aggiungerlo alla sua cassetta degli attrezzi.

E per i membri del team inesperti, le loro possibilità di essere impiegati / impiegati meglio aumenteranno con un quadro come CodeIgniter sul loro curriculum (in realtà le conoscenze per giustificare il loro curriculum).

    
risposta data 25.01.2012 - 15:31
fonte

Leggi altre domande sui tag