Cosa può rallentare uno sviluppatore? [chiuso]


12

Quali cose tendono a rallentare uno sviluppatore?

Si prega di astenersi dal pubblicare risposte che:


@Mark Trapp: Huh ?! Non è affatto un duplicato ...: -S
Tamara Wijsman,

1
Se la domanda non risulta utile, la rimuoverò nel prossimo futuro, le persone elencano le distrazioni che sono già coperte da un'altra mia domanda. Quindi tendo a cercare cose che non distraggono ... TheLQ e Bill sono buone risposte di esempio.
Tamara Wijsman,

Eh, l'URL è stato rovinato. Il duplicato è Quali distrazioni possono verificarsi durante la programmazione?

Scelto di lasciare aperta la domanda perché riguarda cose che non sono distrazioni ...
Tamara Wijsman,

11
Stackoverflow, SuperUser, Programmers ... sì, fondamentalmente siti come questo :)
bedwyr

Risposte:


49

Oh, questi sono facili:

  1. incontri
  2. Altre riunioni
  3. Riunioni sull'ultimo incontro
  4. Riunioni per preparare il prossimo incontro
  5. Sviluppare una presentazione in power point per una riunione
  6. Sviluppare una presentazione in power point per una riunione che discute le funzionalità che non sono state implementate, non dovrebbero essere implementate, e per qualsiasi motivo quel ragazzo delle vendite salterà dappertutto. Non riesco a prevedere quale documento desideri visualizzare nell'app in base alla posizione corrente senza una connessione Internet o l'accesso al disco rigido. No davvero, rinuncia a chiederlo anche tu.

4
in breve: gestione? ; o)
n1ckp,

11
@ n1ck No, no. Una buona gestione può accelerare uno sviluppatore. Una scarsa programmazione dei tempi di un programmatore (ovvero un aspetto dell'essere un manager) può davvero rallentare lo sviluppo.
Wheaties,

3
ciò che mi uccide è quando la mia azienda fa questo: Riunioni, Altre Riunioni, Riunioni sull'ultima Riunione, Riunione da preparare, Riunione per discutere del perché non possiamo ottenere nulla. Perché non possiamo ottenere nulla? Hai quaranta sviluppatori seduti in una stanza ad ascoltarti !!
Mike M.

2
Si noti che questa risposta si adatterebbe quasi a una diapositiva di Powerpoint.

44

Stesso problema qui
pramodc84,

1
Mi comprerei un laptop al più presto e ci lavorerei su se mi trovassi in quella situazione, supponendo che la società me lo permettesse.
Adamo

I computer lenti tendono ad essere la causa principale di una distrazione. Ogni volta che il programmatore attende, potrebbero entrare in modalità distrazione e non torneranno al programma fino a qualche tempo dopo.
edA-qa mort-ora-y,

Hanno sostituito il mio computer un paio di settimane fa. È meno potente di quello di 4 anni che sostituisce. Bello.
MetalMikester,


25

StackOverflow, programmers.stackexchange.com, ecc. :)


4
Disaccordo! StackOverflow aiuta a risolvere i problemi, quindi accelera lo sviluppo!
Wizard

3
Stupidità offensiva. Per ogni minuto che ho "sprecato" in SO, mi ha restituito 20.
MIA

11
+1. per niente offensivo. SO è molto buono per la procrastinazione. È il mio nuovo facebook. :)
back2dos,

@ back2dos Per favore, non confrontare la bellezza di SO con il pezzo di ... che è Facebook.
Adamo


15

Qualsiasi tentativo di seguire un processo non adatto all'attività in corso.

Questo può essere di ogni genere, ma quelli comuni che vedo includono:

  • metodologie di test che non si adattano al codice testato
  • processi che sono drammaticamente più agili o tradizionali del mandato o dei risultati finali
  • linee guida intese per un set di strumenti diverso rispetto al set di strumenti selezionato
  • principi di progettazione che sono fuori scala con le esigenze del progetto
  • utilizzando un set di strumenti non adatto all'attività

Tutte queste cose possono essere immensamente utili in alcuni progetti o in alcune situazioni, ma alcune organizzazioni cercano di fare tutto in un modo e ciò porta a una scarsa adattamento ad altri progetti che spesso è la morte della produttività.


13

Politica

ad esempio: quando più di una persona possiede i requisiti (o peggio, due diversi interessi acquisiti) e apportano modifiche concorrenti e contrastanti ai requisiti mentre lo sviluppo è in corso.


