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 / sollevare, come programmatore, per portarlo dalla mia parte?

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


La mia situazione è questa: sto lavorando a un progetto di gruppo 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 esiste un leader nominato, quindi la risposta a questo problema non può essere "pull rank".

Tutti sono uguali, tuttavia esiste 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 rinunciato completamente allo sviluppo. Tutti e tre hanno rifiutato di commentare la situazione a causa della mancanza di conoscenza.

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

Sto discutendo a favore, citando:

  1. Non reinventare la ruota
  2. Base di codice ben scritta e testata su cui lavorare
  3. Andare avanti (la scadenza è più vicina di quanto vorremmo)
  4. Velocità di sviluppo
  5. Modelli di progettazione solidi e sostenibili e buone pratiche

Sta sostenendo di lavorare nel modo in cui era abituato a:

  • Scrivere su misura, una volta funziona in un file "libreria" come quando ne ha bisogno
    • Funzioni per l'accesso ai dati e il rendering di tali dati nella pagina, per ottenere / impostare da e verso la sessione e ottenere / pubblicare dati ecc
  • Avere 1 file per pagina (risultante in nessuna separazione delle preoccupazioni tra controllo, presentazione e dati)

Le sue ragioni contro l'uso del framework sono principalmente basate sul fatto che 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 affermato che "non importa la qualità della base di codice, poiché il progetto è solo un prototipo e non verrà mai mantenuto". Per me, questa non è una scusa per scrivere un codice non mantenibile.

Posso capire perché esponga tali argomenti, ma ho problemi con la sua "mancanza di preoccupazione per la manutenibilità" e il suo "disprezzo per un buon design", o addirittura con la separazione delle preoccupazioni. Tuttavia, sospetto che non abbia mai studiato i modelli di progettazione, quindi non so quanto sia efficace dimostrare perché il suo metodo potrebbe rivelarsi non mantenibile.

Voglio iniziare questo progetto, ma non voglio farlo senza riguardo per tutto ciò che ho imparato negli anni. Come ho detto prima, non vi è alcuna possibilità di salire di rango qui, né gli altri membri del team sono disposti a partecipare. Devo solo tornare indietro e fare le cose a modo suo? È troppo testardo e inesperto per conoscerlo meglio? O sono la testarda qui?

TL; DR Un membro del team inesperto è testardo, come posso conquistarlo?


2
È molto difficile trovare la vera domanda nel tuo post sul blog :) Rivedi in modo da enfatizzare gli argomenti tecnici che entrambi poni. Sebbene non possiamo davvero dirti come parlare con una persona che non conosciamo, possiamo aiutarti ad affrontare la situazione dal punto di vista dei programmatori. Sembra esserci una buona domanda sulla prototipazione evolutiva, ma non posso esserne sicuro ...
yannis,

4
Parti di questo probabilmente sarebbero più adatte per: area51.stackexchange.com/proposals/30887/professional-matters
Karlson

3
he doesn't want to use code he hasn't personally written.
Farà

4
@AndyBursh I want to know exactly how everything worksè un argomento valido durante l'apprendimento, in cui reinventare la ruota è effettivamente accettabile. Forse, proprio forse, potresti leggerlo come un grido di aiuto e non come testardaggine.
yannis,

4
since the project is only a prototype and will never be maintained Ultime parole finali :) Vorrei avere un dollaro ogni volta che avevo fatto questa ipotesi e ho scoperto che l'impazienza e l'avidità a breve termine degli alti hanno deciso che il prototipo È il prodotto ora.
maple_shaft

Risposte:


20

Non sarai in grado di parlargli. Si chiama effetto Dunning-Kruger . È troppo ignorante per sapere ciò che non sa e troppo spaventato per perdere ciò che definisce un vantaggio.

Quando non sei in grado di raggiungere un consenso, devi invece raggiungere un compromesso. Forse puoi dividere il lavoro in modo che il suo bisogno di imparare il framework sia minimo. Forse hai una sorta di "design-off" in cui ognuno fa la tua strada per un paio di settimane e poi la squadra vota su quale è la migliore. Forse puoi coinvolgere il tuo professore sponsor o chiunque sia il cliente a risolvere il pareggio.


3
+1 poiché ciò accade occasionalmente nel mondo reale. Sono stato in lavori in cui non potevo essere d'accordo con un altro sviluppatore su quale fosse l'approccio migliore. Quindi abbiamo entrambi messo in moto un POC e quindi esaminato i pro e i contro di ciascuno. 9 volte su 10 finiremmo per adottare una soluzione che era un mashup dei due POC e tutti impararono qualcosa dal processo.
Timothy Baldridge,

1
+1 per insegnare su Dunning-Kruger! Tutti devono saperlo ..
Stephen Gross,

