Domanda

Ultimamente ho pensato alla stima del software e ho un sacco di domande sul tempo trascorso a programmare.Sono curioso di sentire persone che hanno avuto almeno un paio d'anni di esperienza nello sviluppo di software.

Quando devi stimare la quantità di tempo che dedicherai a lavorare su qualcosa, quante ore al giorno dedichi alla programmazione?Cosa occupa le altre ore non di codifica?

Ti accorgi di dedicare più o meno ore alla programmazione rispetto ai tuoi compagni di squadra?Hai la sensazione di portare a termine più o meno lavoro di loro?

Come sono le tue condizioni di lavoro?Ufficio privato, ufficio condiviso, sala riunioni?Codificare da soli o in coppia?In che modo le tue condizioni lavorative hanno modificato la quantità di tempo che dedichi ogni giorno alla programmazione?Se puoi lavorare da casa, ciò aiuta o danneggia la tua produttività?

Quale metodologia di sviluppo utilizzate?Cascata?Agile?Il passaggio da una metodologia all'altra ha avuto un impatto sulle tue ore di programmazione giornaliere?

Più importante:Sei soddisfatto della tua produttività?In caso contrario, quale singolo cambiamento apportaresti per avere il maggiore impatto su di esso?

È stato utile?

Soluzione

Sono uno sviluppatore aziendale, il tipo che Joel Spolsky ha definito "depresso" in un paio di podcast StackOverflow.Poiché la mia azienda non è un'azienda di software, ha pochi motivi commerciali per implementare molte delle misure che gli esperti di software consigliano alle aziende di adottare per la produttività degli sviluppatori.

Non abbiamo uffici privati ​​e doppi monitor da 30 pollici.Il nostro sistema di controllo del codice sorgente è Microsoft Visual Source Safe.È stato detto abbastanza.D'altra parte, posso fare molte cose che riempiono la mia giornata e aggiungono un po' di varietà al mio lavoro.Mi occupo di analisi aziendale, gestione di progetti, sviluppo, supporto alla produzione, implementazioni internazionali, supporto alla formazione, pianificazione del team e miglioramento dei processi.

Direi che dedico l'85% della mia giornata alla programmazione, quando posso concentrarmi e ho un compito importante di programmazione.Ma più spesso dedico circa il 50% della mia giornata alla programmazione.Se il supporto alla produzione (non correlato alla codifica) è pesante, potrei dedicare alla programmazione solo il 15% della mia giornata.

La maggior parte delle aziende per cui ho lavorato non erano attivamente impegnate nella valutazione di processi agili o nello sviluppo basato sui test, ma non hanno nemmeno fatto un buon lavoro a cascata;la maggior parte dei loro sviluppatori lavoravano come cowboy taglia e incolla con impunità.

A volte lavoro da casa e con i bambini, lo è orribile.Sono più produttivo al lavoro.

La mia produttività è buona, ma potrebbe essere migliore se il fattore di interruzione e il costo del cambio di contesto mentale venissero rimossi.Il supporto alla produzione e le spese generali di gestione del progetto creano entrambi questo tipo di interruzioni.Ma entrambe sono parti necessarie del lavoro, quindi non credo di potermi liberare di loro.Ciò che vorrei prendere in considerazione è una ristrutturazione del team in modo che le persone coinvolte nei progetti possano concentrarsi sui progetti mentre gli altri possano bloccare le interruzioni dedicandosi al supporto.E poi scambiare quando il progetto è finito.

Sfortunatamente, nessuno vuole fornire supporto, quindi l'altra misura di miglioramento della produttività che vorrei sarebbe una delle seguenti:

  • Migliori strumenti/metodologie di test per accelerare i test unitari
  • Migliori strumenti/competenze di analisi aziendale per migliorare la qualità del nuovo sviluppo e limitare il suo contributo al carico di supporto alla produzione

Altri suggerimenti

Realisticamente, probabilmente sono in media 4 o 5 ore al giorno.Anche se è "grumoso", potrebbero esserci giorni in cui potrebbero esserci 8 o 9 ore.

Di tutti gli sviluppatori di software che conosco, quelli che scrivono codice di produzione (invece di ricerca) da 4 a 5 sembrano essere il massimo della codifica effettiva.Ci sono molte altre cose che succedono.

