Come evitare di essere portato via con i dettagli? [duplicare]

8

Quando programmo, spesso mi coinvolgo troppo nei dettagli. Potrebbe esserci qualche piccola cosa che non fa esattamente ciò che voglio, o forse c'è qualche piccola funzionalità che voglio aggiungere. In entrambi i casi, nessuno è veramente essenziale per l'applicazione - è solo un niusance minore (se presente). Tuttavia, quando cerco di risolverlo, potrei passare più tempo su di esso di quanto avessi programmato, e ci sono cose molto più importanti che dovrei fare invece di trattare questo piccolo dettaglio.

Che cosa posso fare per evitare di lasciarsi trasportare dai dettagli, quando ci sono altre cose essenziali che devono essere eseguite?

(Non sapevo come taggare questa domanda, quindi sentiti libero di aggiungere tutti i tag appropriati che mancano.)

    
posta gablin 09.02.2011 - 14:39
fonte

9 risposte

4

Cerco di mantenere un elenco di TODO per evitarlo. Ogni volta che sto lavorando a un'attività e notando qualcosa che richiederebbe qualche miglioramento ma non è direttamente correlata all'attività effettiva su cui sto lavorando, potrei risolverlo immediatamente se la correzione è banale. Altrimenti, cerco di resistere alla tentazione e invece di prendere nota per tornare a questo. (Potrebbe essere un commento TODO nel codice, una nota su carta, una nuova voce in un file di testo, ecc. Si noti che il primo funziona solo se non si dispone già di dozzine di TODO non gestiti sparsi su tutta la base di codice. lavorando su una grande app legacy con centinaia di commenti TODO ereditati per lo più dalla preistoria, quindi uso la carta.)

Una volta che ho finito il compito immediato, torno ai miei appunti e prendo quello più importante che riguarda ancora il problema più ampio su cui sto lavorando, ed è fattibile entro limiti di tempo ragionevoli. E così via.

Alla fine, quando ho finalizzato tutto e ho impegnato l'intero lavoro, potrei avere ancora alcuni compiti che non sono collegati al problema attuale o troppo grandi per essere fatti in questo momento. Di solito li inserisco nel nostro tracker dei problemi.

    
risposta data 09.02.2011 - 14:55
fonte
4

Gli elenchi di cose da fare con un livello di priorità possono davvero aiutarti.

Qualunque cosa casuale che ti viene in mente di voler aggiungere / correggere / modificare / investigare, aggiungila alla lista, ma assicurati che abbia il giusto livello di priorità. Quindi inizia dalla parte superiore!

    
risposta data 09.02.2011 - 15:04
fonte
4

Allontanati dalla tua scrivania e prendi un bicchiere d'acqua.

Quando ti rendi conto di aver speso molto per lavorare a lungo su una cosa. Allontanati dal tuo computer e pensa a ciò che stavi facendo e chiediti se è davvero utile per completare il tuo compito principale.

Non tornare alla tua scrivania finché non hai un piano di gioco su cosa dovresti lavorare. A volte vuol dire che tirerai fuori TUTTE le modifiche alle quali hai lavorato per poterti concentrare sul tuo compito principale. A volte significa salvare il codice su cui stavi lavorando e aggiungere una nuova attività al progetto. E a volte significa che finirai su cosa stavi lavorando.

    
risposta data 09.02.2011 - 16:19
fonte
2

Per quanto possa sembrare strano, la noia può essere tuo amico.

Prova a goderti il momento in cui un'applicazione / modulo / libreria "prende vita", quando inizia a funzionare, anche se non è ancora impeccabile. Una volta che ti sarai abituato a questa sensazione, scoprirai che i dettagli precisi, sebbene interessanti per qualche tempo, alla fine diventano noiosi.

Un'altra osservazione è che è più facile abbandonare un problema su piccola scala, se lo si documenta e lo si archivia nella lista delle cose da fare. Assicurati di rivisitare questi problemi. Dopotutto, non vuoi passare il codice che non è del tutto all'altezza.

    
risposta data 09.02.2011 - 14:47
fonte
2

Se stai facendo le cose in tempo, non passi troppo tempo sui dettagli. Si spera che questo non sia il risultato di ingannare i tuoi superiori / clienti nel credere che le tue stime di tempo siano normali.