Bah. È troppo facile citare Dunning-Kruger quando non si è d'accordo con qualcuno - troppo facile chiamarli stupidi. Forse il compagno di squadra crede che i framework violino lo spirito dell'incarico, forse vuole risolvere in prima persona i problemi che un framework risolve, forse vuole evitare il dibattito CodeIgniter, Cake, Symfony ... La mia prima ipotesi non è stata che era un idiota.
Corbin,

1
@Corbin, Dunning-Kruger non parla di mancanza di intelligenza, ma di inesperienza. Due cose molto diverse. Sono d'accordo che le tue ragioni potrebbero essere valide, ma l'OP ha affermato che non erano questi gli argomenti che stava sostenendo. Invece "non capisce il punto" dell'uso dei framework perché può scrivere qualcosa di altrettanto buono da zero in un breve lasso di tempo. Una persona inesperta che sopravvaluta la propria competenza rispetto a una soluzione di cui non sa quasi nulla è un esempio da manuale di Dunning-Kruger. Queste persone non possono essere "convinte" in qualcosa, devono essere mostrate.
Karl Bielefeldt,

7

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

Un altro argomento potrebbe essere una misurazione concreta dei costi di sviluppo / manutenzione. Immagino che uno sviluppatore esperto in CodeIgniter possa svilupparsi più velocemente del tuo collega che scrive lui stesso tutte quelle funzioni proprietarie. Ciò potrebbe essere dimostrato facendo in modo che sia tu che lui costruiate una pagina Web identica - tu con CodeIgniter, lui a modo suo - e misuri i tempi per il completamento. Quindi apportare una serie di modifiche / estensioni alle pagine, misurando nuovamente il tempo fino al completamento. Naturalmente, le specifiche dovrebbero essere preparate da qualcuno indipendente da entrambi, per combattere su un terreno neutrale.

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

Naturalmente, quando si è sotto la pressione del tempo, potrebbe non esserci alcuna possibilità di fermarsi e fare tali misurazioni. Quindi probabilmente vuoi una risoluzione rapida a questo dilemma. Prova a convincere gli altri membri del team (ad es. Facendo leggere loro 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 del team, usando CodeIgniter. Concentrati sul fare la tua parte al meglio delle tue capacità e lascia che faccia tutto ciò che vuole. I risultati probabilmente parleranno da soli.


Mi piace l'idea di un test di velocità per dimostrarlo. Che tipo di test di accettazione possiamo eseguire? Lo suggerirò sicuramente, ma non sono sicuro che andrà bene con lui (o il gruppo) poiché tutti abbiamo altre scadenze da gestire, e dubito che qualcuno sia particolarmente interessato a scrivere le specifiche o "perdere tempo" (come Sono sicuro che sarebbe stato messo su questo.
Andy Hunt,

1
Scienza, funziona: xkcd.com/54
StuperUser

5

Sento che devi coinvolgere gli altri 3 compagni di squadra. Entrambi dovete presentare loro i vostri argomenti e spiegare loro le cose in modo che possano capire. Alla fine, dovranno lavorare anche con questa base di codice. E se tutti sono uguali, allora dovrebbero avere voce in capitolo su ciò con cui desiderano lavorare.

Penso che un buon approccio sarebbe per ognuno di voi 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. Ce ne sono 3, quindi sarà il pareggio.

Una cosa che vorrai sottolineare è che se questo è il tuo progetto Sr. 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 di chiedere ai neolaureati di delineare il loro progetto senior e come è stato progettato e sviluppato.

Se seguono l'approccio dell'altro ragazzo, dovrai succhiarlo. Ma non rinunciare alla speranza. Trova un buon design in modo che il caos che sta scrivendo non abbia alcun impatto su tutto. Se hai tempo, fai un po 'di pulizia del codice e rielabora alcune delle sue cose e mostragli che non deve reinventare la ruota ogni volta.


Non avevo pensato a come questo si riflettesse sugli altri nel gruppo, onestamente. Lo farò notare.
Andy Hunt,

1

Sento che il college è come una sandbox. La maggior parte delle cose che fai lì non vengono utilizzate nella distribuzione. Quindi ti dà molta più libertà di sperimentare ed uscire dalla tua zona di comfort. Esplora nuovi contenuti perché il fallimento non avrà un impatto eccessivo. Anche nella tua situazione, i membri del tuo team hanno il vantaggio extra di avere qualcuno con conoscenze pregresse che li aiuti.

Per quanto riguarda l'altro membro del team con esperienza, non avrebbe dovuto venire al college se non voleva 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 assunti / meglio impiegati aumenteranno con un quadro come CodeIgniter sul loro curriculum (in realtà le conoscenze per giustificarlo sul loro curriculum).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.