Mi sembrano molto diversi, e ho avuto difficoltà a dire quale è più importante.
Potresti essere un fantastico manutentore del software, ma anche un pessimo programmatore. Alcune persone sono sorprendenti nel debugging del codice, trovandone la via, risolvendolo e migliorandolo leggermente. Sono spesso paragonati ai custodi, ma è un disservizio: possono avere vera conoscenza e know-how per portare le cose a uno stato migliore.
Ma possono ancora essere terribilmente cattivi nello scrivere nuovo codice e nel progettare e implementare algoritmi. Possono avere una comprensione del perché le cose sono generalmente migliori in un modo o nell'altro, e possono persino capire, dopo il fatto, i benefici di un design rispetto a un altro. Ma hanno difficoltà a inventarne uno. Mancano di una profonda comprensione di questa mentalità logica e di risoluzione dei problemi.
Sono entrambi importanti nella mia mente. Non vuoi che gli hacker solo che escano con soluzioni sorprendenti, ma producano codice non gestibile per le prossime generazioni di bulbi oculari che esamineranno la tua base di codice. Può andare bene per prototipazione e progetti di breve durata, ma su una scala più ampia che può volare solo per così tanto tempo.
Quindi anche il primo gruppo è essenziale. Ma non sarebbero in grado di progettare un ottimo software con il secondo gruppo. È abbastanza simbiotico (ed è meglio quando le qualità sono effettivamente nello stesso sviluppatore). Immagino che se lo vedessi come un problema di pollo e uova, dovrei ammettere che il tipo logico conta un po 'di più, per ragioni storiche, dato che dovevano prima esistere per farsi strada. Ma questo significa che sono più importanti in un negozio di software? Io non la penso così Puoi produrre un software eccezionale e di successo mettendo insieme le cose e non inventandoti molto.