¿La adoración de héroes en ingeniería de software conduce a lemmings que parecen ingenieros de software?

Gracias por el A2A. Creo que la adoración está yendo un poco lejos. Sin embargo, esta es una pregunta interesante porque plantea, por primera vez, una verdad importante que la mayoría de los gerentes de nivel ejecutivo ha ignorado por completo. El punto importante es que no todos los ingenieros y científicos son iguales. Hay algunos que son estrellas y eso es algo a lo que la gerencia de nivel ejecutivo no le presta atención.

Seamos realistas, la mayoría de los líderes de nivel ejecutivo no tienen idea de lo que hacen los ingenieros de software. No pueden comprender los procesos en torno a la ingeniería de software o su importancia. La ignorancia convierte la ingeniería de software en este recuadro negro que es frustrante de administrar. La mayoría de los líderes prefieren contratar al ingeniero más joven y más barato. En lugar de contratar a los mejores gerentes de Ingeniería de Software, las compañías terminan contratando personas que saben cómo administrar las expectativas de su propio gerente, pero que saben cómo administrar el desarrollo de software. No tienen idea.

Este es un problema con todas las corporaciones, no solo con las compañías de “alta tecnología”. Todo el mundo corporativo está roto cuando se trata de Ingeniería de Software. Esto continuará hasta que el mundo corporativo se dé cuenta de que los criterios de contratación de ingenieros tienen que cambiar.

Parte del dilema para las empresas es que existen diferentes tipos de talentos en los ingenieros de software que se aplican a diferentes tipos de problemas y objetivos. Hay un ingeniero que produce software de buena calidad cuando se le dice qué hacer. Existe el ingeniero que, dada una tecnología, inventa nuevas ideas que pueden crear mercados completamente nuevos. Hay un ingeniero que puede hacer que todo funcione; Un mago en la integración. Hay un ingeniero que sabe cómo crear arquitecturas de implementación. Existe el ingeniero que, cada vez que tocan algo, lo hace mejor y más fácil para todos los que lo siguen. Existe el ingeniero que tiene la experiencia para ayudar a otros ingenieros cuando están estancados, y está el ingeniero raro que comprende el dominio comercial y cómo se aplica a la tecnología. Cada una de estas cosas es un talento independiente y un buen ingeniero generalmente solo tiene uno de ellos, pero rara vez ocurre más. Existe el gerente de ingeniería que sabe cómo reconocer estos talentos y formar un equipo. Existe el gerente de ingeniería que entiende cómo crear el nivel correcto de proceso, ni demasiado ni muy poco necesario para un proyecto determinado. Un gran ingeniero es dorado, pero generalmente las corporaciones ofrecen pagarles el mismo salario que a sus principiantes. Las corporaciones evitan la profunda experiencia en ingeniería de software porque cuesta más. Es para mejor porque no contrataron al gerente de ingeniería que de todos modos puede reconocer cómo usar un ingeniero realmente bueno.

Cuando Google decide contratar a un líder de equipo experimentado, las preguntas de la entrevista se toman directamente de las preguntas artificiales en algún examen final para alguna clase de CS de división superior; Eso es un fracaso. La pregunta de Microsoft para mí fue decirme el algoritmo para crear un código hamming; Eso es un fracaso. Nadie pregunta: ¿Por qué hacemos una compilación? ¿Por qué tenemos control de fuente? ¿Por qué usamos un marco? ¿Cómo evita que su código dependa de la estructura del esquema de base de datos relacional? Esas son preguntas interesantes; qué algoritmo de clasificación es mejor para una lista enlazada corta es una pregunta estúpida porque cualquiera puede buscarlo en Google si necesita saberlo.

No creo que el culto al héroe sea necesariamente una buena idea, pero existen grandes diferencias entre el ingeniero y eso debería importar. Estas personas no son una manada de ganado, pero son tratados de esa manera.

Creo que “lemmings que parecen ingenieros de software” es demasiado fuerte … pero sí, la adulación ciega de ingenieros de software famosos no es útil. Si bien los famosos ingenieros de software son sin duda talentosos, parte de su éxito se debe a estar en el lugar correcto en el momento adecuado, especialmente aquellos que se convirtieron en fundadores exitosos. Creo que ser un líder técnico, o ser famoso por su habilidad técnica, es más factible y se puede lograr a través del trabajo duro y no solo de la suerte: ¿cómo se convierten los programadores en líderes de pensamiento?

Los principales logros de programación también se deben a los equipos de alto rendimiento. Puede que no se vea así, ya que algunos programadores individuales del equipo tienden a ser más visibles a nivel mundial a través de medios como hablar más, escribir más y contribuir al software de código abierto. Pero hoy en día es raro construir proyectos importantes y famosos en solitario. Lo contrario de: Cultura de oficina y lugar de trabajo: ¿Cuáles son algunas de las razones por las que los programadores no pueden llevarse bien entre sí?

Por lo tanto, creo que la actitud saludable es admirar los rasgos positivos de los héroes, pero aplicarlos a la situación local y no solo tratar de seguirlos ciegamente o incluso mirarlos como lo haría un fanboy.

No sé si diría “lemmings”, pero hay todo tipo de problemas con la adoración de héroes, como desconcertar a una industria que es bastante sencilla (aplícate lo suficiente, sistemáticamente, y las cosas funcionarán) y a menudo ignora los millones de “piratas informáticos” que solo hacen su trabajo por un sueldo y mantienen literalmente todo lo que usa.

Soy un gran fanático de The Changelog Podcast, pero al final de cada episodio, le preguntan a la gente sobre “héroes de programación”, y siempre se me mete en la cuenta escuchar otro gran nombre que nunca hizo nada interesante o importante, sino más bien golpearlo a lo grande. Eso sí, entiendo que realmente están buscando posibles otras personas para entrevistar, pero su pregunta “qué proyectos están en su radar” logra muchas de las mismas cosas y es más honesto.

Todo el mundo necesita personas a las que buscar. Por sí mismo, tener modelos a seguir no es poco saludable. Sirven como guías y patrones generalmente positivos para que sigamos. Sin embargo, una vez que se sale de control y se cruza con veneración, se vuelve insalubre.

Estoy de acuerdo con Miguel Paraz, ‘lemmings’ puede ser un poco fuerte, pero sí, básicamente.

Creo que muchos recién llegados a la programación miran a Google y Facebook con asombro y reverencia, pero básicamente están admirando el dinero, no la tecnología. Nadie realmente piensa que Facebook es una tecnología increíble, pero si ganas $ 100 mil millones, de repente parece ser para algunas personas.

Creo que admirar a Linus Torvalds por su trabajo está muy bien, pero los recién llegados al desarrollo de software se deben a sí mismos investigar otras ideas y sistemas. Por mucho que me guste UNIX, los creadores de UNIX intentaron reemplazarlo con el Plan 9, por lo que seguramente vale la pena investigar al menos, y no solo aceptar el statu quo.

No solo acepte UNIX (o UNIX-like) son la mejor solución, ¿ha mirado a IBM i? OpenVMS? Plan 9?

Básicamente, no seas el tipo que solo ha usado Mac, Windows y Linux. Instala algo genial.