Yo dividiría a las compañías en dos categorías generales: un tipo de compañía desarrolla software como su producto principal (por ejemplo, Microsoft, Google) y otro tipo de compañía donde el software solo respalda los procesos comerciales de la compañía (por ejemplo, fabricantes de automóviles, bancos, seguros empresas). Llamo al desarrollo de software en el primer tipo de investigación y desarrollo (I + D) de la empresa y el último en tecnología de la información (TI). He pasado la mayor parte de mi larga carrera en I + D, mientras que mi esposa ha pasado la mayor parte de su carrera igualmente larga en TI. A menudo comparamos notas sobre las prácticas de la empresa, la gestión y los compañeros de trabajo.
Primero permítanme decir que ambos hemos trabajado con personas inteligentes y talentosas y que ambos hemos trabajado con imbéciles incompetentes. Pero, en general, hubo diferencias sustanciales en las empresas para las que trabajamos.
En las empresas de I + D, la mayoría de los desarrolladores tienen títulos en informática o alguna otra disciplina técnica y, a menudo, tienen títulos avanzados, generalmente de universidades de primer o segundo nivel. El nivel de talento es bastante alto. Las personas son apasionadas por el trabajo y apasionadas por el producto. Sé que es un cliché, pero la excentricidad y el “nivel de nerd” son altos.
- ¿Hay alguien que esté buscando un certificado de experiencia en software?
- ¿Qué lenguaje sería el mejor para presentar a un niño de 14 años a la programación? ¿Sería un lenguaje de programación funcional una mejor opción?
- ¿Cuál es la diferencia entre desarrollo web, desarrollo de software y desarrollo de aplicaciones web?
- ¿Cuáles son las oportunidades de crecimiento en Cisco (India) como desarrollador de software para una nueva?
- ¿Qué factores debo considerar al decidir entre usar una base de datos relacional y una base de datos orientada a objetos?
En las organizaciones de TI, las personas tienden a tener títulos de TI o de negocios de universidades de tercer nivel o eran transferencias de otras especialidades. Las personas tienden a ser menos talentosas y menos apasionadas por el trabajo. Los desarrolladores son vistos más o menos como widgets intercambiables por la alta gerencia y los desarrolladores a menudo son reemplazados por contratistas sin talento y sin nombre.
Daré un ejemplo específico que encontré interesante. Trabajé durante varios años en Experian. El producto básico de Experian está basado en software que lo coloca en el campo de I + D, pero sus productos se ejecutan en mainframes de IBM que lo colocan nuevamente en la esfera de TI. En el momento en que estuve allí, era una tienda SQL / COBOL. Habían intentado portar el sistema de software principal a Unix, pero ese esfuerzo había fallado miserablemente. Aunque ella nunca había trabajado allí, mi esposa conocía a personas que habían trabajado allí y en el mundo de TI Experian tenía la reputación de tener un equipo de desarrollo superior a la media. Pero mi experiencia fue todo lo contrario. Ciertamente había gente muy talentosa allí, algunas de las más talentosas con las que he trabajado. Pero definitivamente estaban en minoría y nunca en la posición de ser líderes o tomadores de decisiones. La gerencia en todos los niveles de la organización y el personal técnico líder eran casi universalmente no solo ignorantes sino (y estoy siendo bastante caritativo) profundamente estúpidos. Nunca había trabajado con esa cantidad de falta de talento, especialmente en puestos de toma de decisiones. Otra cosa que era diferente de las organizaciones de I + D en las que había trabajado era que todos eran extremadamente amables. En todo mi tiempo allí nunca escuché una palabra dura. Mi próximo trabajo fue regresar firmemente al mundo de I + D, donde debía encontrar personas con mejor educación y más talento. Mi primer día en el trabajo pasé por una oficina donde dos personas discutían sobre algún problema técnico con fervor apasionado y lenguaje lleno de malas palabras para expresar su punto. Y pensé en ese momento lo lindo que era volver a casa.