9

Conversazioni di altri

e rumore in generale

Molte risposte parlano del cambio di contesto e dell'uscita dalla zona e il rumore, in particolare la conversazione, è una di quelle cose che portano a quelle per me.

Nel mio cubeworld, sono circondato dal rumore e dalla conversazione su tutti i lati. Dopo una riga, il team mainframe tiene riunioni di pianificazione costanti nella riga del cubo. A volte, si incontrano con i consulenti in un ufficio lungo il muro, e questo tende a provocare rumori rumorosi, urla e risate e devo andare oltre e chiedere loro di chiudere le porte.

Dall'altro lato, il tavolo da conferenza del team Web si trova dall'altra parte della parete del mio cubo ovest, quindi faccio parte di ogni incontro, piaccia o no. C'è anche una stampante dall'altra parte del muro del cubo sud, ed è sempre utile per le chiacchiere da parte di persone che escono in attesa delle loro stampe.

La risposta immediata e ovvia di " Non riesci a procurarti le cuffie con cancellazione del rumore" non aiuta quando ciò che vuoi è il silenzio.

A volte per le revisioni del codice, porto la mia pila di fogli in sala da pranzo (a orari diversi da quelli del pranzo, ovviamente), ma c'è una TV che di solito squilla. Lo spegnerò se nessuno sta guardando. Altrimenti, andrò a trovare un cubo vuoto in un altro dipartimento in un'altra parte dell'edificio.

Se vuoi che i tuoi programmatori facciano il lavoro che devono fare, che è principalmente il pensiero, la riflessione e la considerazione, hanno bisogno di un ambiente in cui possano farlo.


A volte è troppo tranquillo dove sono. Comincio a concentrarmi sui clic del mouse di tutti e sulle persone che respirano affannosamente, ecc ... È come stendersi sul letto e sentire un grillo.
kirk.burleson,

8

Scrivere troppe righe di codice senza test adeguati.


Questa è la causa numero uno delle cose che si fermano nella mia esperienza.
Paddyslacker

1
@Paddyslacker: più test = più produttivo? Eh? Solo per le persone che non dovrebbero essere in programmazione in primo luogo. Il test può essere utile ma "la causa numero uno delle cose che si fermano"? Sei serio?
n1ckp,

1
@ n1ck: Sì, sono serio. Il codice entra in uno stato non mantenibile e la mancanza di test e testabilità della base di codice significa che ogni nuova funzionalità diventa sempre più difficile da aggiungere. Trovo divertente che tu pensi che pensi che le persone che scrivono più test "non dovrebbero essere nella programmazione in primo luogo". Quindi Roy Osherove, Michael Feathers, lo zio Bob, Kent Beck ecc. Non dovrebbero essere in programmazione allora?
Paddyslacker,

@Paddyslacker: non lo so. Non li ho mai visti codificare. Forse dovrebbero essere migliori nella gestione dalla tua descrizione? E perché il codice diventa non mantenibile a causa della mancanza di test esattamente? Il test potrebbe rendere il codice scadente ottimo con un qualche tipo di magia forse?
n1ckp,

1
@ n1ck, i test non pagano quando si scrive il codice inizialmente, ma fanno molta differenza quando si deve mantenere il codice in un secondo momento.

5

Mancanza di caffè di alta qualità.