A volte è più facile restare con un compito che sai essere completato dagli standard di tutti gli altri e continuare a modificarne un piccolo frammento per iniziare il prossimo compito che non è tanto divertente / sarà molto difficile . Alcune persone sono semplicemente orientate ai dettagli / borderline OCD.

Ho il problema opposto e tendono a voler fare le cose e perdere alcuni dettagli. Mi sforzo di impedire di inviare le cose e, dopo una breve pausa, tornare indietro e rivedere.

Nel tuo caso, una volta che qualcosa 'funziona', fai una pausa e costringiti a passare all'attività successiva sapendo che puoi tornare indietro e lavorare su alcuni dettagli se hai tempo. Se si fanno le cose in tempo, non è davvero un problema, ma un buon tratto da avere come sviluppatore.

    
risposta data 09.02.2011 - 15:00
fonte
1

Nella mia esperienza vale sempre il tempo di capire perché sta facendo ciò che sta facendo, perché migliora la comprensione del sistema e ti migliora nel tempo. Dopo aver capito il motivo, devi fare un'ipotesi plausibile: è più economico risolvere il problema, aggirare il problema, documentarlo e andare avanti. Questa è una decisione aziendale.

Se è davvero una seccatura per l'utente, sbaglierei a correggerlo, altrimenti ti ritroverai con "la morte di mille tagli di carta". I dettagli contano.

    
risposta data 09.02.2011 - 14:45
fonte
1

Ecco cosa ho imparato dalla mia esperienza:

Meno è The New Perfections

  1. Crea meno scope.
  2. Crea meno funzionalità.
  3. Costruiscilo perfetto.

Crea meno ambito

Se pensi di non riuscire a completare la tua app entro diversi mesi, allora la tua portata è decisamente troppo grande. Suddividendolo in diverse pietre miliari o sprint, rende la regolazione di quale parte del sistema è più essenziale e quale parte è inferiore. O semplicemente buttare via lo scope che non ha nemmeno senso.

Crea meno funzionalità

Adoro le funzionalità, adoro le funzionalità, no? Ma non è quello di cui abbiamo veramente bisogno. Pensa alle funzionalità che sono veramente necessarie all'utente, comportati come un utente e sentilo, è ciò di cui hai veramente bisogno. Elimina funzionalità che non sono realmente necessarie o attendi fino alla prossima versione se pensi che sarà necessaria in futuro.

Build It Perfect

Questo è tutto. Se hai meno spazio e meno funzionalità, puoi concentrarti maggiormente sul perfezionamento della tua app piuttosto che sul gonfiare la tua app con funzionalità e ambito non necessari. Perfect significa che funziona perfettamente, non necessariamente completo.

È difficile costruire qualcosa di meno complicato per una persona come te, so come ti senti, ho già percorso quella strada. Ma qual è il punto nella costruzione di un'app che viene portata via indefinitamente? Funziona per me, spero che funzioni per te. :)

    
risposta data 09.02.2011 - 16:21
fonte
0

Che cosa vogliono che i tuoi "clienti" lavorino? Mentre a volte scriviamo software esclusivamente per nostro uso, la maggior parte delle volte scriviamo software per qualcun altro da utilizzare. Ascoltale e imposta le tue priorità in base al loro feedback. È qui che la programmazione agile diventa utile, una serie di brevi uscite che forniscono un feedback rapido.

    
risposta data 09.02.2011 - 15:24
fonte
0

Costruisci in ritardo per lavorare su qualsiasi nuova funzione ad eccezione di quegli elementi che richiedono veramente attenzione immediata .

  • Salva di saltare su dettagli che in seguito si rivelano insignificanti
  • Permette di rimanere concentrato sulla grande immagine - le cose che contano davvero

Molte di queste nuove funzionalità sono solo distrazioni lungo il percorso. Pochissimi elementi richiedono veramente attenzione immediata, e quando lo fanno sono ovvi.

Rimani concentrato utilizzando un sistema di gestione dei ticket, come Trac o Jira o anche un foglio di carta e una matita. Riorganizza continuamente la priorità alla luce del focus principale di ciò che speri di ottenere. È incredibile quante distrazioni possono essere eliminate in questo modo.

    
risposta data 09.02.2011 - 15:55
fonte

Leggi altre domande sui tag