Posso richiedere la qualità del codice per un progetto che ho ottenuto

7

Mi è stato dato un progetto Drupal da una web agency esterna e ho cercato di diventare più saggio su Drupal e sul loro approccio alla creazione di un sito. Con il tempo ho imparato qualcosa di più su Drupal, anche se ho notato che non è la mia tazza di tè. Recentemente, ho provato a "semplicemente" sostituire la generazione HTML di una parte del sito, che sembrava essere generata attraverso un modulo personalizzato (i loro componenti aggiuntivi per il sito). Ho cambiato quel codice e ho capito che l'effetto semplicemente non ha modificato nulla, o almeno ho pensato.

In poche parole ora ho senza esagerare sostituito lo stesso pezzo di codice con differenze molto piccole 26 volte, ed è ancora che non cambia ovunque. Quindi quello con cui ho a che fare è un insieme di codici che non hanno mai sentito parlare a stento della classe globale e della sua funzione, ed è semplicemente copia & incollato in tutto il sito.

Sono curioso di sapere cosa dovrei fare con questo. C'è solo un file che ha più di 3000 linee di base dello stesso esatto 16 volte. Se ordini una web agency per lo sviluppo sul sito, puoi aspettarti che sia comune che il codice dovrebbe essere almeno un piccolo mantenibile e semplicemente non un grande pezzo di codice, più fastidioso da modificare di molto più necessario, o deve essere richiesto in modo specifico e dovrei invece aver dovuto convalidare il codice prima di pagare la consegna del sito?

Questa è la prima volta in cui mi sono imbattuto in un pezzo di codice scritto così male nella mia carriera e mi sembra di aver comprato un abito bello che abbiamo visto dall'esterno del negozio, e tutto quello che abbiamo ottenuto è stato un poster di quel seme allo stesso prezzo.

La domanda

Quale sarebbe la cosa appropriata da fare nel mio caso? Dovrei succhiarlo e convincere il mio datore di lavoro che il codice è scritto male nella speranza che venga prolungata la mia data scadenza per il completamento del progetto, o posso chiedere all'agenzia web di fare qualche azione?

Modifica
Grazie per tutte le tue risposte! Mi aiutano ad avere un po 'più di prospettiva su questo. Ne discuterò un po 'di più internamente e cercherò di individuare la risposta migliore, anche se la maggior parte delle tue copre gli stessi ma anche diversi campi della domanda.

    
posta Robin Castlin 24.04.2013 - 09:54
fonte

4 risposte

11

Mentre sono assolutamente d'accordo sulla richiesta di qualità del codice, è molto difficile da quantificare, e se non hai nulla nel tuo contratto con l'agenzia, allora non vedo come puoi farli rielaborare una soluzione presumibilmente funzionante.

Forse l'unica cosa che puoi prendere da questo per il futuro è provare a creare una sorta di controllo di qualità del codice oltre ai test di accettazione degli utenti quando il provider fornisce la soluzione.

Se il codice è davvero così brutto, potrebbe significare semplicemente non assumere nuovamente quella società. potrebbe essere un po 'di chilometraggio nell'informare la compagnia delle tue preoccupazioni sulla qualità del codice e, nel tentativo di cercare di trattenerti come cliente, potrebbe provare e andare sopra e al di là del loro contratto, ma il tuo chilometraggio varierà con questo approccio.

    
risposta data 24.04.2013 - 10:38
fonte
7

Ho dovuto affrontare qualcosa di simile quando abbiamo esternalizzato alcune codifiche front-end (solo HTML / CSS) a una "web agency". Ciò che è tornato sembrava pixel perfetto come i prototipi, ma è stato copiato e incollato dappertutto. L'agenzia sapeva esplicitamente che stavano lavorando sul codice di front-end non finale , che sarebbe stato reso disponibile con qualche codice di back-end e qualche ulteriore Javascript in seguito. Sapevano che il codice avrebbe dovuto essere esteso e modificato. Tuttavia hanno ancora consegnato un risultato di copia e incolla.

La linea di fondo è che puoi tornare all'agenzia e chiedere / richiedere modifiche. L'agenzia è responsabile della consegna di quanto specificato nel contratto. Ma questo è il punto decisivo: se certe qualità del codice non sono state specificate in anticipo, non hanno alcun obbligo reale. *