E ad essere onesti c'è molta procrastinazione.Trovo che sia un po' come il blocco dello scrittore.a volte è semplicemente difficile iniziare, ma una buona sessione di 2 ore equivale a MOLTO lavoro svolto.È solo tutta la preparazione che devi affrontare, la sperimentazione per assicurarti di adottare l'approccio giusto.La quantità infinita di guardare fuori dalla finestra e controllare la posta elettronica, ecc...

Lavoro 37,5 ore settimanali.
30 di quelle ore (80%) dovrei fatturarle ai nostri clienti.
In realtà trovo che utilizzo circa il 60% di codifica su sistemi client reali, il 20% sperimentando nuove tecniche e leggendo blog, e il 20% viene sprecato in politica aziendale e "socializzazione".

Ne sono felice?
Vorrei poter fissare lo schermo 30 ore a settimana codificando i compiti che mi sono stati assegnati?

BENE.Poiché il 20% del tempo viene impiegato per migliorare me stesso nel mio mestiere, nel 60% della codifica efficace probabilmente produco più di quanto farei nel 90% del mio tempo se non lo facessi.
Poi di nuovo, prova a spiegare questo fatto ai superiori ;)

Bene, in genere arrivo con almeno quindici minuti di ritardo, ah, uso la porta laterale - in questo modo Lumbergh non riesce a vedermi, eh eh eh - e, dopo di che ho solo uno spazio per circa un'ora.

...Sì, fisso la mia scrivania;Ma sembra che io stia lavorando.Lo faccio per probabilmente anche un'altra ora dopo pranzo.Direi in una determinata settimana probabilmente faccio solo circa quindici minuti di lavoro reale, reale.

Per me, il passaggio da un progetto all’altro è una grande causa di procrastinazione.Quando ho appena finito un progetto tendo a procrastinare prima di dare il via al prossimo requisito che mi è stato assegnato.La mia mente sembra ancora in modalità di programmazione, ma poi devo prima stimare le spese per la creazione di una specifica.Quindi devo passare dalla programmazione alla chiamata ai clienti e cose simili, il che mi fa sentire a disagio.

Ciò che mi aiuta di più ad essere produttivo è eliminare ogni distrazione nelle prime ore della giornata e iniziare subito con il compito più importante della giornata.Ho bisogno di entrare nel flusso il prima possibile.


Consiglio di dare un'occhiata a La Pietra dei Programmatori:

Sappiamo che lo stress compromette alcune funzioni cognitive.La perdita di queste funzioni può spiegare esattamente perché la programmazione è difficile e mostrarci molte altre opportunità per migliorare il modo in cui organizziamo le cose.Le conseguenze si estendono fino a toccare il linguaggio, la logica e le norme culturali.Clicca qui per l'introduzione...

Trascorro circa il 40% della mia giornata a programmare.Il 40% va ad attività non di codifica (come litigare con il nostro server di build impreciso o capire perché NUnit ha fallito di nuovo senza alcun messaggio di errore o cercare di capire perché il nostro codice ha smesso di comunicare con il server Oracle al piano di sotto...spazzatura del genere).Il restante 20% viene solitamente speso procrastinando o partecipando a riunioni.

Sono soddisfatto della mia produttività?Assolutamente no.Lavoro circa 7 ore al giorno e ne spendo circa 2,5 per la codifica.Preferirei di gran lunga dedicare 5-6 ore della mia giornata alla programmazione, con solo un'ora dedicata a tutte le altre cose (purtroppo, l'unica cosa che potrebbe far sì che ciò accada -- che il Primo Ministro smetta di giocherellare con gli script di compilazione ogni giorno - - non accadrà).Sfortunatamente, poiché sono uno sviluppatore aziendale, il management non vede il tempo sprecato.Poiché in quel 40% della mia giornata faccio molto di più di quanto la maggior parte dei droni nell'edificio faccia in una settimana (incluso il primo ministro), pensano che io sia produttivo.

@Bernardo Dy:Ho trascorso probabilmente il 30% della mia carriera in contesti aziendali (non lo sono al momento).Di solito è dopo qualche idea di avvio fallita (o non fallita, ma svanita) o qualche tipo di esaurimento / cambiamento.Per un po' va bene, è bello incontrare persone con background completamente diversi (chi avrebbe mai pensato che sarebbe stato così divertente uscire con avvocati e attuari), ma alla fine, trovo troppo difficile convincermi alzarsi la mattina con motivazione (o dopo una vacanza con il terrore di tornare indietro) - probabilmente per ragioni come tu definisci (solo una mancanza di cura).Ma è una buona esperienza e almeno una fonte di idee.E puoi incontrare persone brillanti ovunque (non sono solo i programmatori ad essere intelligenti: ho sempre cercato di scoprire chi fossero i veri cervelli dietro un'azienda).

