Il culto degli eroi nell’ingegneria del software porta a lemming che sembrano ingegneri del software?

Grazie per la A2A. Penso che il culto stia andando un po ‘lontano. Questa è una domanda interessante, sebbene perché solleva, per la prima volta, una verità importante che è stata totalmente ignorata dalla maggior parte dei dirigenti di livello esecutivo. Il punto importante è che non tutti gli ingegneri e gli scienziati sono uguali. Ci sono alcuni che sono all-star e questo è qualcosa a cui il management di livello esecutivo non presta attenzione.

Ammettiamolo, la maggior parte dei leader di livello esecutivo non ha idea di cosa facciano gli ingegneri del software. Non sono in grado di comprendere i processi relativi all’ingegneria del software o la loro importanza. L’ignoranza rende l’ingegneria del software in questa scatola nera che è frustrante da gestire. La maggior parte dei dirigenti preferisce semplicemente assumere l’ingegnere più giovane ed economico. Invece di assumere i migliori gestori di ingegneria del software, le aziende finiscono per assumere persone che sanno come gestire le aspettative del proprio manager, ma che sanno come gestire lo sviluppo del software? Non ne hanno idea.

Questo è un problema per ogni azienda, non solo per le società “High Tech”. L’intero mondo aziendale è rotto quando si tratta di ingegneria del software. Ciò continuerà fino a quando il mondo aziendale non si renderà conto che i criteri di assunzione per gli ingegneri devono cambiare.

Parte del dilemma per le aziende è che ci sono diversi tipi di talenti negli ingegneri del software che si applicano a diversi tipi di problemi e obiettivi. C’è un ingegnere che produce in modo affidabile software di buona qualità quando gli viene detto cosa fare. C’è l’ingegnere che, data la tecnologia, sogna nuove idee in grado di creare mercati completamente nuovi. C’è l’ingegnere che può far funzionare tutto; un mago all’integrazione. C’è l’ingegnere che sa come creare architetture di distribuzione. C’è l’ingegnere che, ogni volta che toccano qualcosa, lo rende migliore e più facile per tutti gli altri che seguono. C’è l’ingegnere che ha l’esperienza per aiutare gli altri ingegneri quando sono bloccati, e c’è il raro ingegnere che capisce il dominio aziendale e come questo si applica alla tecnologia. Ognuna di queste cose è un talento indipendente separato e un buon ingegnere di solito ne ha solo una, ma succede di più raramente. C’è il responsabile tecnico che sa riconoscere questi talenti e costruire una squadra. C’è il responsabile tecnico che capisce come creare il giusto livello di processo, non troppo e non troppo necessario per un determinato progetto. Un grande ingegnere è d’oro, ma di solito le società si offrono di pagare lo stesso stipendio dei loro principianti. Le aziende evitano la profonda esperienza di ingegneria del software perché costa di più. È per il meglio perché non hanno assunto il responsabile tecnico che può comunque riconoscere come usare un ingegnere davvero bravo.

Quando Google decide di assumere un caposquadra con esperienza, le domande del colloquio vengono prese immediatamente dalle domande inventate su un esame finale per alcune classi CS della divisione superiore; questo è un fallimento. La domanda di Microsoft per me era di dirmi l’algoritmo per la creazione di un codice hamming; questo è un fallimento. Nessuno chiede: perché facciamo una build? Perché abbiamo il controllo del codice sorgente? Perché utilizziamo un framework? Come evitare che il codice dipenda dalla struttura dello schema del database relazionale? Queste sono domande interessanti; quale algoritmo di ordinamento è meglio per un breve elenco collegato è una domanda stupida perché chiunque può Google se ne ha bisogno.

Non penso che il culto dell’eroe sia necessariamente una buona idea, ma ci sono enormi differenze tra l’ingegnere e questo dovrebbe importare. Queste persone non sono un branco di bovini, ma sono trattati in questo modo.

Penso che “i lemming che sembrano ingegneri del software” siano troppo forti … ma sì, l’adulazione cieca di famosi ingegneri del software non è utile. Mentre i famosi ingegneri del software hanno senza dubbio talento, parte del loro successo è dovuto al fatto di essere nel posto giusto al momento giusto, specialmente quelli che sono diventati fondatori di successo. Credo che essere un leader tecnico, o essere famoso per abilità tecnica, sia più realizzabile e possa essere fatto attraverso un duro lavoro e non solo fortuna: in che modo i programmatori diventano leader di pensiero?

I migliori risultati di programmazione sono anche dovuti a team ad alte prestazioni. Potrebbe non sembrare così, poiché alcuni singoli programmatori del team tendono a diventare più visibili a livello globale attraverso mezzi come parlare di più, scrivere di più e contribuire al software open source. Ma al giorno d’oggi è raro costruire progetti importanti e famosi da soli. L’opposto di: Cultura dell’ufficio e del posto di lavoro: quali sono alcuni dei motivi per cui i programmatori non possono andare d’accordo?

Quindi penso che l’atteggiamento salutare sia quello di guardare ai tratti positivi degli eroi, ma di applicarli alla situazione locale e non solo cercare di seguirli ciecamente o anche solo guardarli come farebbe un fanboy.

Non so se direi “lemming”, ma ci sono tutti i tipi di problemi con l’adorazione degli eroi, come mistificare un’industria piuttosto semplice (applicarsi abbastanza a lungo, sistematicamente e le cose funzioneranno) e spesso ignora i milioni di “hack” che si limitano a fare il loro lavoro per una busta paga e mantengono letteralmente tutto ciò che usi.

Sono un grande fan di The Changelog Podcast, ma alla fine di ogni episodio, chiedono alla gente di “programmare eroi” e mi viene sempre sotto la pelle ascoltare l’ennesimo nome che non ha mai fatto nulla di interessante o importante, ma piuttosto colpire in grande. Intendiamoci, capisco che stanno davvero cercando di intervistare eventuali altre persone, ma la loro domanda “quali progetti sono sul tuo radar” realizza molte delle stesse cose ed è più onesta.

Tutti hanno bisogno di persone a cui cercare. Di per sé, avere modelli di ruolo non è dannoso. Servono da guide e modelli generalmente positivi per noi da seguire. Tuttavia, una volta che sfugge di mano e attraversa la venerazione, allora diventa malsano.

Concordo con Miguel Paraz, i “lemming” possono essere un po ‘forti, ma, sì, in pratica.

Penso che molti neofiti della programmazione guardino a Google e Facebook con soggezione e riverenza, ma fondamentalmente stanno ammirando i soldi, non la tecnologia. Nessuno pensa davvero che Facebook sia una tecnologia straordinaria, ma ne guadagni $ 100 miliardi, all’improvviso sembra che ad alcune persone.

Penso che ammirare Linus Torvalds per il suo lavoro sia positivo e positivo, ma i nuovi arrivati ​​nello sviluppo del software devono a se stessi indagare su altre idee e sistemi. Per quanto mi piaccia UNIX, i produttori di UNIX hanno tentato di sostituirlo con Plan 9, quindi sicuramente vale la pena indagare e non accettare lo status quo.

Non solo accettare UNIX (o simili UNIX) sono la soluzione migliore, hai visto IBM i? OpenVMS? Piano 9?

Fondamentalmente, non essere il ragazzo che ha usato solo Mac, Windows e Linux. Installa qualcosa di interessante.