Prima di tutto, è molto difficile quantificare la "qualità del codice". Dovrai trovare una metrica per questo prima di poter tenere qualcuno a questo standard. Forse "tempo necessario per implementare una nuova funzione x deve essere sotto y" ; ma buona fortuna quantificare o provare quello . E se non era già nel contratto, in realtà non ti aiuta ora .

In secondo luogo e, soprattutto, se: ti hanno consegnato un codice in questa qualità, significa che non hanno idea di cosa stanno facendo o, più probabilmente, sono un outsourcer di offerte più basso con un certo numero di code di scimmie che lavorano per loro quale manovella fuori codice come una catena di montaggio. Non hanno alcun interesse per la qualità e costerebbe troppo per fornire un codice personalizzato di alta qualità. In ogni caso, correrai contro un muro o l'altro cercando di richiedere un codice di qualità superiore. Non sto dicendo che non vale la pena provare, ma probabilmente non ci riuscirà.
Se sono collaborativi, potresti essere in grado di gestirli in modo microscopico per fornire un prodotto di qualità (er) elevato, ma è discutibile se questo investimento di tempo e nervi ne valga la pena.

L'unico vero modo per ottenere un codice di qualità da un appaltatore di qualità sconosciuta o per ridurre le perdite è quello di specificare feedback molto regolari e cicli di controllo della qualità. Richiedere che durante lo sviluppo si ottenga una visione regolare del codice (accesso diretto al repository preferito, istantanee giornaliere o settimanali come riserva) e lo si valuti su base continuativa. Specifica una struttura di pagamento che ti consenta di sospendere i pagamenti se noti che la qualità non è all'altezza dei tuoi standard; stabilire cicli di feedback regolari che consentano di specificare le aree che necessitano di miglioramenti e di richiedere al fornitore di implementare tale feedback per evitare di smettere di pagare. All'inizio entrambe le parti hanno bisogno di sentirsi reciprocamente in una certa misura; è necessario valutare la qualità del fornitore e il venditore deve abituarsi alle richieste del cliente. Un contratto che protegga in modo appropriato entrambe le parti dalla perdita di tempo e denaro nel caso in cui non funzioni è una necessità se si lavora con nuove persone. All'inizio questo comporta un sovraccarico da parte tua, ma se funziona bene e hai stabilito una fiducia reciproca, sarai in grado di ridurre la tua parte di lavoro e lasciarla al venditore.

È una specie di bandiera rossa se un venditore non è d'accordo con tale contratto.

    
risposta data 24.04.2013 - 10:20
fonte
4

Primo: non permettere all'agenzia di ottenere ulteriori risultati dal tuo progetto. Ciò confermerebbe il loro modello di business (ad esempio: compiti orari dati a sviluppatori junior per soldi pazzi).

Immagino per esperienza che hanno creato alcuni moduli personalizzati che fanno schifo e non hanno seguito nessuna delle migliori pratiche di Drupal. Potrebbero anche aver cambiato alcune funzionalità di base (come alcuni moduli utente creati su misura), consentendoti di seguire il Drupal doc per creare moduli.

Dovrai rimuovere e refactare tutto questo o questo progetto è condannato. Il tuo datore di lavoro dovrebbe aspirarlo e considerarlo un'esperienza di apprendimento: le web agency sono per piccoli progetti promozionali, non per qualcosa di più ampio.

    
risposta data 24.04.2013 - 13:47
fonte
3

Se l'agenzia ha fatto un lavoro terribile la prima volta, c'è ogni motivo di credere che lo farà in futuro. potresti essere in grado di parlare di fare più lavoro senza ulteriori pagamenti (ma non ci conterei) e potresti essere in grado di supervisionarli abbastanza da consegnare ciò che realmente vuoi, ma è molto probabile che tu ti impegni così tanto da parte tua, e potresti anche fare il lavoro da solo e risparmiare il tempo che trascorrerai in riunioni infruttuose.

Verifica il contratto: se non era chiaro in quanto dovevano produrre codice che potesse essere mantenuto e supportato da altri (cioè te stesso), allora devi solo imparare a scrivere contratti migliori la prossima volta. Se era chiaro, prendi in considerazione un'azione legale. E lista nera dell'agenzia, almeno internamente. La vita è troppo breve per trattare le persone che cercano di evitare i loro obblighi in un modo o nell'altro, soprattutto perché ci sono molti altri che sono disposti a fornire un prodotto / servizio di qualità.

    
risposta data 24.04.2013 - 12:54
fonte

Leggi altre domande sui tag