Preparazione dello sviluppo Web e flusso di lavoro dell'intero progetto


9

Lavoro come programmatore solitario in progetti di sviluppo web (front e back-end) - Ho completato un paio di progetti, quindi sono abbastanza nuovo in questo, ho letto e provato alcuni approcci e ho raggiunto un modo di procedere su di loro. La domanda e la mia descrizione sono piuttosto lunghe, quindi per favore sii paziente.

Quello che sto cercando è:
1. Preparazione / Pianificazione che verrebbe normalmente fatto prima di iniziare lo sviluppo, una volta che saprai esattamente cosa deve essere costruito.
2. In base alla tua esperienza, mi dia feedback / suggerimenti sul processo che seguo attualmente.

I clienti con cui lavoro sono generalmente startup e hanno budget limitati, quindi non posso caricarli su base oraria (penso che questo sia il modo in cui le grandi aziende fatturano di solito i loro clienti [su man / hour] per progetti di sviluppo) e devono lavorare con un budget fisso.

Questo è il processo che attualmente seguo:
1. Misura l'ambito del progetto e cerca di capire cosa stanno cercando di realizzare in un paio di incontri.
2. Offri loro una figura approssimativa con una citazione che descriva in generale cosa si aspettano di ottenere dal progetto, cerco di essere specifico sulle caratteristiche, ma non sto dedicando troppo tempo perché conosco il il cliente potrebbe semplicemente richiedere preventivi e non convertirsi.
3. Seguo il suggerimento di Jeff Atwood per il pagamento e il lavoro:

Pagamento del 15% - In anticipo prima di iniziare qualsiasi lavoro
Durante questa fase viene realizzato il modello HTML del sito Web finale, un diagramma di flusso (con yEd ) che descrive il sito Web nel modo più dettagliato possibile e un documento che menziona altre funzionalità che non sono presenti nel diagramma di flusso . Questo viene fatto andando in tutti i dettagli del progetto e finalizzando i bit che si adatteranno e cose che è troppo lavoro da implementare per il prezzo concordato. Poiché i dettagli non sono discussi in precedenza, parti di questi sono anche più o meno una negoziazione su ciò che effettivamente otterranno. Poiché si tratta di un progetto a budget fisso, è necessario disporre di requisiti fissi, altrimenti il ​​mio prezzo continua a scendere man mano che vengono aggiunte più funzionalità.
Sono stati inoltre finalizzati uno schema di colori, un design wireframe e un design PSD.

35% di pagamento - Avvia lo sviluppo
Il progetto è fisso, inizia lo sviluppo. Ospito il sito sul mio server, dove il client può accedere al front-end, ma non ha accesso a nessun codice.

Pagamento del 30% - Spostare il codice sul server del cliente / fornire al cliente i dettagli di accesso al server
Rendi il sito attivo.

Pagamento del 20% - Un paio di settimane dopo la pubblicazione del sito, una volta risolti tutti i bug.


Domande:
1. Una volta che sai esattamente cosa stai per costruire, che tipo di pianificazione faresti prima di iniziare a scrivere codice?

2. In base alla tua esperienza, quali parti dell'intero processo faresti diversamente?


Sfortunatamente molti clienti non arrivano mai al punto di sapere esattamente cosa vogliono farti costruire. L'approccio migliore che ho trovato è quello di fare modelli di alcune delle pagine importanti e poi sederle e iniziare a raccontare storie utente. Ho deliberatamente sbagliato alcune delle storie per costringere il cliente a dire: "No, voglio che funzioni in questo modo ..." Questo alla fine ci porta a qualcosa che si avvicina a una specifica di progetto, ma inevitabilmente viene cambiato quest'ultima. Sospiro.
Peter Rowell,

@Peter, introdurre intenzionalmente storie di utenti fasulli a volte può ritorcersi contro di te e far perdere fiducia al cliente. Quella tecnica dovrebbe essere usata con attenzione.
maple_shaft