È interessante notare che l'unica volta in cui ho praticato il rigoroso agile/XP è stato in un ambiente aziendale - in quel caso probabilmente 7 ore al giorno erano effettivamente pratiche sul codice (in coppia) - non sono mai stato così esausto dopo una giornata così.non sono sicuro che sia una buona cosa, forse sono solo pigro.

Per rispondere ad alcune delle mie domande:

L'attuale team di cui faccio parte esegue solo una stima complessiva delle attività, quindi è difficile tenere traccia delle ore al giorno.Direi che, nella mia carriera, il tempo trascorso a programmare è stato compreso tra il 25% (principalmente gestione) e l'85%+ (lavorare da casa 4 giorni a settimana, riunirsi per una riunione per mezza giornata una volta alla settimana).Se dovessi indovinare, però, la media è probabilmente intorno al 60%.

La più grande influenza per me sul tempo trascorso a programmare è la presenza o l'assenza di riunioni.Quando lavoravo su progetti agili con tutti nella stessa stanza, le riunioni tendevano ad essere ad hoc e molto brevi, quindi il tempo dedicato alla programmazione era molto elevato.Ho anche avuto la sensazione di aver trascorso meno tempo, a volte molto meno tempo, a fare cose non legate alla codifica quando ero in una stanza del team, perché è molto più facile perdere tempo, accidentalmente o meno, quando nessuno ha una visione chiara del monitor. .:)

Faccio outsourcing e praticamente scrivo codice tutto il giorno, ho due progetti e non ho molto tempo per fare qualcos'altro, il che significa che non posso accettare altro lavoro perché non riesco a finire nulla, questa è una buona politica, dovresti prenderlo più che puoi.

Ricorda anche che dovresti avere del tempo libero e, cosa molto importante, riposare abbastanza perché se non lo fai non sarai molto produttivo.La chiave qui è la pianificazione e la disciplina.

Nel mio tempo libero da programmazione l'ho trascorso con mia moglie, mi piace anche andare fuori città e cercare di non pensare ai miei progetti, più creo questo equilibrio più sono produttivo.

Quando non lavoro molto mi piace leggere blog di programmazione e mi piace anche studiare programmazione.

E infine vorrei dire che, secondo me, la nostra carriera non dovrebbe essere vista come un lavoro, ma come qualcosa di divertente.

Sono uno sviluppatore di software in un dipartimento di ricerca e sviluppo che lavora 40 ore a settimana.

Spendo come...Il 10% del mio tempo è dedicato alla programmazione.Nelle mie ore di non programmazione per lo più testo, valuto, confronto e annoto i risultati.Trascorro anche molto tempo a scrivere le specifiche per il codice che scriverò e a fare ricerche per il codice che scriverò, partecipo a riunioni di brainstorming per i progetti attuali, ecc.

Potrei dire che tra i miei compagni di squadra (anche sviluppatori di software) sono quello che programma di più al momento;ma dipende da quale attività lavoriamo in ogni momento.Non quantificherei effettivamente la codifica come un duro lavoro.Se c'è una buona specifica, una ricerca adeguata e una buona comprensione del progetto, la codifica è solo un formality e procede quasi senza intoppi e rapidamente.

Qui abbiamo un ufficio condiviso, con due squadre.Per lo più codifichiamo da soli, raramente in coppia.Il mio lavoro cambia molto il tempo che dedico alla programmazione;in passato trascorrevo la maggior parte del mio tempo a programmare, senza avere una buona comprensione della codifica.Se avessi un compito, inizierei immediatamente a scrivere codice, e lo ricodificherei ogni volta che mi rendo conto di aver fatto qualcosa di sbagliato e così via.Ed è stato molto inefficace.

La metodologia di sviluppo ora è a metà tra la prototipazione e la spirale.Ha chiaramente cambiato il numero di ore che codice.

Sono soddisfatto della mia produttività, in relazione alle mie scadenze e ai miei obiettivi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top