Skip to main content
I casi d’uso strategici sono progetti di grandi dimensioni e ad alto valore per il business che possono essere suddivisi in sottoattività isolate e ripetitive. Ogni slice è il lavoro di un singolo Devin, quindi dovrebbe essere semplice (meno di 90 minuti di lavoro di un ingegnere umano) e incrementale.
TL;DR — Requisiti per i casi d’uso di Devin:
  1. Alto volume di sottoattività ripetitive (slice)
  2. Sottoattività di difficoltà pari al livello di un ingegnere junior
  3. Sottoattività isolate e realizzabili in modo incrementale
  4. Sottoattività con un ciclo di verifica oggettivo
  5. (Consigliato): Dipendenze di progetto minime

Caratteristiche fondamentali

Un caso d’uso strategico ottimale per Devin è poco profondo e ampio, piuttosto che stretto e profondo. Funzionalità complesse e completamente nuove (anche se ripetitive) difficilmente saranno sufficientemente affidabili su larga scala.
Confronto tra stretto-profondo e poco profondo-ampio
Un ampio backlog di modifiche orizzontali e semplici (ad es. segnalazioni SonarQube) genera un ROI enorme quando viene scalato orizzontalmente. Diagramma delle modifiche orizzontali
Quanto più è semplice la singola unità di lavoro (slice), tanto più è affidabile il progetto nel suo complesso.

Casi d’uso per lo slicing [IMPORTANTE]

Migrazioni, refactoring, modernizzazioni e backlog di debito tecnico sono ottimi casi d’uso. Ad esempio, considera una migrazione del codice. Suddividi la migrazione in slice isolati, in cui ciascuna attività viene affrontata da una singola sessione Devin. Slicing use cases illustration

Verifica

Una slice dovrebbe essere la più piccola unità atomica del progetto (file, notebook o modulo) con:
  1. Meno di 90 minuti di lavoro di ingegneria umana
  2. Un modo per verificare le modifiche al codice (test, build, controlli CI o script di verifica personalizzato)
Ogni Devin deve poter sapere in modo oggettivo se ha completato con successo il proprio compito. Finché non conclude la verifica, deve continuare a iterare utilizzando stack trace dettagliati o log di errore.
Ogni slice dovrebbe evitare di avere troppe dipendenze o troppi piattaforme con cui interagire. Concentrate Devin sulle modifiche al codice! Diagramma della retrocompatibilità Ogni slice deve essere isolata e incrementale. Sfruttando il parallelismo di Devin, completate la migrazione una slice alla volta. Dopo la revisione umana, effettuate il merge progressivo di ogni PR nel branch master. Visualizzazione dell'esecuzione in parallelo Il modello complessivo per un caso d’uso di Devin: Diagramma del modello complessivo Devin deve essere il più possibile affidabile a livello della singola slice, in modo che, quando parallelizziamo su migliaia di slice, manteniamo un’elevata affidabilità su larga scala. Anche un piccolo margine di errore può causare molte modifiche errate quando viene ampliato.

Da fornire da parte del cliente

  • Dettagli chiari per ogni passaggio in ciascuna slice (una descrizione dettagliata o un video dell’intero processo end-to-end risulta molto efficace)
  • Diversi esempi di modifiche al codice prima/dopo (coppie input/output)
  • Accesso per Devin a tutte le dipendenze necessarie in ciascuna slice

Esempi

Le attività di debito tecnico continuative (ad es. revisione di PR o test QA) sono anch’esse casi d’uso validi, a condizione che possano essere suddivise in slice.
Migrazioni, modernizzazioni e refactoring sono casi d’uso validi per Devin quando sono incrementali. Una migrazione che richiede l’aggiornamento dell’intero repository al nuovo sistema tutto in una volta, invece che una slice alla volta, non è consigliata.
Per approfondire: Nubank Migration Case Study