Come impostare in modo efficace i tempi di scadenza come uno sviluppatore freelance o domiciliare

6

Recentemente sono entrato nel lavoro di programmazione basato sull'orario domestico e uno dei problemi che sto avendo è che le scadenze che dico ai miei clienti non sono spesso soddisfatte. Alcuni fattori entrano in gioco:

  1. Mi imbatto in un problema di codifica che richiede tempo di ricerca, che aggiunge un paio di volte alla mia scadenza specificata.
  2. Ci sono volte in cui la mia connessione Internet è interrotta per mezza giornata o addirittura un'intera giornata.
  3. Ci sono alcune domande rimaste senza risposta (via email)

e molti altri fattori. Mi stavo chiedendo come posso specificare le scadenze che prenderanno in considerazione eventuali fattori imprevisti che potrebbero ritardare o qualcosa del genere, il che, naturalmente, non metterà un cipiglio sul viso dei miei clienti, hehe.

A proposito, un cliente mi ha chiesto di sviluppare un sito da zero usando Django in cui non ho molta esperienza. Lo sapeva e ha acconsentito a fare qualche ricerca durante lo sviluppo. Ho detto che avrei terminato il progetto in circa 3 settimane, ma non mi aspettavo che Django fosse una struttura massiccia che snervava i nervi, la mia connessione internet era in disuso durante alcuni giorni e ho lavorato meno di 10 ore nella settimana santa.

Grazie in anticipo!

    
posta Ygam 30.04.2011 - 00:53
fonte

3 risposte

5

In generale, hai due scelte (e puoi prendere una posizione intermedia tra loro).

Uno è accettare una scadenza "dura". Se lo fai, aggiungo sempre un fattore fudge molto grande. A meno che il lavoro non sia semplice e tu abbia fatto qualcosa di simile a prima, dovresti stimare almeno 3 volte quello che pensi che dovrebbe prendere, in un primo momento, se la scadenza deve essere soddisfatta. Forse di più. Man mano che acquisisci esperienza potresti scoprire che puoi lasciar perdere un po ', ma il fattore fudge dovrebbe essere sempre lì. Se lo fai, dovresti essere piuttosto rigido nel non accettare le modifiche senza prolungare la scadenza.

Un'altra opzione è essere molto onesti con il tuo cliente. La verità è che le stime del software sono molto difficili da realizzare con precisione. Quindi puoi semplicemente dire "Credo che ci vorranno X giorni prima che questo sia fatto, ma potrei sbagliarmi, potrebbe richiedere molto più tempo e se vuoi che i cambiamenti man mano che il lavoro prosegua, renderà il tutto più lungo ". Quindi puoi lavorare con loro in termini di programma. Anche in questo caso dovresti applicare un fattore fudge ma può essere più piccolo, dal momento che non hai assolutamente promesso di terminare entro una certa data.

Direi anche che hai problemi con l'internet, con il computer, ecc. non è una buona scusa nella maggior parte dei casi. Sei un professionista, quindi sei responsabile di assicurarti di avere accesso a Internet e di assicurarti di avere un piano di backup (ho già lavorato su un laptop a un internet cafè su un laptop, e ricordo che una volta ho visto uno sviluppatore pagare qualcuno $ 200,00 USD per utilizzare la loro connessione Internet durante la notte per rispondere a un'emergenza del cliente quando erano troppo lontani da casa per rientrare in modo tempestivo.)

Ho svolto alcuni lavori molto rapidi, con scadenze rigide in passato. Ho sempre addebitato molto per questo perché spesso significava giorni con poco o nessun sonno. Questo può essere redditizio, ma non è qualcosa che voglio fare molto, quindi quando sono un freelance tendo ad essere generoso con le mie stime di tempo, e mi lascio un po 'di margine. Se perdo un lavoro, perdo un lavoro, è meglio che non mantenere una promessa impossibile.

    
risposta data 30.04.2011 - 01:37
fonte
3

I was wondering how I can specify deadlines which will take into consideration any unexpected factors that might delay it or something like that, which of course, will not put a frown into my clients' face

Sì. Devi effettivamente prevedere il futuro inconoscibile con informazioni limitate.

Se ritieni che non sia possibile prevedere con precisione il futuro effettivo con informazioni limitate, non puoi stabilire scadenze.

I run into a coding problem that requires research time,

Questa è una conseguenza logica di fare qualcosa di nuovo.

Se vuoi evitare di fare cose nuove, smettere di costruire software e vendere solo soluzioni comprovate e scaricabili per le quali tutto il "nuovo" lavoro è già stato fatto da qualcun altro.

La maggior parte di noi non può predire il futuro. Quindi facciamo "stime" e facciamo "cambiamenti" a quelle stime.

Inoltre, alcuni di noi usano i metodi Agile e costruiscono prima le parti più importanti.

    
risposta data 30.04.2011 - 01:02
fonte
1

I said I would finish the project in about 3 weeks yet I did not expect Django to be such a massive nerve-wracking framework, my internet was down during some days, and I only worked less than 10 hours on the holy week.

Sembra che tu stia mordendo più di quanto puoi masticare. Anche se il cliente può essere d'accordo, devi essere in grado di sapere di cosa sei capace e di dire di no quando non puoi farlo.

Per quanto riguarda gli altri problemi che causano ritardi, puoi solo prevenire ciò che puoi controllare. Se la tua connessione continua a scendere, passa a un ISP più affidabile o ci sarà molta incertezza sulle tue stime. E come risposta alle e-mail con richieste senza risposta, è necessario lavorare sulla comunicazione dei requisiti e delle specifiche con i propri clienti se si perde troppo tempo per le e-mail.

    
risposta data 30.04.2011 - 01:27
fonte

Leggi altre domande sui tag