@maple_shaft: me ne rendo conto. Quando dico "ovviamente sbagliato", intendo così palesemente Bogus® che di solito ricevo più di qualche risatina. Ottenere un cliente completamente investito nel proprio sito Web (visione / tempo / denaro) è fondamentale per un progetto di successo. È scioccante (almeno per me) quante persone pensano che un nuovo sito sia qualcosa che possono fare un'onda e apparirà magicamente.
Peter Rowell,

Sono d'accordo anche sui modelli, nessuna quantità di testo scritto farà capire al cliente ciò che otterrà (molti non riescono a capirlo o si preoccupano di capirlo) - un modello chiarirà le cose per il cliente, anche un po 'di documentazione (spec) + un contratto o qualcosa che dice: "Otterrai tutto questo, e esattamente questo, niente di più" aiuta. Mentre lo sviluppo, penso che ci possa essere una certa flessibilità per cambiare le cose, ma se arriva qualcosa che si presenta come più lavoro di quello che hai spiegato, penso che le beffe e i documenti delle specifiche debbano essere tirati fuori e il lavoro aggiuntivo significhi anche costi aggiuntivi.
DMin

Risposte:


10

Ottimi punti di discussione!

Per qualificarmi: lavoro in progetti di sviluppo web di grandi dimensioni nel settore della difesa. Generalmente abbiamo un team di 10-40 persone che supportano un singolo cliente, i progetti negli ultimi anni e il cliente ha sia denaro che richieste elevate. Quindi il chilometraggio può variare - non si desidera pianificare in eccesso!

1 Una volta che sai esattamente cosa stai per costruire, che tipo di pianificazione faresti prima di iniziare a scrivere codice?

Questo è dopo la sezione del 15%, all'inizio del 35%, giusto?

  • Decidi il server web e la lingua di destinazione
  • Decidi la memorizzazione dei dati: XML, Database, quale database?
  • Decidi le principali API: persistenza dei dati, GUI, registrazione, iniezione di dipendenze, ecc.
  • Decidi i meccanismi di accesso, tenendo conto dei rischi e delle informazioni che stai cercando di proteggere. Può includere meccanismi di pagamento.
  • Pianificare un'architettura di alto livello e convenzioni di denominazione
  • Scegli un ordine di implementazione delle funzioni, in modo da conoscere un buon punto di partenza
  • Decidi una strategia di test e organizza un framework di test automatizzato, se applicabile
  • Configurare il sistema CM

2 In base alla tua esperienza, quali parti dell'intero processo faresti diversamente?

Non esagererei. Concentrerei il mio lavoro di pianificazione su come fare le cose - come ambiente di costruzione, server, banco di prova, CM - e passarei solo una piccola quantità di tempo a pianificare un'architettura, a selezionare strumenti e decidere da dove iniziare. Sento che, in ogni caso, la fase di pianificazione amorfa comporta sempre molto più tempo a vagare in un deserto di insicurezza di quanto non dovrebbe realmente.

Se hai a che fare con commissioni fisse e clienti che non fanno richieste tecniche (come la lingua o le API che usi), pianificherei in 1 articolo che è sempre una spinta per te, tecnicamente. Solo 1 e mantieni il resto uguale. Penso ad ogni progetto, vuoi ampliare le tue abilità, ma non vuoi andare così selvaggio da non lavorare in qualcosa che conosci o capisci bene.


2

Il mio più grande consiglio per te è di essere estremamente attento con un lavoro di sviluppo a prezzo fisso. Se non hai una buona conoscenza dei requisiti prima dell'inizio dei lavori, potrebbe accadere una delle due cose.

  1. Le stime sul campo di applicazione si sono rivelate insufficienti e si perde la camicia.
  2. Il cliente non conosce o non può conoscere tutto l'ambito prima di iniziare, risultando insoddisfatto del risultato finale.

Per te il numero 2 è una situazione migliore perché se si firmano nell'ambito e poi cambiano idea in seguito, puoi rinegoziare per più soldi. Assicurati solo di comprendere l'ambito prima di stimare e che LORO comprendono l'ambito e ciò che fornirai.

Assicurati che firmino nell'ambito! Le aziende che insistono su un prezzo fisso e si rifiutano di sottoscrivere un ambito di applicazione sono BAD CLIENTS e non si vuole perdere tempo. Perderai sempre.

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.