Quali tecniche di programmazione estrema sono appropriate per l'uso in un ambiente di ricerca? [chiuso]

2

Quali (se esistono) tecniche di programmazione estrema sarebbero appropriate per l'uso in un ambiente di ricerca - dove l'obiettivo è produrre prototipi, lavoro brevettabile e / o pubblicabile?

    
posta blueberryfields 03.12.2010 - 07:00
fonte

2 risposte

4
  • Devi essere Agile per fare ricerche programmazione.

  • Devi essere disposto a buttar via molti prototipi.

  • Devi essere disposto a pensare fuori dagli schemi, quindi modelli software non ti aiuterò più di tanto.

  • Penso che tu debba essere disposto a farlo impara nuove lingue e persino crea alcuni nuovi.

Oltre a questo, la programmazione della ricerca è fondamentalmente la stessa di qualsiasi altra. :) Devi ancora scrivere test unitari. Devi ancora scrivere la documentazione. E hai ancora un capo.

Le tue scadenze potrebbero essere un po 'più fluide.

    
risposta data 03.12.2010 - 08:01
fonte
8

Parlando da uno sfondo della ricerca sugli algoritmi:

  • Conserva un lungo arretrato di idee
  • Ri-prioritizzare in modo aggressivo e frequente (ad es. ogni giorno)
    • Segna gli elementi del backlog che non sono più utilizzabili
  • Mantenere un'immagine aggiornata delle interdipendenze tra gli elementi del backlog
    • A differenza del normale sviluppo del software, ci sono molte più dipendenze nel lavoro di ricerca.
  • Misura, visualizza e monitora sempre le prestazioni dell'algoritmo (precisione, ecc.)
  • Non lavorare da soli.
  • Discuti, collabora e condividi frequentemente.
  • Mantieni una wiki e dedica tantissimi sforzi per estrarre la "saggezza" dal tuo lavoro.
  • Utilizza il controllo della versione. Tuttavia, mantenere buoni candidati all'algoritmo nel sistema attuale, anche se non vengono utilizzati attivamente.
    • Ti permette di armeggiare con un algoritmo più vecchio al momento.
  • I dati sulle prestazioni scadenti potrebbero essere soggetti a errori.
    • Ad esempio, i vecchi dati potrebbero essere basati su una metrica meno accurata
    • Per ottenere nuovi dati sulle prestazioni, rieseguire gli algoritmi.
  • Preferisci la digitazione e la flessibilità dinamiche.
  • Utilizza la lingua giusta.
    • Se quasi tutti i ricercatori di successo nel settore utilizzano una lingua particolare, quindi usarla. Non combattere la saggezza della folla.
      • Invece, trova i modi per integrare componenti più piccoli in quel linguaggio, se i componenti più piccoli possono essere sviluppati in un linguaggio adatto per il calcolo come C / C ++, o se il codice open source esistente è disponibile.
  • Chiedi ai colleghi ricercatori il loro codice sorgente.
    • Molti ricercatori sono in realtà abbastanza amichevoli a tali richieste con crediti adeguati e condivisione dei dati.
    • Questo farà risparmiare un sacco di problemi perché i loro articoli pubblicati copriranno solo l'immagine di alto livello, tuttavia il diavolo si trova nei dettagli .
  • Spingiti sempre, ma non timebox.
    • Timebox non funziona a causa dell'imprevedibilità nel lavoro di ricerca.

Un esempio di come usare il backlog nella ricerca: Supponiamo che all'inizio ci siano gli elementi A, B, C, ..., X, Y, Z.

  • A
  • B
  • C
  • ...

Nel corso del tempo, hai lavorato su una serie di elementi e hai la sensazione di quanto sia promettente ciascun elemento, non solo gli elementi che hai lavorato, ma anche quelli che non hai. Il backlog aggiornato diventa:

  • A (promettente: 90, progresso: 70% fatto)
  • B (promettente: 70, progresso: 60% fatto)
  • Z (promettente: 65, non avviato)
  • ...
  • C (sembra che non funzioni, non preoccuparti)

Si noti come l'elemento C è sprofondato verso il basso a causa delle informazioni sulla ricerca ottenute lavorando su A e B. Notate anche come Z galleggi verso l'alto. Imparare ciò che fanno gli altri ricercatori aiuterà anche gli oggetti fluttuanti verso l'alto.

Alla fine di un semestre, esegui una pulizia del backlog.

  • A (fatto, funzionante)
  • B (fatto, funzionante)
  • Z (fatto, alcuni bug)
  • -----
  • Y (50% codificato, conservato nel sistema, non utilizzato attivamente)
  • X (10% codificato, rimosso dal sistema nella revisione 123)
  • -----
  • C (rilasciato)

Quelli che stanno lavorando saranno il risultato che pubblichi.

    
risposta data 03.12.2010 - 12:12
fonte

Leggi altre domande sui tag