Come sapere se sono lento o veloce nella programmazione?

-2

Capisco che sia estremamente dipendente da un caso particolare, ma mi piacerebbe davvero sapere almeno per quanto tempo un compito specifico può richiedere per il completamento al programmatore medio. Esistono esempi di coppie come "progetto - tempo di completamento"?

Sono assolutamente d'accordo con le mie capacità di stima del tempo. Quindi è il mio datore di lavoro. Ma il mio problema è che non ho mai lavorato in una squadra e non posso nemmeno valutare approssimativamente quanto tempo ci vorrà per un altro programmatore .

Ad esempio, il mio ultimo compito è stato quello di integrare il nostro software di vendita-vendita (che è il mio prodotto, js + php + mysql) a un'API di servizio locale: sincronizzare il database degli indirizzi, preparare le informazioni sul pacchetto e creare ordini specifici per la consegna servizio, stampa etichette per i pacchetti, invio ai clienti delle informazioni sui pacchetti, un'interfaccia web per fare tutto ciò. Questo compito mi ha richiesto 150-170 ore lavorative per completare.

Mi sono sempre considerato un programmatore lento. Ma ora mi chiedo quanta velocità lo sviluppo può ottenere assumendo nuovi programmatori . C'è qualche esempio da confrontare?

    
posta Yevheniy8 07.02.2016 - 00:15
fonte

2 risposte

8

Non è difficile solo dirlo, ma la risposta non è molto utile.

Anche gli sviluppatori di grande esperienza hanno difficoltà a stimare quanto a lungo un determinato progetto li richiederà. Ciò è in gran parte dovuto al fatto che il processo di programmazione consiste principalmente nel comprendere pienamente il problema e nell'elaborare una soluzione. La parte difficile è la piena comprensione. Scrivere il programma è, essenzialmente, spiegarlo al computer. Per la maggior parte degli scopi, il modo più utile per stimare un progetto è guardare quanto impegno ci è voluto per completare un progetto precedente, in qualche modo simile.

La ragione per cui dico che questo non è molto utile è che dipende molto da cosa si intende per finito. Da giovane programmatore pensavo che "finito" fosse quando il programma è stato scritto. Abbastanza rapidamente ho capito che è finito quando il programma funziona e fa quello che dovrebbe fare. Nei decenni trascorsi da allora, ho imparato molto su tutti i diversi modi in cui un programma apparentemente già completo non può ancora essere completato (problemi di ridimensionamento, difetti di usabilità, documentazione mancante o non aggiornata, comportamento indefinito, ...)

Se lavori come unico programmatore, è piuttosto probabile che assumere una seconda persona sia una buona mossa, per molte ragioni, ma eccone alcune:

  1. Avrai diversi set di abilità, quindi imparerai le cose gli uni dagli altri
  2. Ti manterrai onesto. Leggi il codice dell'altro, parla a vicenda quando le cose non sono chiare, e hai bisogno di commenti migliori, di un design migliore, o semplicemente di dover essere refactorred o riscritto.
  3. Entrerai in vacanza senza che le cose si blocchino.
  4. La necessità di ottenere la base di codice in una forma abbastanza decente che il tuo collega sarà in grado di lavorare su di essa sarà anche utile quando tu stesso dovrai lavorare sul codice uno o due anni dopo, quando le cose ora sono fresche nella tua la mente è svanita. Vedi anche alcune delle citazioni di BWK qui: link

Un'ultima nota: i test sono molto importanti. Se non disponi di test automatizzati decenti (ad esempio unità), il tuo codice ha più bug di quanto tu possa immaginare. Non importa molto quanto velocemente si codifica se il codice è bacato. Al contrario, se pensi di essere lento, forse stai semplicemente attento e pensi abbastanza chiaramente da scrivere alcuni bug.

    
risposta data 07.02.2016 - 00:50
fonte
-1

Non penso che si possa prevedere con precisione quanto si può risparmiare sui tempi di sviluppo assumendo un altro programmatore, eccetto che ci saranno / alcuni / risparmi di tempo - le persone semplicemente differiscono troppo. Puoi provare a indovinare chiedendoti un potenziale noleggio circa il tempo necessario per completare un progetto (e cosa significa "completo" per loro) e confrontarlo con la tua velocità; ma anche quello è solo una supposizione.

L'altra cosa da considerare è che con altre persone dovrai anche dedicare del tempo al coordinamento. Ad esempio, immagina di poter lavorare con un clone identico di te stesso: la tua velocità non raddoppierebbe realmente, poiché dovresti passare un po 'di tempo a parlare tra loro invece di scrivere codice.

    
risposta data 07.02.2016 - 06:21
fonte

Leggi altre domande sui tag