O mancanza di buona soda. Mi manca così tanto decaffeinato coca cola ciliegia! Nel mio paese posso ottenere solo coca cola dietetica, o coca cola decaffeinata, e non coca cola per ciliegia :-(
Wizard

1
@Wizard - Lavoro per un'azienda che ha fornito Diet Cherry Coke. Non sono sicuro del motivo per cui sono partito. Se senti il ​​tuo dolore.
JeffO,

2
@Wizard: basta acquistare un barattolo di ciliegie al maraschino e aggiungere un po 'di sciroppo al tuo drink. Ora puoi renderlo forte come vuoi ... (stesso trucco per la vaniglia: la vera coca-vaniglia è di gran lunga superiore alle cose
premiscelate

@Sig. C: Il problema è che ho bisogno di dieta + decaffeinato, una combinazione che non è disponibile nel mio paese.
Wizard

5

dovendo fare stime perfette da cui non bisogna deviare una volta iniziato lo sviluppo, secondo me è uno scenario da uovo di gallina


Se ci si imbatte molto, suggerirei di dedicare un po 'di tempo non banale a studiare stime. Quindi puoi rispondere "se si tratta di una stima, non è per definizione la quantità di tempo che impiegherà effettivamente".
MIA,

oh l'ho già usato prima, la risposta è sempre che sono cattivo a stimare, se non può essere suddiviso in compiti visibili di 2-4 ore, apparentemente sto sbagliando
MetaGuru

5

Risolto il problema con la build danneggiata di qualcun altro


sembra che qualcuno non stia guidando bene il suo collega.
Visualizza nome

@ grassetto: può accadere naturalmente dall'asincronicità. Supponiamo che l'orario di chiusura giornaliero della build sia alle 5:00 e che tu abbia verificato la versione più recente alle 9:00. (In altre parole, non puoi impedire alle persone di venire a lavorare presto.)
Tra il

4

Riunioni senza agenda.

Una macchina lenta.

Mancanza di un secondo monitor.

Un vecchio topo che ha una palla al posto di quelle nuove carine.

Mancanza di accesso a Internet sulla macchina, rendendo un po 'problematico interrogare MSDN / stackoverflow / ecc.


Relativo alla riunione senza agenda è il dirottatore della riunione. Sai ... l'hai messo sul calendario per un'ora ma anche se l'argomento è concluso in 20 minuti, c'è quel ragazzo che continua a trovare altri argomenti per compilare i 20 minuti. Voterei per te, ma poi dovrei sottovalutarti per la "mancanza di un secondo monitor" come rallentamento. È conveniente, ma non averlo in certe occasioni non mi ha rallentato.
MIA,

4

Trascorso troppo tempo a programmare

Anche se ti piace davvero programmare, passare troppo tempo su di esso alla fine ti brucerà ...


4

Evita tutto ciò che ti fa uscire dalla "zona". Ciò significa che la posta in arrivo, l'applicazione popup di Twitter, la chat aziendale, ecc.

Avere una condizione di lavoro silenziosa significa evitare anche quel rumore del desktop .


3

Qualsiasi richiesta di modifica che sarebbe stata più semplice da implementare se l'avessi saputo prima.


"Camminare sull'acqua e sviluppare software da una specifica sono facili se entrambi sono congelati"
back2dos

1
Citazione sciocca. Camminare sul ghiaccio non è sempre facile.
Peter Boughton,

1
@Peter Boughton: se scegliamo una scala in cui lo sviluppo di software dalle specifiche fluttuanti è difficile e da quelli congelati è facile, quindi camminare sul ghiaccio è sempre facile. Puoi insegnare a un bambino di 6 anni a farlo. Ma suppongo che tu lo sappia, ti piace solo il culo intelligente.
back2dos,

E puoi insegnare a un bambino di sei anni a lavorare anche con specifiche fluttuanti. Non è intelligente, è irritazione per l'uso eccessivo di citazioni del genere, che non sono utili. Le specifiche congelate non sono facili da sviluppare se sono sbagliate (dal momento che non possono essere riparate), e cambiando le specifiche vanno bene se sai in anticipo quali parti sono in flusso (poiché puoi soddisfarle).
Peter Boughton,

3

Codice scadente.

Dover riscrivere la parte di qualcun altro che avrebbe potuto fare il lavoro in primo luogo è il più grande affondamento di tempo che posso immaginare.


2

Il molto che ti rallenta è un buon post sul blog per questo.

...

Molti progetti ripetono ripetutamente le funzionalità di base a livello di infrastruttura, rallentando l'attività nel fornire funzionalità che differenziano l'azienda dai suoi concorrenti.

...

È inevitabile che i prodotti e le innovazioni contribuiscano a ridurre il tempo che gli sviluppatori dedicano ad attività non differenzianti. La domanda è: quale forma assumeranno tali servizi e strumenti.

...


+1: ottima risposta. Ho lasciato un lavoro perché la società non era disposta a impegnarsi per ridurre il debito tecnico. Gli sviluppatori sono stati costretti a "ripetere ripetutamente le funzionalità di base a livello di infrastruttura".
Jim G.

2

Bene, ultimamente il più grande rallentamento è perché stiamo sviluppando molte cose contemporaneamente che avrebbero dovuto essere fatte in un ordine specifico. Quindi sto aspettando che (i nomi cambiati per proteggere l'innocente) John finiscano il suo componente di cui ho bisogno per il mio pacchetto SSIS e Harry è rallentato aspettando che io importi i record perché ha bisogno di alcuni dati per vedere per testare la sua esportazione (mai provare scrivere un rapporto di esportazione complesso quando non ci sono dati in nessuna delle tabelle?) e tutti sono rallentati perché la progettazione non è stata eseguita e le tabelle del database che dobbiamo svolgere le nostre attività non sono state ancora create e potrebbero non finire essere quello che hanno detto che sarebbero stati, ecc.


1
Sembra che tu stia parlando di colli di bottiglia causati dalla diffusione troppo sottile del lavoro tra i membri del team.
MIA,

1
Non è tanto il team a essere distribuito in modo sottile, ma il management non ha pensato alle dipendenze nell'assegnazione dei progetti. E qualcosa che si presumeva fosse pronto nel momento in cui l'altro peolpe assegnato al progetto non era una volta che le persone cercavano di usarli effettivamente.
HLGEM,

2

Rispondere alle domande su stackexchange.com, come questo.


Quindi potresti considerare di migliorare le tue abilità di battitura a tocco.

2

Anche se hai chiesto di non elencare le distrazioni, possono essere un grande fattore. Guarda il loro ambiente di lavoro, controlla se vengono interrotti frequentemente o se ti viene chiesto di fare altre cose che non sono correlate al progetto.

A volte, uno sviluppatore potrebbe rimanere bloccato perché stanno facendo qualcosa che non hanno mai fatto prima e non sanno dove cercare aiuto. Se è una piccola squadra o un individuo, può essere ancora più difficile. Tendiamo ad essere un po 'orgogliosi e non amiamo ammettere quando non sappiamo come fare le cose. Inoltre, non ci piace chiedere aiuto agli altri. Non c'è modo semplice per convincere uno sviluppatore ad ammetterlo, tranne forse per chiedere se sono in grado di rispettare la scadenza, o di cosa hanno bisogno per rispettare la scadenza, e quindi sperare che siano onesti. Potrebbe essere necessario offrirti per portare altro aiuto o trovare qualcuno che possa aiutarlo.

Mancanza di requisiti chiaramente definiti, che li porta a dover capire le cose o prendere decisioni.


2
  • Dover attendere circa 15 minuti per l'avvio del PC in uno stato utilizzabile
  • In attesa che il PC passi da un'applicazione all'altra
  • Essere l'unica persona in ufficio a dover preparare il suo tè / caffè.
  • Una tastiera rotta (risolta!)
  • Lavorare al di fuori dell'ufficio del CEO (US CEO) (e non in un ufficio), con solo una partizione in mezzo (specialmente quando c'è una riunione)
  • Il boss è raggiungibile solo via e-mail, ma tutti gli altri sono nell'edificio
  • Non avere il permesso di usare un VCS - apparentemente dovrebbe essere nel mio cervello
  • Piccolo schermo
  • Non concedere tempo per pause diverse dal pranzo
  • Dover fare i backup del server remoto nonostante abbia un amministratore di sistema nell'edificio
  • Viene detto di eseguire manualmente i backup.
  • Essere costretti a usare uno stupido sistema di gestione del tempo inutilmente complicato
  • Solo una vaga idea dei requisiti per due mesi nel lavoro

Potrei continuare, ma è venerdì e voglio dimenticare il lavoro.


Sembra che tu debba uscire di lì!
Adamo

2
  • Mancanza di documentazione (sistema, azienda, ecc.)
  • Mancanza di codice commentato
  • Una comprensione incompleta del sistema
  • Politica (ovvero riunioni non necessarie, scartoffie, ostacoli da parte della direzione ...)
  • Documentazione dei requisiti incompleta
  • Facebook!
  • Dormire troppo?

1

Troppe persone nel progetto.

Visto più volte in cui la direzione decide sulla base di dati non reali di cui hanno bisogno per aggiungere più persone al progetto. Questo finisce nel ppl che sa cosa sta succedendo e che deve fermare tutto per tenere le mani di persone che sanno poco di quello che sta succedendo. Ho visto più di un progetto di dimensioni di funghi e poi andare in bagno rapidamente da lì, mentre prima andava bene, anche se forse un po 'lento.

Quindi si passa dall'essere in ritardo di un mese a causa della velocità insufficiente / troppo da fare per non consegnare affatto perché hai fatto saltare completamente il budget su tutte quelle persone in più.


0

A parte le cose menzionate da altri, la lunga strada tra la decisione di compilare ed eseguire il codice e ottenere un risultato positivo / negativo . Idealmente, questo RTT sarebbe solo un secondo, ma ho visto un esempio di ore. A proposito, i test unitari cercano di affrontare questo problema.

Un'altra correlazione è una latenza generale dell'ambiente di lavoro. Immagina di dover lavorare tramite una connessione desktop remoto al computer dall'altra parte del mondo, tramite una connessione inquietante. Ci sono stato. L'ho odiato.


0
  • Scartoffie eccessive

  • Avere una dipendenza da qualcuno che non c'è mai stato (come il tuo capo - se devi fare una domanda ma è sempre nelle riunioni)

  • Strumenti e attrezzature inadeguati.

  • Le persone che spingono il loro remo senza motivo (qualsiasi modifica visibile dell'interfaccia utente è soggetta a questo) o semplicemente discutono del lancio di cose banali.

  • Macchina per il caffè rotto

  • A cui sono stati assegnati compiti sbagliati


0

L'aria condizionata non funziona.

Quindi la temperatura in ufficio arriva fino a 40 gradi in estate di -5 in inverno.

Il -5 non è buono per la digitazione, in quanto non posso indossare guanti e digitare. Il 40, rallenta il mio pensiero.


0

Questa è un'opinione molto personale e forse controversa, ma pianificare e pensare troppo alla progettazione anticipata o alla scrittura di codice di "qualità" per tutto il tempo. C'è un detto che "settimane di programmazione possono farti risparmiare ore di pianificazione" che in alcuni casi potrebbe essere vero.

Tuttavia, spesso vedo i programmatori provare a disegnare un buon disegno prima di iniziare a scrivere codice. Trovo che sia più semplice "iniziare", mentre programmerai imparerai di più sul tuo problema e sulla tua soluzione che ti permetteranno di trasformare rapidamente la tua soluzione in un buon design. La maggior parte dei problemi che sorgono sono praticamente inconoscibili all'inizio della programmazione (almeno per la mia mente debole), quindi perdere molto tempo a progettare in anticipo è solo una perdita di tempo.

Questo è anche il motivo per cui non mi piace il TDD, perdi troppo tempo a scrivere i test, il che ti rende meno propenso al refactoring o impiega molto tempo a riscrivere i test. I test unitari sono ottimi per alcuni casi e alcune fasi di un progetto, ma l'inizio di uno non è uno di questi IMHO :)

Fai in modo che qualcosa funzioni rapidamente e miglioralo.


-1 Posso capire il tuo pensiero, ma il punto della fase di progettazione è limitare la necessità di refactoring. Facilita anche il test unitario, il che è fantastico per tutto il tempo per assicurarsi che qualcosa che stava funzionando non venga rotto e rilasciato. Se non fai alcuna pianificazione, renderai i lavori più difficili a tutti quando dovranno cercare di mantenere quello che sarà inevitabilmente un codice mal progettato.
Adamo

Chi dice che sarà mal progettato? Sto solo dicendo che non si desidera una fase di progettazione eccessiva e che è necessario eseguire un sacco di refactoring e re-architettura durante un progetto per arrivare al codice di qualità. D'altra parte, affinché funzioni, devi avere responsabilità del codice chiaramente delineate in cui persone diverse non si confondono nel codice dell'altra.
Homde,

L'esperienza dice che avrà un'architettura scadente. Volare al posto dei pantaloni e codificare i cowboy sono probabilmente le cose peggiori che puoi fare durante lo sviluppo. Avere una fase di progettazione che durerà una settimana, ti farà risparmiare mesi di programmazione e porterà a un codice che fa quello che dovrebbe essere la prima volta. L'idea alla base di TDD è che non si modificano i test. Questi test hanno lo scopo di emulare l'usabilità del mondo reale e se il tuo codice non può completare il test, allora il tuo codice è sbagliato.
Mike S,

La mia esperienza dice diversamente, ma immagino che dipenda dal cowboy e dalla squadra :) Ho imparato di più da una settimana di programmazione e ho fatto un po 'di codice per dimostrarlo. Ovviamente avrai un'architettura scadente se non esegui refactoring estremi e continui e hai una squadra / cowboy abbastanza agile da tenere il passo. Pensare di poter fare una "fase di progettazione", imparare tutto e farlo bene la prima volta è semplicemente ingenuo. Il vero valore di un prototipo sono le lezioni che impari, le butti via e lo fai bene. Fallo più volte e velocemente :)
Homde,

0

Programmer's Block : a differenza di altri rallentamenti, questo è più difficile da risolvere.

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.