Generalizza o correggi il problema?

1

Quale di questi due programmatori è "migliore", da un punto di vista manageriale?

Il primo programmatore è Albert. Dì ad Al di creare un sistema che ti farà passare il sale a tavola. Lo fa in meno di un giorno. Funziona bene.

Il secondo programmatore è Ben. Ben ha detto di fare un programma per passare il sale e, dopo due giorni, ci sta ancora lavorando.

Risparmierà tempo a lungo termine ... se hai bisogno di pepe, ketchup, ecc. Non c'è alcuna chiara indicazione che ci sarà bisogno di questo, ma non è improbabile.

Chi è il programmatore migliore per lavorare sotto di te, come manager?

    
posta Droogans 14.04.2012 - 05:11
fonte

3 risposte

3

Il primo programmatore è migliore.

YAGNI è in gioco, e un programma che passa condimenti arbitrari non vale il 200% in più di fronte ai requisiti che richiedevano un programma che supera salt.

    
risposta data 14.04.2012 - 05:40
fonte
9

Direi che dipende interamente dalla natura della tua attività e dal tipo di relazioni con i clienti che hai.

Hai bisogno del tuo cliente o del tuo cliente di premere "sale a tavola"? Tu o il tuo cliente avete spesso bisogno di condimenti di altri tipi? Tu o il tuo cliente avete una storia di bisogno di "solo questa cosa" e poi avete bisogno che "una sola cosa" sia diventata "una qualsiasi di queste cose"?

Sono sicuro che puoi vedere a cosa si riferiscono quelle domande. Da un punto di vista manageriale, o più specificamente da un punto di vista di interesse commerciale - la vera risposta è qualsiasi sviluppatore è migliore per la redditività a lungo termine della vostra azienda. E non c'è una regola dura e veloce per questo.

Considerando le ambiguità in scenari del mondo reale come questo, direi che la risposta corretta è "entrambi" - generalmente vorresti assicurarti di avere delle persone nel tuo team che possono "farlo subito" per quando " in questo momento "è importante. E vuoi che le persone che riescono a farlo siano "giuste" per quando la manutenibilità è importante. Raramente, puoi trovare persone che sono in grado di entrambe le cose: prendertene cura.

Gli sviluppatori che si trovano in una posizione estrema (una delle estremità del gradiente "giusto" - > "proprio ora") e che si trovano nella situazione di necessità opposta generalmente fanno in modo orribile. Offri a un pensatore astratto e con esperienza un lavoro "fai in modo veloce e sporco" e spesso lo frusteranno. Dare allo sviluppatore "ottiene finito con nastro adesivo e scotch" il ruolo di pianificare e mantenere un prodotto complesso e spesso si finisce con gli spaghetti grovigli di rovina.

    
risposta data 14.04.2012 - 06:28
fonte
2

Dipende.

  • Il gestore è un maniaco del controllo?
  • Il gestore è anche un programmatore?

I programmatori che lavorano sotto di te, in generale , non dovrebbero fare una passeggiata in zone inesplorate senza prima discutere la questione con te.

Quindi, tu, il manager, potresti essere completamente incompetente e incapace di discernere la questione in questione, spingendo così il tuo programmatore gestito da un a fare il proprio core design decisioni.

Lì, il tuo programmatore gestito è ora il suo stesso architetto, e sta lottando con le scadenze truccate, ( APPENA POSSIBILE non è una scadenza ragionevole, lo sai) e ha un sacco di onere su di lui , più di quanto lui possa probabilmente gestire, e questo probabilmente si ritorcerà contro, prima o poi.

Quindi, non è mai un buon sintomo. Se inizia a ripetersi all'infinito:

  • il tuo programmatore potrebbe essere incredibilmente ingenuo e / o avere capacità di comunicazione molto scarse
    • allora dovrebbe ottenere un adeguato addestramento
  • il tuo manager potrebbe essere incredibilmente inetto e dovrebbe essere rimosso dal progetto
    • quindi il programmatore potrebbe essere gestire il materiale :
      • corre in ritardo, ma soddisfa le scadenze?
      • il codebase ha più senso dal momento che ci mette le zampe sopra?
risposta data 14.04.2012 - 05:42
fonte